package zmaster587.advancedRocketry.block; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import zmaster587.advancedRocketry.tile.TileFluidTank; import zmaster587.libVulpes.LibVulpes; import zmaster587.libVulpes.inventory.GuiHandler.guiId; import zmaster587.libVulpes.tile.multiblock.hatch.TileFluidHatch; import zmaster587.libVulpes.util.IAdjBlockUpdate; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; public class BlockPressurizedFluidTank extends Block { IIcon top; public BlockPressurizedFluidTank(Material material) { super(material); this.setBlockTextureName("advancedrocketry:liquidTank"); this.setBlockBounds(0.05f, 0, 0.05f, 0.95f, 1, 0.95f); } @Override public boolean hasTileEntity(int metadata) { this.setBlockBounds(0.05f, 0, 0.05f, 0.95f, 1, 0.95f); return true; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_) { if(!world.isRemote) player.openGui(LibVulpes.instance, guiId.MODULAR.ordinal(), world, x, y, z); return true; } @Override public void registerBlockIcons(IIconRegister reg) { super.registerBlockIcons(reg); top = reg.registerIcon("advancedrocketry:machineGeneric"); } @SideOnly(Side.CLIENT) @Override public IIcon getIcon(int dir, int meta) { ForgeDirection side = ForgeDirection.getOrientation(dir); if(side.offsetY != 0) return top; return super.getIcon(dir, meta); } @Override public TileEntity createTileEntity(World world, int metadata) { return new TileFluidTank((int) (64000*Math.pow(2,metadata))); } @Override public boolean shouldSideBeRendered(IBlockAccess world, int x, int y, int z, int side) { if(ForgeDirection.values()[side].offsetY != 0) { if(world.getBlock(x, y, z) == this) return false; } return super.shouldSideBeRendered(world, x, y, z, side); } @Override public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { TileEntity tile = world.getTileEntity(x, y, z); if(tile instanceof IAdjBlockUpdate) ((IAdjBlockUpdate)tile).onAdjacentBlockUpdated(); } @Override public boolean isOpaqueCube() { return false; } @Override public boolean isBlockNormalCube() { return false; } }