Guest User

ValaniumChest

a guest
Sep 23rd, 2018
83
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import cpw.mods.fml.relauncher.Side;
  2. import cpw.mods.fml.relauncher.SideOnly;
  3. import fr.fuulys.valamod.ValaMod;
  4. import fr.fuulys.valamod.tiles.TileValaniumChest;
  5. import net.minecraft.block.Block;
  6. import net.minecraft.block.BlockContainer;
  7. import net.minecraft.block.material.Material;
  8. import net.minecraft.client.renderer.texture.IIconRegister;
  9. import net.minecraft.entity.EntityLivingBase;
  10. import net.minecraft.entity.item.EntityItem;
  11. import net.minecraft.entity.player.EntityPlayer;
  12. import net.minecraft.inventory.IInventory;
  13. import net.minecraft.item.ItemStack;
  14. import net.minecraft.nbt.NBTTagCompound;
  15. import net.minecraft.tileentity.TileEntity;
  16. import net.minecraft.util.MathHelper;
  17. import net.minecraft.world.World;
  18.  
  19. public class ValaniumChest extends BlockContainer {
  20.     protected String unlocalizedName;
  21.  
  22.     public ValaniumChest(String unlocalizedName)
  23.       {
  24.         super(Material.iron);
  25.        
  26.         this.unlocalizedName = unlocalizedName;
  27.        
  28.         setBlockName(this.unlocalizedName);
  29.         setBlockTextureName("valamod:valanium_chest");
  30.        
  31.         setBlockBounds(0.0625F, 0.0F, 0.0625F, 0.9375F, 0.875F, 0.9375F);
  32.        
  33.         setHardness(12.0F);
  34.         setResistance(8.0F);
  35.        
  36.         setHarvestLevel("pickaxe", 2);
  37.        
  38.         setCreativeTab(ValaMod.Valamod);
  39.       }
  40.  
  41.     public TileEntity createNewTileEntity(World world, int metadata) {
  42.         return new TileValaniumChest();
  43.     }
  44.  
  45.     public boolean hasTileEntity() {
  46.         return true;
  47.     }
  48.  
  49.     public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack stack) {
  50.         byte b0 = 0;
  51.         int l = MathHelper.floor_double(entity.rotationYaw * 4.0F / 360.0F + 0.5D) & 0x3;
  52.         if (l == 0) {
  53.             b0 = 2;
  54.         }
  55.         if (l == 1) {
  56.             b0 = 5;
  57.         }
  58.         if (l == 2) {
  59.             b0 = 3;
  60.         }
  61.         if (l == 3) {
  62.             b0 = 4;
  63.         }
  64.         world.setBlockMetadataWithNotify(x, y, z, b0, 2);
  65.     }
  66.  
  67.     public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX,
  68.             float hitY, float hitZ) {
  69.         if (!world.getBlock(x, y + 1, z).isNormalCube()) {
  70.             if (!world.isRemote) {
  71.                 player.openGui(ValaMod.instance, 5, world, x, y, z);
  72.             }
  73.             return true;
  74.         }
  75.         return true;
  76.     }
  77.  
  78.     public void breakBlock(World world, int x, int y, int z, Block block, int metadata) {
  79.         TileEntity tileentity = world.getTileEntity(x, y, z);
  80.         if ((tileentity instanceof IInventory)) {
  81.             IInventory inv = (IInventory) tileentity;
  82.             for (int i1 = 0; i1 < inv.getSizeInventory(); i1++) {
  83.                 ItemStack itemstack = inv.getStackInSlot(i1);
  84.                 if (itemstack != null) {
  85.                     float f = world.rand.nextFloat() * 0.8F + 0.1F;
  86.                     float f1 = world.rand.nextFloat() * 0.8F + 0.1F;
  87.                     EntityItem entityitem;
  88.                     for (float f2 = world.rand.nextFloat() * 0.8F + 0.1F; itemstack.stackSize > 0; world
  89.                             .spawnEntityInWorld(entityitem)) {
  90.                         int j1 = world.rand.nextInt(21) + 10;
  91.                         if (j1 > itemstack.stackSize) {
  92.                             j1 = itemstack.stackSize;
  93.                         }
  94.                         itemstack.stackSize -= j1;
  95.                         entityitem = new EntityItem(world, x + f, y + f1, z + f2,
  96.                                 new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
  97.  
  98.                         float f3 = 0.05F;
  99.                         entityitem.motionX = ((float) world.rand.nextGaussian() * f3);
  100.                         entityitem.motionY = ((float) world.rand.nextGaussian() * f3 + 0.2F);
  101.                         entityitem.motionZ = ((float) world.rand.nextGaussian() * f3);
  102.                         if (itemstack.hasTagCompound()) {
  103.                             entityitem.getEntityItem()
  104.                                     .setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy());
  105.                         }
  106.                     }
  107.                 }
  108.             }
  109.             world.func_147453_f(x, y, z, block);
  110.         }
  111.         super.breakBlock(world, x, y, z, block, metadata);
  112.     }
  113.  
  114.     public boolean renderAsNormalBlock() {
  115.         return false;
  116.     }
  117.  
  118.     public int getRenderType() {
  119.         return 22;
  120.     }
  121.  
  122.     public boolean isOpaqueCube() {
  123.         return false;
  124.     }
  125.  
  126.     @SideOnly(Side.CLIENT)
  127.     public void registerBlockIcons(IIconRegister icon) {
  128.         this.blockIcon = icon.registerIcon("valamod:ValaniumBlock");
  129.     }
  130. }
RAW Paste Data