package WayofTime.bloodmagic.block; import java.util.ArrayList; import java.util.List; import net.minecraft.block.BlockContainer; import net.minecraft.block.SoundType; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; 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 org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import WayofTime.bloodmagic.BloodMagic; import WayofTime.bloodmagic.api.Constants; import WayofTime.bloodmagic.client.IVariantProvider; import WayofTime.bloodmagic.tile.TileSoulForge; public class BlockSoulForge extends BlockContainer implements IVariantProvider { protected static final AxisAlignedBB AABB = new AxisAlignedBB(0.06F, 0.0F, 0.06F, 0.94F, 0.75F, 0.94F); public BlockSoulForge() { super(Material.iron); setUnlocalizedName(Constants.Mod.MODID + ".soulForge"); setRegistryName(Constants.BloodMagicBlock.SOUL_FORGE.getRegName()); setHardness(2.0F); setResistance(5.0F); setSoundType(SoundType.METAL); setHarvestLevel("pickaxe", 1); setCreativeTab(BloodMagic.tabBloodMagic); } @Override public boolean isOpaqueCube(IBlockState state) { return false; } @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { return AABB; } @Override public boolean isNormalCube(IBlockState state, IBlockAccess world, BlockPos pos) { return false; } @Override public boolean isFullCube(IBlockState state) { return false; } @Override public boolean isVisuallyOpaque() { return false; } @Override public EnumBlockRenderType getRenderType(IBlockState state) { return EnumBlockRenderType.MODEL; } @Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { if (world.getTileEntity(pos) instanceof TileSoulForge) player.openGui(BloodMagic.instance, Constants.Gui.SOUL_FORGE_GUI, world, pos.getX(), pos.getY(), pos.getZ()); return true; } @Override public void breakBlock(World world, BlockPos blockPos, IBlockState blockState) { TileSoulForge tileSoulForge = (TileSoulForge) world.getTileEntity(blockPos); if (tileSoulForge != null) tileSoulForge.dropItems(); super.breakBlock(world, blockPos, blockState); } @Override public TileEntity createNewTileEntity(World worldIn, int meta) { return new TileSoulForge(); } @Override public List> getVariants() { List> ret = new ArrayList>(); ret.add(new ImmutablePair(0, "normal")); return ret; } }