From b31a465a086f646d84cec7ce40b244d969a2d227 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 2 Feb 2022 16:49:06 +0100 Subject: [PATCH] FluidType child classes for flammability and combustion properties "the enums were better because uhhh switches" well can your enums do this? --- .../java/com/hbm/inventory/FluidTank.java | 55 ++++++++++---- .../com/hbm/inventory/fluid/FluidType.java | 76 +++++++++++++------ .../inventory/fluid/FluidTypeCombustible.java | 65 ++++++++++++++++ .../inventory/fluid/FluidTypeFlammable.java | 44 +++++++++++ .../java/com/hbm/inventory/fluid/Fluids.java | 68 ++++++++--------- 5 files changed, 235 insertions(+), 73 deletions(-) create mode 100644 src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java create mode 100644 src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index cdc928b1b..0cf2a2b60 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -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")); } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index 52d5de9b6..d7a476dc8 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -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 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 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; + } } diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java new file mode 100644 index 000000000..331f3d6b3 --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java @@ -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 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; + } + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java new file mode 100644 index 000000000..4a0c52c7d --- /dev/null +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java @@ -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 info) { + super.addInfo(info); + + if(energy > 0) + info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + ((int) energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket burned"); + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 41e740028..4c6ff4fa0 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -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);