aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/fluids/BlockFluidBase.java
blob: d2774c18d74f82040733ac004e466155e629835c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package gtPlusPlus.core.fluids;

import cpw.mods.fml.common.registry.LanguageRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
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.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
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 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 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 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);
	}

	public Material getFluidMaterial() {
		return this.fluidMaterial;
	}

	@Override
	public IIcon getIcon(final int side, final int meta) {
		return side == 0 || side == 1 ? this.stillIcon : this.flowingIcon;
	}

	public String GetProperName() {
		String tempIngot;

		tempIngot = "Molten " + this.displayName;

		return tempIngot;
	}

	@Override
	public int getRenderColor(final int aMeta) {
		if (this.colour == 0) {
			return MathUtils.generateSingularRandomHexValue();
		}

		return this.colour;
	}

	@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");
	}

}