Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package qwertyasdef.alchemtrans.block;
- import com.sun.xml.internal.ws.client.dispatch.PacketDispatch;
- import net.minecraft.block.Block;
- import net.minecraft.block.ITileEntityProvider;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.client.Minecraft;
- import net.minecraft.client.renderer.block.model.ModelResourceLocation;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.init.SoundEvents;
- import net.minecraft.inventory.InventoryHelper;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.network.PacketBuffer;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.EnumParticleTypes;
- import net.minecraft.util.SoundCategory;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- import net.minecraftforge.client.model.ModelLoader;
- import net.minecraftforge.common.util.PacketUtil;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- import qwertyasdef.alchemtrans.AlchemTrans;
- import qwertyasdef.alchemtrans.inventory.ContainerNetherrackBoiler;
- import qwertyasdef.alchemtrans.inventory.ContainerNetherrackFurnace;
- import qwertyasdef.alchemtrans.tile.TileNetherrackBoiler;
- import qwertyasdef.alchemtrans.tile.TileNetherrackFurnace;
- import java.util.Random;
- public class BlockNetherrackBoiler extends Block implements ITileEntityProvider {
- public static final String name = "netherrack_boiler";
- public static final int GUI_ID = 1;
- public boolean hasHeat = false;
- public BlockNetherrackBoiler() {
- super(Material.ROCK);
- this.setRegistryName(name);
- this.setUnlocalizedName(AlchemTrans.MODID + "." + name);
- this.setHarvestLevel("pickaxe", 2);
- this.setHardness(3F);
- this.setResistance(30);
- this.setLightLevel(1F);
- this.isBlockContainer = true;
- }
- @SideOnly(Side.CLIENT)
- public void initModel() {
- ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(this), 0, new ModelResourceLocation(getRegistryName(), "inventory"));
- }
- // Tile Entity
- @Override
- public TileEntity createNewTileEntity(World worldIn, int meta) {
- return new TileNetherrackBoiler();
- }
- @Override
- public void breakBlock(World world, BlockPos pos, IBlockState state) {
- TileNetherrackBoiler tileEntity = (TileNetherrackBoiler) world.getTileEntity(pos);
- InventoryHelper.dropInventoryItems(world, pos, tileEntity);
- super.breakBlock(world, pos, state);
- world.removeTileEntity(pos);
- }
- @Override
- public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) {
- if (stack.hasDisplayName()) {
- ((TileNetherrackBoiler) worldIn.getTileEntity(pos)).setCustomName(stack.getDisplayName());
- }
- this.neighborChanged(state, worldIn, pos, null, pos.down());
- }
- @Override
- public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) {
- if (world.isRemote) {
- return true;
- }
- TileEntity tileEntity = world.getTileEntity(pos);
- if (tileEntity != null) {
- player.openGui(AlchemTrans.instance, GUI_ID, world, pos.getX(), pos.getY(), pos.getZ());
- }
- return true;
- }
- @Override
- public void neighborChanged(IBlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos) {
- if (pos.getY() == fromPos.getY() + 1) {
- System.out.println("Block changed underneath boiler");
- TileNetherrackBoiler tileEntity = (TileNetherrackBoiler) worldIn.getTileEntity(pos);
- if (worldIn.getBlockState(fromPos).getBlock().equals(ModBlocks.NETHERRACK_HEATER)) {
- System.out.println("It was a heater!");
- tileEntity.setField(2, 1);
- } else {
- tileEntity.setField(2, 0);
- }
- }
- super.neighborChanged(state, worldIn, pos, blockIn, fromPos);
- }
- @SideOnly(Side.CLIENT)
- public void randomDisplayTick(IBlockState stateIn, World worldIn, BlockPos pos, Random rand) {
- // TODO: smoke particles
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement