Advertisement
Guest User

ObsidianItemSlabs.java

a guest
Sep 13th, 2014
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.17 KB | None | 0 0
  1. package com.gmail.tester.richard.missingblocks.blocks.slabs.stone;
  2.  
  3. import com.gmail.tester.richard.missingblocks.blocks.ModBlocksSlabs;
  4.  
  5. import cpw.mods.fml.relauncher.Side;
  6. import cpw.mods.fml.relauncher.SideOnly;
  7. import net.minecraft.block.Block;
  8. import net.minecraft.block.BlockSlab;
  9. import net.minecraft.entity.player.EntityPlayer;
  10. import net.minecraft.item.ItemBlock;
  11. import net.minecraft.item.ItemStack;
  12. import net.minecraft.util.IIcon;
  13. import net.minecraft.world.World;
  14.  
  15. public class ObsidianItemSlab extends ItemBlock
  16. {
  17.     private final boolean field_150948_b;
  18.     private final BlockSlab singleSlab;
  19.     private final BlockSlab doubleSlab;
  20.     private static final String __OBFID = "CL_00000071";
  21.     public ObsidianItemSlab(Block block)
  22.     {
  23.      super(block);
  24.      this.singleSlab = (BlockSlab) ModBlocksSlabs.obsidianSlab; //Here you have to set your single slab
  25.      this.doubleSlab = (BlockSlab) ModBlocksSlabs.obsidianDblSlab; //And here your double slab
  26.      this.field_150948_b = false;
  27.         this.setMaxDamage(0);
  28.         this.setHasSubtypes(true);
  29.     }
  30.     /**
  31.      * Gets an icon index based on an item's damage value
  32.      */
  33.     @SideOnly(Side.CLIENT)
  34.     public IIcon getIconFromDamage(int par1)
  35.     {
  36.         return Block.getBlockFromItem(this).getIcon(2, par1);
  37.     }
  38.     /**
  39.      * Returns the metadata of the block which this Item (ItemBlock) can place
  40.      */
  41.     public int getMetadata(int par1)
  42.     {
  43.         return par1;
  44.     }
  45.     /**
  46.      * Returns the unlocalized name of this item. This version accepts an ItemStack so different stacks can have
  47.      * different names based on their damage or NBT.
  48.      */
  49.     public String getUnlocalizedName(ItemStack par1ItemStack)
  50.     {
  51.         return this.singleSlab.func_150002_b(par1ItemStack.getItemDamage());
  52.     }
  53.     /**
  54.      * Callback for item usage. If the item does something special on right clicking, he will have one of those. Return
  55.      * True if something happen and false if it don't. This is for ITEMS, not BLOCKS
  56.      */
  57.     public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
  58.     {
  59.         if (this.field_150948_b)
  60.         {
  61.             return super.onItemUse(par1ItemStack, par2EntityPlayer, par3World, par4, par5, par6, par7, par8, par9, par10);
  62.         }
  63.         else if (par1ItemStack.stackSize == 0)
  64.         {
  65.             return false;
  66.         }
  67.         else if (!par2EntityPlayer.canPlayerEdit(par4, par5, par6, par7, par1ItemStack))
  68.         {
  69.             return false;
  70.         }
  71.         else
  72.         {
  73.             Block block = par3World.getBlock(par4, par5, par6);
  74.             int i1 = par3World.getBlockMetadata(par4, par5, par6);
  75.             int j1 = i1 & 7;
  76.             boolean flag = (i1 & 8) != 0;
  77.             if ((par7 == 1 && !flag || par7 == 0 && flag) && block == this.singleSlab && j1 == par1ItemStack.getItemDamage())
  78.             {
  79.                 if (par3World.checkNoEntityCollision(this.doubleSlab.getCollisionBoundingBoxFromPool(par3World, par4, par5, par6)) && par3World.setBlock(par4, par5, par6, this.doubleSlab, j1, 3))
  80.                 {
  81.                     par3World.playSoundEffect((double)((float)par4 + 0.5F), (double)((float)par5 + 0.5F), (double)((float)par6 + 0.5F), this.doubleSlab.stepSound.func_150496_b(), (this.doubleSlab.stepSound.getVolume() + 1.0F) / 2.0F, this.doubleSlab.stepSound.getPitch() * 0.8F);
  82.                     --par1ItemStack.stackSize;
  83.                 }
  84.                 return true;
  85.             }
  86.             else
  87.             {
  88.                 return this.func_150946_a(par1ItemStack, par2EntityPlayer, par3World, par4, par5, par6, par7) ? true : super.onItemUse(par1ItemStack, par2EntityPlayer, par3World, par4, par5, par6, par7, par8, par9, par10);
  89.             }
  90.         }
  91.     }
  92.     @SideOnly(Side.CLIENT)
  93.     public boolean func_150936_a(World p_150936_1_, int p_150936_2_, int p_150936_3_, int p_150936_4_, int p_150936_5_, EntityPlayer p_150936_6_, ItemStack p_150936_7_)
  94.     {
  95.         int i1 = p_150936_2_;
  96.         int j1 = p_150936_3_;
  97.         int k1 = p_150936_4_;
  98.         Block block = p_150936_1_.getBlock(p_150936_2_, p_150936_3_, p_150936_4_);
  99.         int l1 = p_150936_1_.getBlockMetadata(p_150936_2_, p_150936_3_, p_150936_4_);
  100.         int i2 = l1 & 7;
  101.         boolean flag = (l1 & 8) != 0;
  102.         if ((p_150936_5_ == 1 && !flag || p_150936_5_ == 0 && flag) && block == this.singleSlab && i2 == p_150936_7_.getItemDamage())
  103.         {
  104.             return true;
  105.         }
  106.         else
  107.         {
  108.             if (p_150936_5_ == 0)
  109.             {
  110.                 --p_150936_3_;
  111.             }
  112.             if (p_150936_5_ == 1)
  113.             {
  114.                 ++p_150936_3_;
  115.             }
  116.             if (p_150936_5_ == 2)
  117.             {
  118.                 --p_150936_4_;
  119.             }
  120.             if (p_150936_5_ == 3)
  121.             {
  122.                 ++p_150936_4_;
  123.             }
  124.             if (p_150936_5_ == 4)
  125.             {
  126.                 --p_150936_2_;
  127.             }
  128.             if (p_150936_5_ == 5)
  129.             {
  130.                 ++p_150936_2_;
  131.             }
  132.             Block block1 = p_150936_1_.getBlock(p_150936_2_, p_150936_3_, p_150936_4_);
  133.             int j2 = p_150936_1_.getBlockMetadata(p_150936_2_, p_150936_3_, p_150936_4_);
  134.             i2 = j2 & 7;
  135.             return block1 == this.singleSlab && i2 == p_150936_7_.getItemDamage() ? true : super.func_150936_a(p_150936_1_, i1, j1, k1, p_150936_5_, p_150936_6_, p_150936_7_);
  136.         }
  137.     }
  138.     private boolean func_150946_a(ItemStack p_150946_1_, EntityPlayer p_150946_2_, World p_150946_3_, int p_150946_4_, int p_150946_5_, int p_150946_6_, int p_150946_7_)
  139.     {
  140.         if (p_150946_7_ == 0)
  141.         {
  142.             --p_150946_5_;
  143.         }
  144.         if (p_150946_7_ == 1)
  145.         {
  146.             ++p_150946_5_;
  147.         }
  148.         if (p_150946_7_ == 2)
  149.         {
  150.             --p_150946_6_;
  151.         }
  152.         if (p_150946_7_ == 3)
  153.         {
  154.             ++p_150946_6_;
  155.         }
  156.         if (p_150946_7_ == 4)
  157.         {
  158.             --p_150946_4_;
  159.         }
  160.         if (p_150946_7_ == 5)
  161.         {
  162.             ++p_150946_4_;
  163.         }
  164.         Block block = p_150946_3_.getBlock(p_150946_4_, p_150946_5_, p_150946_6_);
  165.         int i1 = p_150946_3_.getBlockMetadata(p_150946_4_, p_150946_5_, p_150946_6_);
  166.         int j1 = i1 & 7;
  167.         if (block == this.singleSlab && j1 == p_150946_1_.getItemDamage())
  168.         {
  169.             if (p_150946_3_.checkNoEntityCollision(this.doubleSlab.getCollisionBoundingBoxFromPool(p_150946_3_, p_150946_4_, p_150946_5_, p_150946_6_)) && p_150946_3_.setBlock(p_150946_4_, p_150946_5_, p_150946_6_, this.doubleSlab, j1, 3))
  170.             {
  171.                 p_150946_3_.playSoundEffect((double)((float)p_150946_4_ + 0.5F), (double)((float)p_150946_5_ + 0.5F), (double)((float)p_150946_6_ + 0.5F), this.doubleSlab.stepSound.func_150496_b(), (this.doubleSlab.stepSound.getVolume() + 1.0F) / 2.0F, this.doubleSlab.stepSound.getPitch() * 0.8F);
  172.                 --p_150946_1_.stackSize;
  173.             }
  174.             return true;
  175.         }
  176.         else
  177.         {
  178.             return false;
  179.         }
  180.     }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement