blob: 29e2181bea7a6a1213063758990d5fa1f6a8de96 (
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
|
package detrav.utils;
import java.util.HashMap;
import javax.annotation.Nonnull;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidRegistry;
import gregtech.GTMod;
import gregtech.api.enums.UndergroundFluidNames;
public class FluidColors {
private static boolean initialized;
private static final HashMap<Integer, short[]> fluidColors = new HashMap<>();
private static void generateFluidColors() {
for (UndergroundFluidNames value : UndergroundFluidNames.values()) {
final Fluid fluid = FluidRegistry.getFluid(value.name);
if (fluid != null) {
if (value.renderColor != null) {
fluidColors.put(fluid.getID(), value.renderColor);
} else {
fluidColors.put(fluid.getID(), convertColorInt(fluid.getColor()));
}
} else {
GTMod.GT_FML_LOGGER.error("[FluidColors] no registered fluid named " + value.name);
}
}
}
private static short[] convertColorInt(int color) {
return new short[] { (short) (color << 16 & 0xff), (short) (color << 8 & 0xff), (short) (color & 0xff) };
}
@Nonnull
public static short[] getColor(int fluidID) {
if (!initialized) {
generateFluidColors();
initialized = true;
}
final short[] color = fluidColors.get(fluidID);
if (color == null) {
GTMod.GT_FML_LOGGER.error("Unknown fluid ID = " + fluidID + " This shouldn't happen!");
return new short[] { 0, 0, 0, 0 };
}
return color;
}
}
|