123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package me.km.blocks.campfire;
- import java.util.Random;
- import me.km.blocks.ModBlocks;
- import me.km.inventory.ContainerCampFire;
- import net.minecraft.block.ITileEntityProvider;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.entity.player.EntityPlayerMP;
- import net.minecraft.init.Items;
- import net.minecraft.inventory.InventoryHelper;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.stats.StatList;
- import net.minecraft.tileentity.TileEntity;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.NonNullList;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- public class BlockCampFireBurning extends BlockCampFire implements ITileEntityProvider
- {
- public BlockCampFireBurning(String name, String local)
- {
- super(name, local);
- this.hasTileEntity = true;
- }
- @Override
- public boolean eventReceived(IBlockState state, World w, BlockPos pos, int id, int param)
- {
- TileEntity tile = w.getTileEntity(pos);
- return tile == null ? false : tile.receiveClientEvent(id, param);
- }
-
- @Override
- public boolean isBurning(IBlockAccess world, BlockPos pos)
- {
- return true;
- }
-
- @Override
- public void onBlockClicked(World w, BlockPos pos, EntityPlayer p)
- {
- if(!w.isRemote)
- {
- w.setBlockState(pos, ModBlocks.campFireBurnt.getDefaultState());
- }
- }
-
- @Override
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return Items.STICK;
- }
-
- @Override
- public int quantityDropped(Random r)
- {
- return r.nextInt(3) + 1;
- }
- @Override
- public void getDrops(NonNullList<ItemStack> drops, IBlockAccess w, BlockPos pos, IBlockState state, int fortune)
- {
- super.getDrops(drops, w, pos, state, 0);
- Random rand = w instanceof World ? ((World) w).rand : new Random();
- if(rand.nextBoolean())
- {
- drops.add(new ItemStack(Items.COAL, 1, 1));
- }
- }
-
- @Override
- public boolean onBlockActivated(World w, BlockPos pos, IBlockState state, EntityPlayer p, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
- {
- if(w.isRemote)
- {
- return true;
- }
- else
- {
- TileEntity tile = w.getTileEntity(pos);
- if(tile != null && tile instanceof TileEntityCampFire)
- {
- ContainerCampFire container = new ContainerCampFire(p.inventory, (TileEntityCampFire) tile);
- container.openForPlayer((EntityPlayerMP) p);
- p.addStat(StatList.FURNACE_INTERACTION);
- }
- return true;
- }
- }
- @Override
- public TileEntity createNewTileEntity(World w, int meta)
- {
- return new TileEntityCampFire();
- }
- @Override
- public void breakBlock(World w, BlockPos pos, IBlockState state)
- {
- TileEntity tile = w.getTileEntity(pos);
- if(tile instanceof TileEntityCampFire)
- {
- InventoryHelper.dropInventoryItems(w, pos, (TileEntityCampFire) tile);
- }
- w.removeTileEntity(pos);
- }
- }
|