FluidType child classes for flammability and combustion properties

"the enums were better because uhhh switches" well can your enums do this?
This commit is contained in:
Boblet 2022-02-02 16:49:06 +01:00
parent 94cbdd2555
commit b31a465a08
5 changed files with 235 additions and 73 deletions

View File

@ -16,7 +16,9 @@ import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TEFluidPacket;
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.resources.I18n;
import net.minecraft.item.ItemArmor;
import net.minecraft.item.ItemStack;
@ -93,7 +95,7 @@ public class FluidTank {
FluidType inType = Fluids.NONE;
if(slots[in] != null) {
//TODO: add IPartiallyFillable case for unloading
//TODO: add IPartiallyFillable case for unloading, useful for infinite tanks so they don't need to be hardcoded
inType = FluidContainerRegistry.getFluidType(slots[in]);
@ -252,15 +254,43 @@ public class FluidTank {
}
//Used in the GUI rendering, renders correct fluid type in container with progress
@Deprecated //fuck you
public void renderTank(GuiContainer gui, int x, int y, int tx, int ty, int width, int height) {
/*
* A message to 2017 Bob: You know you could have included the texture bind in this method, right?
* Why does it always have to be that one extra line for every fucking gauge, which is only good for being failure points?
* Why did you seriously think that was an acceptable way of doing things?
*/
int i = (fluid * height) / maxFluid;
gui.drawTexturedModalRect(x, y - i, tx, ty - i, width, i);
}
public void renderTankInfo(GuiContainer gui, int mouseX, int mouseY, int x, int y, int width, int height) {
if(gui instanceof GuiInfoContainer)
renderTankInfo((GuiInfoContainer)gui, mouseX, mouseY, x, y, width, height);
/** Not yet tested, in theory the UV should loop, allowing a single quad to properly display the tiling fluid texture. */
public void renderTank(int x, int y, double z, int width, int height) {
Minecraft.getMinecraft().getTextureManager().bindTexture(type.getTexture());
int i = (fluid * height) / maxFluid;
double minX = x;
double maxX = x + width;
double minY = y + (height - i);
double maxY = y + height;
double minU = 1 - i / 16;
double maxU = 1;
double minV = 0;
double maxV = width / 16;
Tessellator tessellator = Tessellator.instance;
tessellator.startDrawingQuads();
tessellator.addVertexWithUV(minX, maxY, z, minU, maxV);
tessellator.addVertexWithUV(maxX, maxY, z, maxU, maxV);
tessellator.addVertexWithUV(maxX, minY, z, maxU, minV);
tessellator.addVertexWithUV(minX, minY, z, minU, minV);
tessellator.draw();
}
public void renderTankInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height) {
@ -270,31 +300,28 @@ public class FluidTank {
list.add(I18n.format(this.type.getUnlocalizedName()));
list.add(fluid + "/" + maxFluid + "mB");
if(type.temperature < 0)
/*if(type.temperature < 0)
list.add(EnumChatFormatting.BLUE + "" + type.temperature + "°C");
if(type.temperature > 0)
list.add(EnumChatFormatting.RED + "" + type.temperature + "°C");
if(type.isAntimatter())
list.add(EnumChatFormatting.DARK_RED + "Antimatter");
if(type.traits.contains(FluidTrait.CORROSIVE))
list.add(EnumChatFormatting.YELLOW + "Corrosive");
if(type.traits.contains(FluidTrait.CORROSIVE_2))
list.add(EnumChatFormatting.GOLD + "Strongly Corrosive");
if(type.traits.contains(FluidTrait.NO_CONTAINER))
list.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank");
if(type.traits.contains(FluidTrait.LEAD_CONTAINER))
list.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold");
list.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold");*/
type.addInfo(list);
gui.drawFluidInfo(list.toArray(new String[0]), mouseX, mouseY);
}
}
@Deprecated
public ResourceLocation getSheet() {
return new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids" + this.type.getSheetID() + ".png");
}
@ -314,7 +341,7 @@ public class FluidTank {
maxFluid = nbt.getInteger(s + "_max");
type = FluidType.getEnumFromName(nbt.getString(s + "_type")); //compat
if(type.getName().equals(Fluids.NONE.name()))
if(type == Fluids.NONE)
type = Fluids.fromID(nbt.getInteger(s + "_type"));
}

View File

@ -5,9 +5,13 @@ import java.util.Collections;
import java.util.List;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.fluid.FluidType.FluidTrait;
import com.hbm.lib.RefStrings;
import com.hbm.render.util.EnumSymbol;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.ResourceLocation;
public class FluidType {
@ -22,7 +26,7 @@ public class FluidType {
//ID of the texture sheet the fluid is on
private int sheetID;
//Unlocalized string ID of the fluid
private String name;
private String unlocalized;
public int poison;
public int flammability;
@ -30,7 +34,9 @@ public class FluidType {
public EnumSymbol symbol;
public int temperature;
public List<FluidTrait> traits = new ArrayList();
private String compat;
private String stringId;
private ResourceLocation texture;
public FluidType(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name) {
this(compat, color, x, y, sheet, p, f, r, symbol, name, 0, new FluidTrait[0]);
@ -44,12 +50,12 @@ public class FluidType {
this(compat, color, x, y, sheet, p, f, r, symbol, name, temperature, new FluidTrait[0]);
}
public FluidType(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, int temperature, FluidTrait... traits) {
this.compat = compat;
public FluidType(String name, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String unlocalized, int temperature, FluidTrait... traits) {
this.stringId = name;
this.color = color;
this.textureX = x;
this.textureY = y;
this.name = name;
this.unlocalized = unlocalized;
this.sheetID = sheet;
this.poison = p;
this.flammability = f;
@ -57,10 +63,21 @@ public class FluidType {
this.symbol = symbol;
this.temperature = temperature;
Collections.addAll(this.traits, traits);
this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + name + ".png");
this.id = Fluids.registerSelf(this);
}
public FluidType setTemp(int temperature) {
this.temperature = temperature;
return this;
}
public FluidType addTratis(FluidTrait... traits) {
Collections.addAll(this.traits, traits);
return this;
}
public int getID() {
return this.id;
}
@ -68,10 +85,6 @@ public class FluidType {
public int getColor() {
return this.color;
}
@Deprecated
public int getMSAColor() {
return this.color;
}
public int textureX() {
return this.textureX;
}
@ -81,40 +94,28 @@ public class FluidType {
public int getSheetID() {
return this.sheetID;
}
public ResourceLocation getTexture() {
return this.texture;
}
public String getUnlocalizedName() {
return this.name;
}
@Deprecated
public String name() {
return this.compat;
}
@Deprecated
public String getName() {
return this.compat;
return this.unlocalized;
}
public boolean isHot() {
return this.temperature >= 100;
}
public boolean isCorrosive() {
return this.traits.contains(FluidTrait.CORROSIVE) || this.traits.contains(FluidTrait.CORROSIVE_2);
}
public boolean isAntimatter() {
return this.traits.contains(FluidTrait.AMAT);
}
public boolean hasNoContainer() {
return this.traits.contains(FluidTrait.NO_CONTAINER);
}
public boolean hasNoID() {
return this.traits.contains(FluidTrait.NO_ID);
}
public boolean needsLeadContainer() {
return this.traits.contains(FluidTrait.LEAD_CONTAINER);
}
@ -140,6 +141,19 @@ public class FluidType {
public void onFluidRelease(TileEntity te, FluidTank tank, int overflowAmount) { }
//public void onFluidTransmit(FluidNetwork net) { }
public void addInfo(List<String> info) {
if(temperature < 0) info.add(EnumChatFormatting.BLUE + "" + temperature + "°C");
if(temperature > 0) info.add(EnumChatFormatting.RED + "" + temperature + "°C");
if(isAntimatter()) info.add(EnumChatFormatting.DARK_RED + "Antimatter");
if(traits.contains(FluidTrait.CORROSIVE_2)) info.add(EnumChatFormatting.GOLD + "Strongly Corrosive");
else if(traits.contains(FluidTrait.CORROSIVE)) info.add(EnumChatFormatting.YELLOW + "Corrosive");
if(traits.contains(FluidTrait.NO_CONTAINER)) info.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank");
if(traits.contains(FluidTrait.LEAD_CONTAINER)) info.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold");
}
public static enum FluidTrait {
AMAT,
CORROSIVE,
@ -164,4 +178,16 @@ public class FluidType {
public int ordinal() {
return this.getID();
}
@Deprecated
public int getMSAColor() {
return this.color;
}
@Deprecated
public String name() {
return this.stringId;
}
@Deprecated
public String getName() {
return this.stringId;
}
}

View File

@ -0,0 +1,65 @@
package com.hbm.inventory.fluid;
import java.util.List;
import com.hbm.inventory.fluid.FluidType.FluidTrait;
import com.hbm.render.util.EnumSymbol;
import com.hbm.util.BobMathUtil;
import net.minecraft.util.EnumChatFormatting;
/** Because updating all the combustion engines and adding values by hand fucking sucks */
public class FluidTypeCombustible extends FluidTypeFlammable {
protected FuelGrade fuelGrade;
protected double combustionEnergy;
public FluidTypeCombustible(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name) {
this(compat, color, x, y, sheet, p, f, r, symbol, name, 0, new FluidTrait[0]);
}
public FluidTypeCombustible(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, FluidTrait... traits) {
this(compat, color, x, y, sheet, p, f, r, symbol, name, 0, traits);
}
public FluidTypeCombustible(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, int temperature) {
this(compat, color, x, y, sheet, p, f, r, symbol, name, temperature, new FluidTrait[0]);
}
public FluidTypeCombustible(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, int temperature, FluidTrait... traits) {
super(compat, color, x, y, sheet, p, f, r, symbol, name, temperature, traits);
}
public FluidTypeCombustible setCombustionEnergy(FuelGrade grade, double energy) {
this.fuelGrade = grade;
this.combustionEnergy = energy;
return this;
}
@Override
public void addInfo(List<String> info) {
super.addInfo(info);
if(combustionEnergy > 0) {
info.add(EnumChatFormatting.GOLD + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber((int) energy) + "HE " + EnumChatFormatting.GOLD + "per bucket used in an engine");
info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade());
}
}
public static enum FuelGrade {
LOW("Low"), //heating and industrial oil
MEDIUM("Medium"), //petroil
HIGH("High"), //diesel, gasoline
AERO("Aviation"); //kerosene and other light aviation fuels
private String grade;
private FuelGrade(String grade) {
this.grade = grade;
}
public String getGrade() {
return this.grade;
}
}
}

View File

@ -0,0 +1,44 @@
package com.hbm.inventory.fluid;
import java.util.List;
import com.hbm.inventory.fluid.FluidType.FluidTrait;
import com.hbm.render.util.EnumSymbol;
import net.minecraft.util.EnumChatFormatting;
/** If it burns, it needs to be an instance of this class. */
public class FluidTypeFlammable extends FluidType {
/** How much heat energy (usually translates into HE 1:1) 1000mB hold */
protected double energy;
public FluidTypeFlammable(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name) {
this(compat, color, x, y, sheet, p, f, r, symbol, name, 0, new FluidTrait[0]);
}
public FluidTypeFlammable(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, FluidTrait... traits) {
this(compat, color, x, y, sheet, p, f, r, symbol, name, 0, traits);
}
public FluidTypeFlammable(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, int temperature) {
this(compat, color, x, y, sheet, p, f, r, symbol, name, temperature, new FluidTrait[0]);
}
public FluidTypeFlammable(String compat, int color, int x, int y, int sheet, int p, int f, int r, EnumSymbol symbol, String name, int temperature, FluidTrait... traits) {
super(compat, color, x, y, sheet, p, f, r, symbol, name, temperature, traits);
}
public FluidTypeFlammable setHeatEnergy(double energy) {
this.energy = energy;
return this;
}
@Override
public void addInfo(List<String> info) {
super.addInfo(info);
if(energy > 0)
info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + ((int) energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket burned");
}
}

View File

@ -106,28 +106,28 @@ public class Fluids {
ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM",0xE39393, 13, 1, 2, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.ultrahotsteam", 600);
COOLANT = new FluidType("COOLANT",0xd8fcff, 2, 1, 1, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.coolant");
LAVA = new FluidType("LAVA",0xFF3300, 3, 1, 1, 4, 0, 0, EnumSymbol.NOWATER, "hbmfluid.lava", 1200);
DEUTERIUM = new FluidType("DEUTERIUM",0x0000FF, 4, 1, 1, 3, 4, 0, EnumSymbol.NONE, "hbmfluid.deuterium");
TRITIUM = new FluidType("TRITIUM",0x000099, 5, 1, 1, 3, 4, 0, EnumSymbol.RADIATION, "hbmfluid.tritium");
OIL = new FluidType("OIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.oil");
HOTOIL = new FluidType("HOTOIL",0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotoil", 350);
HEAVYOIL = new FluidType("HEAVYOIL",0x141312, 2, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.heavyoil");
DEUTERIUM = new FluidTypeCombustible("DEUTERIUM",0x0000FF, 4, 1, 1, 3, 4, 0, EnumSymbol.NONE, "hbmfluid.deuterium");
TRITIUM = new FluidTypeCombustible("TRITIUM",0x000099, 5, 1, 1, 3, 4, 0, EnumSymbol.RADIATION, "hbmfluid.tritium");
OIL = new FluidTypeFlammable("OIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.oil");
HOTOIL = new FluidTypeFlammable("HOTOIL",0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotoil", 350);
HEAVYOIL = new FluidTypeFlammable("HEAVYOIL",0x141312, 2, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.heavyoil");
BITUMEN = new FluidType("BITUMEN",0x1f2426, 3, 2, 1, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.bitumen");
SMEAR = new FluidType("SMEAR",0x190f01, 7, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.smear");
HEATINGOIL = new FluidType("HEATINGOIL",0x211806, 4, 2, 1, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.heatingoil");
RECLAIMED = new FluidType("RECLAIMED",0x332b22, 8, 1, 1, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.reclaimed");
PETROIL = new FluidType("PETROIL",0x44413d, 9, 1, 1, 1, 3, 0, EnumSymbol.NONE, "hbmfluid.petroil");
SMEAR = new FluidTypeFlammable("SMEAR",0x190f01, 7, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.smear");
HEATINGOIL = new FluidTypeCombustible("HEATINGOIL",0x211806, 4, 2, 1, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.heatingoil");
RECLAIMED = new FluidTypeCombustible("RECLAIMED",0x332b22, 8, 1, 1, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.reclaimed");
PETROIL = new FluidTypeCombustible("PETROIL",0x44413d, 9, 1, 1, 1, 3, 0, EnumSymbol.NONE, "hbmfluid.petroil");
LUBRICANT = new FluidType("LUBRICANT",0x606060, 10, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.lubricant");
NAPHTHA = new FluidType("NAPHTHA",0x595744, 5, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha");
DIESEL = new FluidType("DIESEL",0xf2eed5, 11, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel");
DIESEL_CRACK = new FluidType("DIESEL_CRACK",0xf2eed5, 11, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel_crack");
LIGHTOIL = new FluidType("LIGHTOIL",0x8c7451, 6, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil");
KEROSENE = new FluidType("KEROSENE",0xffa5d2, 12, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.kerosene");
GAS = new FluidType("GAS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.gas");
PETROLEUM = new FluidType("PETROLEUM",0x7cb7c9, 7, 2, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.petroleum");
LPG = new FluidType("LPG",0x4747EA, 5, 2, 2, 1, 3, 1, EnumSymbol.NONE, "hbmfluid.lpg");
BIOGAS = new FluidType("BIOGAS",0xbfd37c, 12, 2, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.biogas");
BIOFUEL = new FluidType("BIOFUEL",0xeef274, 13, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.biofuel");
NITAN = new FluidType("NITAN",0x8018ad, 15, 2, 1, 2, 4, 1, EnumSymbol.NONE, "hbmfluid.nitan");
NAPHTHA = new FluidTypeFlammable("NAPHTHA",0x595744, 5, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha");
DIESEL = new FluidTypeCombustible("DIESEL",0xf2eed5, 11, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel");
DIESEL_CRACK = new FluidTypeCombustible("DIESEL_CRACK",0xf2eed5, 11, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel_crack");
LIGHTOIL = new FluidTypeCombustible("LIGHTOIL",0x8c7451, 6, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil");
KEROSENE = new FluidTypeCombustible("KEROSENE",0xffa5d2, 12, 1, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.kerosene");
GAS = new FluidTypeFlammable("GAS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.gas");
PETROLEUM = new FluidTypeFlammable("PETROLEUM",0x7cb7c9, 7, 2, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.petroleum");
LPG = new FluidTypeCombustible("LPG",0x4747EA, 5, 2, 2, 1, 3, 1, EnumSymbol.NONE, "hbmfluid.lpg");
BIOGAS = new FluidTypeFlammable("BIOGAS",0xbfd37c, 12, 2, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.biogas");
BIOFUEL = new FluidTypeCombustible("BIOFUEL",0xeef274, 13, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.biofuel");
NITAN = new FluidTypeCombustible("NITAN",0x8018ad, 15, 2, 1, 2, 4, 1, EnumSymbol.NONE, "hbmfluid.nitan");
UF6 = new FluidType("UF6",0xD1CEBE, 14, 1, 1, 4, 0, 2, EnumSymbol.RADIATION, "hbmfluid.uf6", FluidTrait.CORROSIVE);
PUF6 = new FluidType("PUF6",0x4C4C4C, 15, 1, 1, 4, 0, 4, EnumSymbol.RADIATION, "hbmfluid.puf6", FluidTrait.CORROSIVE);
SAS3 = new FluidType("SAS3",0x4ffffc, 14, 2, 1, 5, 0, 4, EnumSymbol.RADIATION, "hbmfluid.sas3", FluidTrait.CORROSIVE);
@ -137,7 +137,7 @@ public class Fluids {
ACID = new FluidType("ACID",0xfff7aa, 10, 2, 1, 3, 0, 3, EnumSymbol.OXIDIZER, "hbmfluid.acid", FluidTrait.CORROSIVE);
WATZ = new FluidType("WATZ",0x86653E, 11, 2, 1, 4, 0, 3, EnumSymbol.ACID, "hbmfluid.watz", FluidTrait.CORROSIVE_2);
CRYOGEL = new FluidType("CRYOGEL",0x32ffff, 0, 1, 2, 2, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.cryogel", -170);
HYDROGEN = new FluidType("HYDROGEN",0x4286f4, 3, 1, 2, 3, 4, 0, EnumSymbol.CROYGENIC, "hbmfluid.hydrogen");
HYDROGEN = new FluidTypeCombustible("HYDROGEN",0x4286f4, 3, 1, 2, 3, 4, 0, EnumSymbol.CROYGENIC, "hbmfluid.hydrogen");
OXYGEN = new FluidType("OXYGEN",0x98bdf9, 4, 1, 2, 3, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.oxygen");
XENON = new FluidType("XENON",0xba45e8, 5, 1, 2, 0, 0, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.xenon");
BALEFIRE = new FluidType("BALEFIRE",0x28e02e, 6, 1, 2, 4, 4, 3, EnumSymbol.RADIATION, "hbmfluid.balefire", 1500, FluidTrait.CORROSIVE);
@ -145,8 +145,8 @@ public class Fluids {
PAIN = new FluidType("PAIN",0x938541, 15, 1, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.pain", 300, FluidTrait.CORROSIVE);
WASTEFLUID = new FluidType("WASTEFLUID",0x544400, 0, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastefluid", FluidTrait.NO_CONTAINER);
WASTEGAS = new FluidType("WASTEGAS",0xB8B8B8, 1, 2, 2, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastegas", FluidTrait.NO_CONTAINER);
GASOLINE = new FluidType("GASOLINE",0x445772, 2, 2, 2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.gasoline");
COALGAS = new FluidType("COALGAS",0x445772, 2, 2, 2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.coalgas");
GASOLINE = new FluidTypeCombustible("GASOLINE",0x445772, 2, 2, 2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.gasoline");
COALGAS = new FluidTypeCombustible("COALGAS",0x445772, 2, 2, 2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.coalgas");
SPENTSTEAM = new FluidType("SPENTSTEAM",0x445772, 3, 2, 2, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.spentsteam", FluidTrait.NO_CONTAINER);
FRACKSOL = new FluidType("FRACKSOL",0x798A6B, 4, 2, 2, 1, 3, 3, EnumSymbol.ACID, "hbmfluid.fracksol", FluidTrait.CORROSIVE);
PLASMA_DT = new FluidType("PLASMA_DT",0xF7AFDE, 8, 1, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
@ -159,15 +159,15 @@ public class Fluids {
PLASMA_DH3 = new FluidType("PLASMA_DH3",0xFF83AA, 6, 2, 2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dh3", 3480, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID);
HELIUM3 = new FluidType("HELIUM3",0xFCF0C4, 7, 2, 2, 3, 4, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.helium3");
DEATH = new FluidType("DEATH",0x717A88, 8, 2, 2, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.death", 300, FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER);
ETHANOL = new FluidType("ETHANOL",0xe0ffff, 9, 2, 2, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.ethanol");
ETHANOL = new FluidTypeCombustible("ETHANOL",0xe0ffff, 9, 2, 2, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.ethanol");
HEAVYWATER = new FluidType("HEAVYWATER",0x00a0b0, 10, 2, 2, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.heavywater");
CRACKOIL = new FluidType("CRACKOIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.crackoil");
COALOIL = new FluidType("COALOIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.coaloil");
HOTCRACKOIL = new FluidType("HOTCRACKOIL",0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotcrackoil", 350);
NAPHTHA_CRACK = new FluidType("NAPHTHA_CRACK",0x595744, 5, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha_crack");
LIGHTOIL_CRACK = new FluidType("LIGHTOIL_CRACK",0x8c7451, 6, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil_crack");
AROMATICS = new FluidType("AROMATICS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.aromatics");
UNSATURATEDS = new FluidType("UNSATURATEDS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.unsaturateds");
CRACKOIL = new FluidTypeFlammable("CRACKOIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.crackoil");
COALOIL = new FluidTypeFlammable("COALOIL",0x020202, 6, 1, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.coaloil");
HOTCRACKOIL = new FluidTypeFlammable("HOTCRACKOIL",0x300900, 8, 2, 1, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotcrackoil", 350);
NAPHTHA_CRACK = new FluidTypeFlammable("NAPHTHA_CRACK",0x595744, 5, 2, 1, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha_crack");
LIGHTOIL_CRACK = new FluidTypeFlammable("LIGHTOIL_CRACK",0x8c7451, 6, 2, 1, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil_crack");
AROMATICS = new FluidTypeFlammable("AROMATICS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.aromatics");
UNSATURATEDS = new FluidTypeFlammable("UNSATURATEDS",0xfffeed, 13, 1, 1, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.unsaturateds");
// ^ ^ ^ ^ ^ ^ ^ ^
//ADD NEW FLUIDS HERE
//AND DON'T FORGET THE META DOWN HERE
@ -191,10 +191,10 @@ public class Fluids {
metaOrder.add(CRYOGEL);
//pure elements, cyogenic gasses
metaOrder.add(HYDROGEN);
metaOrder.add(HELIUM3);
metaOrder.add(OXYGEN);
metaOrder.add(DEUTERIUM);
metaOrder.add(TRITIUM);
metaOrder.add(HELIUM3);
metaOrder.add(OXYGEN);
metaOrder.add(XENON);
metaOrder.add(MERCURY);
//oils, fuels
@ -213,7 +213,6 @@ public class Fluids {
metaOrder.add(SMEAR);
metaOrder.add(HEATINGOIL);
metaOrder.add(RECLAIMED);
metaOrder.add(PETROIL);
metaOrder.add(LUBRICANT);
metaOrder.add(GAS);
metaOrder.add(PETROLEUM);
@ -223,6 +222,7 @@ public class Fluids {
metaOrder.add(DIESEL);
metaOrder.add(DIESEL_CRACK);
metaOrder.add(KEROSENE);
metaOrder.add(PETROIL);
metaOrder.add(GASOLINE);
metaOrder.add(COALGAS);
metaOrder.add(BIOGAS);