package gtPlusPlus.core.fluids; import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import gtPlusPlus.core.creative.AddToCreativeTab; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import net.minecraftforge.fluids.BlockFluidClassic; import net.minecraftforge.fluids.Fluid; public class BlockFluidBase extends BlockFluidClassic { @SideOnly(Side.CLIENT) protected IIcon stillIcon; @SideOnly(Side.CLIENT) protected IIcon flowingIcon; protected int colour; protected Material fluidMaterial; final String displayName; @SuppressWarnings("deprecation") public BlockFluidBase(final Fluid fluid, final Material material) { super(fluid, net.minecraft.block.material.Material.lava); final short[] tempColour = material.getRGBA(); this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); this.fluidMaterial = material; this.setCreativeTab(AddToCreativeTab.tabOther); this.displayName = material.getLocalizedName(); LanguageRegistry.addName(this, "Molten "+this.displayName+" ["+MathUtils.celsiusToKelvin(this.fluidMaterial.getBoilingPointC())+"K]"); this.setBlockName(this.GetProperName()); } @SuppressWarnings("deprecation") public BlockFluidBase(final String fluidName, final Fluid fluid, final short[] colour) { super(fluid, net.minecraft.block.material.Material.lava); final short[] tempColour = colour; this.colour = Utils.rgbtoHexValue(tempColour[0], tempColour[1], tempColour[2]); this.setCreativeTab(AddToCreativeTab.tabOther); this.displayName = fluidName; LanguageRegistry.addName(this, "Molten "+this.displayName); this.setBlockName(this.GetProperName()); } @Override public IIcon getIcon(final int side, final int meta) { return ((side == 0) || (side == 1))? this.stillIcon : this.flowingIcon; } @SideOnly(Side.CLIENT) @Override public void registerBlockIcons(final IIconRegister register) { this.stillIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); this.flowingIcon = register.registerIcon(CORE.MODID+":fluids/fluid.molten.autogenerated"); } @Override public boolean canDisplace(final IBlockAccess world, final int x, final int y, final int z) { if (world.getBlock(x, y, z).getMaterial().isLiquid()) { return false; } return super.canDisplace(world, x, y, z); } @Override public boolean displaceIfPossible(final World world, final int x, final int y, final int z) { if (world.getBlock(x, y, z).getMaterial().isLiquid()) { return false; } return super.displaceIfPossible(world, x, y, z); } @Override public int colorMultiplier(final IBlockAccess par1IBlockAccess, final int par2, final int par3, final int par4){ if (this.colour == 0){ return MathUtils.generateSingularRandomHexValue(); } return this.colour; } @Override public int getRenderColor(final int aMeta) { if (this.colour == 0){ return MathUtils.generateSingularRandomHexValue(); } return this.colour; } public String GetProperName() { String tempIngot; tempIngot = "Molten "+this.displayName; return tempIngot; } public Material getFluidMaterial(){ return this.fluidMaterial; } }