Advertisement
Guest User

BlockNetherrackBoiler.java

a guest
Jul 6th, 2017
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.53 KB | None | 0 0
  1. package qwertyasdef.alchemtrans.block;
  2.  
  3. import com.sun.xml.internal.ws.client.dispatch.PacketDispatch;
  4. import net.minecraft.block.Block;
  5. import net.minecraft.block.ITileEntityProvider;
  6. import net.minecraft.block.material.Material;
  7. import net.minecraft.block.state.IBlockState;
  8. import net.minecraft.client.Minecraft;
  9. import net.minecraft.client.renderer.block.model.ModelResourceLocation;
  10. import net.minecraft.entity.EntityLivingBase;
  11. import net.minecraft.entity.player.EntityPlayer;
  12. import net.minecraft.init.SoundEvents;
  13. import net.minecraft.inventory.InventoryHelper;
  14. import net.minecraft.item.Item;
  15. import net.minecraft.item.ItemStack;
  16. import net.minecraft.network.PacketBuffer;
  17. import net.minecraft.tileentity.TileEntity;
  18. import net.minecraft.util.EnumFacing;
  19. import net.minecraft.util.EnumHand;
  20. import net.minecraft.util.EnumParticleTypes;
  21. import net.minecraft.util.SoundCategory;
  22. import net.minecraft.util.math.BlockPos;
  23. import net.minecraft.world.IBlockAccess;
  24. import net.minecraft.world.World;
  25. import net.minecraftforge.client.model.ModelLoader;
  26. import net.minecraftforge.common.util.PacketUtil;
  27. import net.minecraftforge.fml.relauncher.Side;
  28. import net.minecraftforge.fml.relauncher.SideOnly;
  29. import qwertyasdef.alchemtrans.AlchemTrans;
  30. import qwertyasdef.alchemtrans.inventory.ContainerNetherrackBoiler;
  31. import qwertyasdef.alchemtrans.inventory.ContainerNetherrackFurnace;
  32. import qwertyasdef.alchemtrans.tile.TileNetherrackBoiler;
  33. import qwertyasdef.alchemtrans.tile.TileNetherrackFurnace;
  34.  
  35. import java.util.Random;
  36.  
  37. public class BlockNetherrackBoiler extends Block implements ITileEntityProvider {
  38.  
  39.     public static final String name = "netherrack_boiler";
  40.     public static final int GUI_ID = 1;
  41.  
  42.     public boolean hasHeat = false;
  43.  
  44.     public BlockNetherrackBoiler() {
  45.         super(Material.ROCK);
  46.         this.setRegistryName(name);
  47.         this.setUnlocalizedName(AlchemTrans.MODID + "." + name);
  48.  
  49.         this.setHarvestLevel("pickaxe", 2);
  50.         this.setHardness(3F);
  51.         this.setResistance(30);
  52.         this.setLightLevel(1F);
  53.  
  54.         this.isBlockContainer = true;
  55.     }
  56.  
  57.     @SideOnly(Side.CLIENT)
  58.     public void initModel() {
  59.         ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory"));
  60.     }
  61.  
  62.     // Tile Entity
  63.     @Override
  64.     public TileEntity createNewTileEntity(World worldIn, int meta) {
  65.         return new TileNetherrackBoiler();
  66.     }
  67.  
  68.     @Override
  69.     public void breakBlock(World world, BlockPos pos, IBlockState state) {
  70.         TileNetherrackBoiler tileEntity = (TileNetherrackBoiler) world.getTileEntity(pos);
  71.         InventoryHelper.dropInventoryItems(world, pos, tileEntity);
  72.  
  73.         super.breakBlock(world, pos, state);
  74.         world.removeTileEntity(pos);
  75.     }
  76.  
  77.     @Override
  78.     public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
  79.         if (stack.hasDisplayName()) {
  80.             ((TileNetherrackBoiler) worldIn.getTileEntity(pos)).setCustomName(stack.getDisplayName());
  81.         }
  82.  
  83.         this.neighborChanged(state, worldIn, pos, null, pos.down());
  84.     }
  85.  
  86.     @Override
  87.     public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
  88.         if (world.isRemote) {
  89.             return true;
  90.         }
  91.  
  92.         TileEntity tileEntity = world.getTileEntity(pos);
  93.         if (tileEntity != null) {
  94.             player.openGui(AlchemTrans.instance, GUI_ID, world, pos.getX(), pos.getY(), pos.getZ());
  95.         }
  96.  
  97.         return true;
  98.     }
  99.  
  100.     @Override
  101.     public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) {
  102.         if (pos.getY() == fromPos.getY() + 1) {
  103.             System.out.println("Block changed underneath boiler");
  104.             TileNetherrackBoiler tileEntity = (TileNetherrackBoiler) worldIn.getTileEntity(pos);
  105.  
  106.             if (worldIn.getBlockState(fromPos).getBlock().equals(ModBlocks.NETHERRACK_HEATER)) {
  107.                 System.out.println("It was a heater!");
  108.                 tileEntity.setField(2, 1);
  109.             } else {
  110.                 tileEntity.setField(2, 0);
  111.             }
  112.  
  113.         }
  114.  
  115.         super.neighborChanged(state, worldIn, pos, blockIn, fromPos);
  116.     }
  117.  
  118.     @SideOnly(Side.CLIENT)
  119.     public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand) {
  120.         // TODO: smoke particles
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement