123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- package me.km.blocks.campfire;
- import java.util.Random;
- import me.km.blocks.BlockBase;
- import me.km.blocks.ModBlocks;
- import me.km.items.ModItems;
- import net.minecraft.block.Block;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemStack;
- import net.minecraft.util.BlockRenderLayer;
- import net.minecraft.util.EnumBlockRenderType;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.util.EnumHand;
- import net.minecraft.util.math.AxisAlignedBB;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.world.IBlockAccess;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- public class BlockCampFire extends BlockBase
- {
- public static final AxisAlignedBB BOX = new AxisAlignedBB(0.0d, 0.0d, 0.0d, 1.0d, 0.4375d, 1.0d);
-
- public BlockCampFire(String name, String local)
- {
- super(Material.FIRE, name, local);
- super.setLightOpacity(0);
- super.setHardness(1.5f);
- super.setResistance(4);
- }
-
- @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
- {
- w.setBlockState(pos, ModBlocks.campFireBurning.getDefaultState());
- return true;
- }
- }
- @Override
- public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
- {
- return BOX;
- }
- @Override
- public boolean isOpaqueCube(IBlockState state)
- {
- return false;
- }
- @Override
- public boolean isFullCube(IBlockState state)
- {
- return false;
- }
- @Override
- public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
- {
- return new ItemStack(ModItems.campFire);
- }
-
- @Override
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return ModItems.campFire;
- }
-
- @SideOnly(Side.CLIENT)
- @Override
- public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
- {
- return true;
- }
-
- @SideOnly(Side.CLIENT)
- @Override
- public BlockRenderLayer getBlockLayer()
- {
- return BlockRenderLayer.CUTOUT;
- }
-
- @Override
- public EnumBlockRenderType getRenderType(IBlockState state)
- {
- return EnumBlockRenderType.MODEL;
- }
-
- @Override
- public boolean canPlaceBlockAt(World w, BlockPos pos)
- {
- return canBlockStay(w, pos) ? super.canPlaceBlockAt(w, pos) : false;
- }
- public boolean canBlockStay(World w, BlockPos pos)
- {
- return w.getBlockState(pos.down()).isTopSolid();
- }
- @Override
- public void neighborChanged(IBlockState state, World w, BlockPos pos, Block b, BlockPos fromPos)
- {
- if(!this.canBlockStay(w, pos))
- {
- this.dropBlockAsItem(w, pos, state, 0);
- w.setBlockToAir(pos);
- for(EnumFacing enumfacing : EnumFacing.values())
- {
- w.notifyNeighborsOfStateChange(pos.offset(enumfacing), this, false);
- }
- }
- }
-
- @Override
- public boolean isReplaceable(IBlockAccess worldIn, BlockPos pos)
- {
- return false;
- }
- }
|