summaryrefslogtreecommitdiff
path: root/ihl/servitor/BoneBlock.java
diff options
context:
space:
mode:
authorFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
committerFoghrye4 <foghrye4@gmail.com>2016-04-11 19:44:54 +0300
commit05c78126859231a68e199dc34613689bd0978e2f (patch)
tree050bea104a18c72905095d29f31bec2935a27a24 /ihl/servitor/BoneBlock.java
Initial commit
Diffstat (limited to 'ihl/servitor/BoneBlock.java')
-rw-r--r--ihl/servitor/BoneBlock.java107
1 files changed, 107 insertions, 0 deletions
diff --git a/ihl/servitor/BoneBlock.java b/ihl/servitor/BoneBlock.java
new file mode 100644
index 0000000..1c88b37
--- /dev/null
+++ b/ihl/servitor/BoneBlock.java
@@ -0,0 +1,107 @@
+package ihl.servitor;
+
+import java.util.List;
+
+import ihl.IHLModInfo;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.block.Block;
+import net.minecraft.block.material.Material;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.passive.EntityPig;
+import net.minecraft.init.Blocks;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.DamageSource;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+
+public class BoneBlock extends Block {
+ IIcon textureSide2,textureSide3,textureSide4,textureTop;
+
+ public BoneBlock(Material material) {
+ super(material);
+ this.setCreativeTab(CreativeTabs.tabBlock);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerBlockIcons(IIconRegister par1IconRegister)
+ {
+ this.blockIcon = par1IconRegister.registerIcon(IHLModInfo.MODID + ":boneBlockSide1");
+ this.textureTop = par1IconRegister.registerIcon(IHLModInfo.MODID + ":boneBlockTop");
+ this.textureSide2 = par1IconRegister.registerIcon(IHLModInfo.MODID + ":boneBlockSide2");
+ this.textureSide3 = par1IconRegister.registerIcon(IHLModInfo.MODID + ":boneBlockSide3");
+ this.textureSide4 = par1IconRegister.registerIcon(IHLModInfo.MODID + ":boneBlockSide4");
+ }
+
+
+ @Override
+ public void onNeighborBlockChange(World world, int x, int y, int z, Block block)
+ {
+ if(!world.isRemote)
+ {
+ if(world.getBlock(x, y+1, z)==Blocks.fire)
+ {
+ AxisAlignedBB aabb = AxisAlignedBB.getBoundingBox(x, y+1D, z, x+1D, y+2D, z+1D);
+ List pigList = world.getEntitiesWithinAABB(EntityPig.class, aabb);
+ if(pigList!=null && pigList.size()>0)
+ {
+ EntityPig pig = (EntityPig) pigList.get(0);
+ DamageSource ds = DamageSource.wither;
+ pig.attackEntityFrom(ds, 10F);
+ LostHeadEntity lh = new LostHeadEntity(world);
+ lh.setPosition(pig.posX,pig.posY,pig.posZ);
+ world.spawnEntityInWorld(lh);
+ }
+ }
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side)
+ {
+ Block topBlock = world.getBlock(x, y+1, z);
+ Block bottomBlock = world.getBlock(x, y-1, z);
+ IIcon sideIcon = this.blockIcon;
+ if(topBlock==this && bottomBlock==this)
+ {
+ sideIcon = this.textureSide4;
+ }
+ else if(topBlock==this)
+ {
+ sideIcon = this.textureSide3;
+ }
+ else if(bottomBlock==this)
+ {
+ sideIcon = this.textureSide2;
+ }
+ switch (side)
+ {
+ case 0:
+ return this.textureTop;
+ case 1:
+ return this.textureTop;
+ default:
+ return sideIcon;
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIcon(int side, int meta)
+ {
+ IIcon sideIcon = this.blockIcon;
+ switch (side)
+ {
+ case 0:
+ return this.textureTop;
+ case 1:
+ return this.textureTop;
+ default:
+ return sideIcon;
+ }
+ }
+}