diff --git a/src/main/java/com/hbm/inventory/fluid/FluidType.java b/src/main/java/com/hbm/inventory/fluid/FluidType.java index b9a890c5e..5968400e8 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidType.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidType.java @@ -32,28 +32,14 @@ public class FluidType { private ResourceLocation texture; - public FluidType(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name) { - this(compat, color, p, f, r, symbol, name, 0, new FluidTrait[0]); - } - - public FluidType(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, FluidTrait... traits) { - this(compat, color, p, f, r, symbol, name, 0, traits); - } - - public FluidType(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, int temperature) { - this(compat, color, p, f, r, symbol, name, temperature, new FluidTrait[0]); - } - - public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol, String unlocalized, int temperature, FluidTrait... traits) { + public FluidType(String name, int color, int p, int f, int r, EnumSymbol symbol) { this.stringId = name; this.color = color; - this.unlocalized = unlocalized; + this.unlocalized = "hbmfluid." + name.toLowerCase(); this.poison = p; this.flammability = f; this.reactivity = r; this.symbol = symbol; - this.temperature = temperature; - Collections.addAll(this.traits, traits); this.texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/fluids/" + name.toLowerCase() + ".png"); this.id = Fluids.registerSelf(this); @@ -64,7 +50,7 @@ public class FluidType { return this; } - public FluidType addTratis(FluidTrait... traits) { + public FluidType addTraits(FluidTrait... traits) { Collections.addAll(this.traits, traits); return this; } @@ -72,6 +58,10 @@ public class FluidType { public int getID() { return this.id; } + + public String getName() { + return this.stringId; + } public int getColor() { return this.color; @@ -168,8 +158,4 @@ public class FluidType { 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 index 9f1a1faea..493171e99 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeCombustible.java @@ -12,25 +12,13 @@ import net.minecraft.util.EnumChatFormatting; public class FluidTypeCombustible extends FluidTypeFlammable { protected FuelGrade fuelGrade; - protected double combustionEnergy; + protected long combustionEnergy; - public FluidTypeCombustible(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name) { - this(compat, color, p, f, r, symbol, name, 0, new FluidTrait[0]); + public FluidTypeCombustible(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); } - public FluidTypeCombustible(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, FluidTrait... traits) { - this(compat, color, p, f, r, symbol, name, 0, traits); - } - - public FluidTypeCombustible(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, int temperature) { - this(compat, color, p, f, r, symbol, name, temperature, new FluidTrait[0]); - } - - public FluidTypeCombustible(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, int temperature, FluidTrait... traits) { - super(compat, color, p, f, r, symbol, name, temperature, traits); - } - - public FluidTypeCombustible setCombustionEnergy(FuelGrade grade, double energy) { + public FluidTypeCombustible setCombustionEnergy(FuelGrade grade, long energy) { this.fuelGrade = grade; this.combustionEnergy = energy; return this; @@ -39,18 +27,28 @@ public class FluidTypeCombustible extends FluidTypeFlammable { @Override public void addInfo(List info) { super.addInfo(info); + + info.add(EnumChatFormatting.GOLD + "[Combustible]"); 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 + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(combustionEnergy) + "HE " + EnumChatFormatting.GOLD + "per bucket used in an engine"); info.add(EnumChatFormatting.GOLD + "Fuel grade: " + EnumChatFormatting.RED + this.fuelGrade.getGrade()); } } + public long getCombustionEnergy() { + return this.combustionEnergy; + } + + public FuelGrade getGrade() { + return this.fuelGrade; + } + 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 + LOW("Low"), //heating and industrial oil < star engine, iGen + MEDIUM("Medium"), //petroil < diesel generator + HIGH("High"), //diesel, gasoline < HP engine + AERO("Aviation"); //kerosene and other light aviation fuels < turbofan private String grade; diff --git a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java index dd0a97f05..5ce3f8afb 100644 --- a/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java +++ b/src/main/java/com/hbm/inventory/fluid/FluidTypeFlammable.java @@ -4,6 +4,7 @@ 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; @@ -11,25 +12,13 @@ import net.minecraft.util.EnumChatFormatting; public class FluidTypeFlammable extends FluidType { /** How much heat energy (usually translates into HE 1:1) 1000mB hold */ - protected double energy; + protected long energy; - public FluidTypeFlammable(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name) { - this(compat, color, p, f, r, symbol, name, 0, new FluidTrait[0]); + public FluidTypeFlammable(String compat, int color, int p, int f, int r, EnumSymbol symbol) { + super(compat, color, p, f, r, symbol); } - public FluidTypeFlammable(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, FluidTrait... traits) { - this(compat, color, p, f, r, symbol, name, 0, traits); - } - - public FluidTypeFlammable(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, int temperature) { - this(compat, color, p, f, r, symbol, name, temperature, new FluidTrait[0]); - } - - public FluidTypeFlammable(String compat, int color, int p, int f, int r, EnumSymbol symbol, String name, int temperature, FluidTrait... traits) { - super(compat, color, p, f, r, symbol, name, temperature, traits); - } - - public FluidTypeFlammable setHeatEnergy(double energy) { + public FluidTypeFlammable setHeatEnergy(long energy) { this.energy = energy; return this; } @@ -38,7 +27,9 @@ public class FluidTypeFlammable extends FluidType { public void addInfo(List info) { super.addInfo(info); + info.add(EnumChatFormatting.YELLOW + "[Flammable]"); + if(energy > 0) - info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + ((int) energy) + "HE " + EnumChatFormatting.YELLOW + "per bucket burned"); + info.add(EnumChatFormatting.YELLOW + "Provides " + EnumChatFormatting.RED + "" + BobMathUtil.getShortNumber(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 f27c8af1f..595363120 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.List; import com.hbm.inventory.fluid.FluidType.FluidTrait; +import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.render.util.EnumSymbol; public class Fluids { @@ -98,75 +99,75 @@ public class Fluids { * You may screw with metaOrder as much as you like, as long as you keep all fluids in the list exactly once. */ - NONE = new FluidType("NONE",0x888888, 0, 0, 0, EnumSymbol.NONE, "hbmfluid.none"); - WATER = new FluidType("WATER",0x3333FF, 0, 0, 0, EnumSymbol.NONE, "hbmfluid.water"); - STEAM = new FluidType("STEAM",0xe5e5e5, 3, 0, 0, EnumSymbol.NONE, "hbmfluid.steam", 100); - HOTSTEAM = new FluidType("HOTSTEAM",0xE7D6D6, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.hotsteam", 300); - SUPERHOTSTEAM = new FluidType("SUPERHOTSTEAM",0xE7B7B7, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.superhotsteam", 450); - ULTRAHOTSTEAM = new FluidType("ULTRAHOTSTEAM",0xE39393, 4, 0, 0, EnumSymbol.NONE, "hbmfluid.ultrahotsteam", 600); - COOLANT = new FluidType("COOLANT",0xd8fcff, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.coolant"); - LAVA = new FluidType("LAVA",0xFF3300, 4, 0, 0, EnumSymbol.NOWATER, "hbmfluid.lava", 1200); - DEUTERIUM = new FluidTypeCombustible("DEUTERIUM",0x0000FF, 3, 4, 0, EnumSymbol.NONE, "hbmfluid.deuterium"); - TRITIUM = new FluidTypeCombustible("TRITIUM",0x000099, 3, 4, 0, EnumSymbol.RADIATION, "hbmfluid.tritium"); - OIL = new FluidTypeFlammable("OIL",0x020202, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.oil"); - HOTOIL = new FluidTypeFlammable("HOTOIL",0x300900, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotoil", 350); - HEAVYOIL = new FluidTypeFlammable("HEAVYOIL",0x141312, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.heavyoil"); - BITUMEN = new FluidType("BITUMEN",0x1f2426, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.bitumen"); - SMEAR = new FluidTypeFlammable("SMEAR",0x190f01, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.smear"); - HEATINGOIL = new FluidTypeCombustible("HEATINGOIL",0x211806, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.heatingoil"); - RECLAIMED = new FluidTypeCombustible("RECLAIMED",0x332b22, 2, 2, 0, EnumSymbol.NONE, "hbmfluid.reclaimed"); - PETROIL = new FluidTypeCombustible("PETROIL",0x44413d, 1, 3, 0, EnumSymbol.NONE, "hbmfluid.petroil"); - LUBRICANT = new FluidType("LUBRICANT",0x606060, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.lubricant"); - NAPHTHA = new FluidTypeFlammable("NAPHTHA",0x595744, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha"); - DIESEL = new FluidTypeCombustible("DIESEL",0xf2eed5, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel"); - LIGHTOIL = new FluidTypeCombustible("LIGHTOIL",0x8c7451, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil"); - KEROSENE = new FluidTypeCombustible("KEROSENE",0xffa5d2, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.kerosene"); - GAS = new FluidTypeFlammable("GAS",0xfffeed, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.gas"); - PETROLEUM = new FluidTypeFlammable("PETROLEUM",0x7cb7c9, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.petroleum"); - LPG = new FluidTypeCombustible("LPG",0x4747EA, 1, 3, 1, EnumSymbol.NONE, "hbmfluid.lpg"); - BIOGAS = new FluidTypeFlammable("BIOGAS",0xbfd37c, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.biogas"); - BIOFUEL = new FluidTypeCombustible("BIOFUEL",0xeef274, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.biofuel"); - NITAN = new FluidTypeCombustible("NITAN",0x8018ad, 2, 4, 1, EnumSymbol.NONE, "hbmfluid.nitan"); - UF6 = new FluidType("UF6",0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION, "hbmfluid.uf6", FluidTrait.CORROSIVE); - PUF6 = new FluidType("PUF6",0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION, "hbmfluid.puf6", FluidTrait.CORROSIVE); - SAS3 = new FluidType("SAS3",0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION, "hbmfluid.sas3", FluidTrait.CORROSIVE); - SCHRABIDIC = new FluidType("SCHRABIDIC",0x006B6B, 5, 0, 5, EnumSymbol.ACID, "hbmfluid.schrabidic", FluidTrait.CORROSIVE_2); - AMAT = new FluidType("AMAT",0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.amat", FluidTrait.AMAT); - ASCHRAB = new FluidType("ASCHRAB",0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.aschrab", FluidTrait.AMAT); - ACID = new FluidType("ACID",0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER, "hbmfluid.acid", FluidTrait.CORROSIVE); - WATZ = new FluidType("WATZ",0x86653E, 4, 0, 3, EnumSymbol.ACID, "hbmfluid.watz", FluidTrait.CORROSIVE_2); - CRYOGEL = new FluidType("CRYOGEL",0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.cryogel", -170); - HYDROGEN = new FluidTypeCombustible("HYDROGEN",0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC, "hbmfluid.hydrogen"); - OXYGEN = new FluidType("OXYGEN",0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.oxygen"); - XENON = new FluidType("XENON",0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.xenon"); - BALEFIRE = new FluidType("BALEFIRE",0x28e02e, 4, 4, 3, EnumSymbol.RADIATION, "hbmfluid.balefire", 1500, FluidTrait.CORROSIVE); - MERCURY = new FluidType("MERCURY",0x808080, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.mercury"); - PAIN = new FluidType("PAIN",0x938541, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.pain", 300, FluidTrait.CORROSIVE); - WASTEFLUID = new FluidType("WASTEFLUID",0x544400, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastefluid", FluidTrait.NO_CONTAINER); - WASTEGAS = new FluidType("WASTEGAS",0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION, "hbmfluid.wastegas", FluidTrait.NO_CONTAINER); - GASOLINE = new FluidTypeCombustible("GASOLINE",0x445772, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.gasoline"); - COALGAS = new FluidTypeCombustible("COALGAS",0x445772, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.coalgas"); - SPENTSTEAM = new FluidType("SPENTSTEAM",0x445772, 2, 0, 0, EnumSymbol.NONE, "hbmfluid.spentsteam", FluidTrait.NO_CONTAINER); - FRACKSOL = new FluidType("FRACKSOL",0x798A6B, 1, 3, 3, EnumSymbol.ACID, "hbmfluid.fracksol", FluidTrait.CORROSIVE); - PLASMA_DT = new FluidType("PLASMA_DT",0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dt", 3250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - PLASMA_HD = new FluidType("PLASMA_HD",0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_hd", 2500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - PLASMA_HT = new FluidType("PLASMA_HT",0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_ht", 3000, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - PLASMA_XM = new FluidType("PLASMA_XM",0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION, "hbmfluid.plasma_xm", 4250, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - PLASMA_BF = new FluidType("PLASMA_BF",0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER, "hbmfluid.plasma_bf", 8500, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - CARBONDIOXIDE = new FluidType("CARBONDIOXIDE",0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.carbondioxide"); - PLASMA_DH3 = new FluidType("PLASMA_DH3",0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION, "hbmfluid.plasma_dh3", 3480, FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); - HELIUM3 = new FluidType("HELIUM3",0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT, "hbmfluid.helium3"); - DEATH = new FluidType("DEATH",0x717A88, 2, 0, 1, EnumSymbol.ACID, "hbmfluid.death", 300, FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER); - ETHANOL = new FluidTypeCombustible("ETHANOL",0xe0ffff, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.ethanol"); - HEAVYWATER = new FluidType("HEAVYWATER",0x00a0b0, 1, 0, 0, EnumSymbol.NONE, "hbmfluid.heavywater"); - CRACKOIL = new FluidTypeFlammable("CRACKOIL",0x020202, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.crackoil"); - COALOIL = new FluidTypeFlammable("COALOIL",0x020202, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.coaloil"); - HOTCRACKOIL = new FluidTypeFlammable("HOTCRACKOIL",0x300900, 2, 3, 0, EnumSymbol.NONE, "hbmfluid.hotcrackoil", 350); - NAPHTHA_CRACK = new FluidTypeFlammable("NAPHTHA_CRACK",0x595744, 2, 1, 0, EnumSymbol.NONE, "hbmfluid.naphtha_crack"); - LIGHTOIL_CRACK = new FluidTypeFlammable("LIGHTOIL_CRACK",0x8c7451, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.lightoil_crack"); - DIESEL_CRACK = new FluidTypeCombustible("DIESEL_CRACK",0xf2eed5, 1, 2, 0, EnumSymbol.NONE, "hbmfluid.diesel_crack"); - AROMATICS = new FluidTypeFlammable("AROMATICS",0xfffeed, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.aromatics"); - UNSATURATEDS = new FluidTypeFlammable("UNSATURATEDS",0xfffeed, 1, 4, 1, EnumSymbol.NONE, "hbmfluid.unsaturateds"); + NONE = new FluidType( "NONE", 0x888888, 0, 0, 0, EnumSymbol.NONE); + WATER = new FluidType( "WATER", 0x3333FF, 0, 0, 0, EnumSymbol.NONE); + STEAM = new FluidType( "STEAM", 0xe5e5e5, 3, 0, 0, EnumSymbol.NONE).setTemp(100); + HOTSTEAM = new FluidType( "HOTSTEAM", 0xE7D6D6, 4, 0, 0, EnumSymbol.NONE).setTemp(300); + SUPERHOTSTEAM = new FluidType( "SUPERHOTSTEAM", 0xE7B7B7, 4, 0, 0, EnumSymbol.NONE).setTemp(450); + ULTRAHOTSTEAM = new FluidType( "ULTRAHOTSTEAM", 0xE39393, 4, 0, 0, EnumSymbol.NONE).setTemp(600); + COOLANT = new FluidType( "COOLANT", 0xd8fcff, 1, 0, 0, EnumSymbol.NONE); + LAVA = new FluidType( "LAVA", 0xFF3300, 4, 0, 0, EnumSymbol.NOWATER).setTemp(1200); + DEUTERIUM = new FluidTypeCombustible( "DEUTERIUM", 0x0000FF, 3, 4, 0, EnumSymbol.NONE); + TRITIUM = new FluidTypeCombustible( "TRITIUM", 0x000099, 3, 4, 0, EnumSymbol.RADIATION); + OIL = new FluidTypeFlammable( "OIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + HOTOIL = new FluidTypeFlammable( "HOTOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); + HEAVYOIL = new FluidTypeFlammable( "HEAVYOIL", 0x141312, 2, 1, 0, EnumSymbol.NONE); + BITUMEN = new FluidType( "BITUMEN", 0x1f2426, 2, 0, 0, EnumSymbol.NONE); + SMEAR = new FluidTypeFlammable( "SMEAR", 0x190f01, 2, 1, 0, EnumSymbol.NONE); + HEATINGOIL = new FluidTypeCombustible( "HEATINGOIL", 0x211806, 2, 2, 0, EnumSymbol.NONE); + RECLAIMED = new FluidTypeCombustible( "RECLAIMED", 0x332b22, 2, 2, 0, EnumSymbol.NONE); + PETROIL = new FluidTypeCombustible( "PETROIL", 0x44413d, 1, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 300_000); + LUBRICANT = new FluidType( "LUBRICANT", 0x606060, 2, 1, 0, EnumSymbol.NONE); + NAPHTHA = new FluidTypeFlammable( "NAPHTHA", 0x595744, 2, 1, 0, EnumSymbol.NONE); + DIESEL = new FluidTypeCombustible( "DIESEL", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 500_000); + LIGHTOIL = new FluidTypeFlammable( "LIGHTOIL", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); + KEROSENE = new FluidTypeCombustible( "KEROSENE", 0xffa5d2, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.AERO, 1_250_000); + GAS = new FluidTypeFlammable( "GAS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); + PETROLEUM = new FluidTypeFlammable( "PETROLEUM", 0x7cb7c9, 1, 4, 1, EnumSymbol.NONE); + LPG = new FluidTypeCombustible( "LPG", 0x4747EA, 1, 3, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); + BIOGAS = new FluidTypeFlammable( "BIOGAS", 0xbfd37c, 1, 4, 1, EnumSymbol.NONE); + BIOFUEL = new FluidTypeCombustible( "BIOFUEL", 0xeef274, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 400_000); + NITAN = new FluidTypeCombustible( "NITAN", 0x8018ad, 2, 4, 1, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 5_000_000); + UF6 = new FluidType( "UF6", 0xD1CEBE, 4, 0, 2, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); + PUF6 = new FluidType( "PUF6", 0x4C4C4C, 4, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); + SAS3 = new FluidType( "SAS3", 0x4ffffc, 5, 0, 4, EnumSymbol.RADIATION).addTraits(FluidTrait.CORROSIVE); + SCHRABIDIC = new FluidType( "SCHRABIDIC", 0x006B6B, 5, 0, 5, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2); + AMAT = new FluidType( "AMAT", 0x010101, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT); + ASCHRAB = new FluidType( "ASCHRAB", 0xb50000, 5, 0, 5, EnumSymbol.ANTIMATTER).addTraits(FluidTrait.AMAT); + ACID = new FluidType( "ACID", 0xfff7aa, 3, 0, 3, EnumSymbol.OXIDIZER).addTraits(FluidTrait.CORROSIVE); + WATZ = new FluidType( "WATZ", 0x86653E, 4, 0, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE_2); + CRYOGEL = new FluidType( "CRYOGEL", 0x32ffff, 2, 0, 0, EnumSymbol.CROYGENIC).setTemp(-170); + HYDROGEN = new FluidTypeCombustible( "HYDROGEN", 0x4286f4, 3, 4, 0, EnumSymbol.CROYGENIC).setCombustionEnergy(FuelGrade.HIGH, 10_000); + OXYGEN = new FluidType( "OXYGEN", 0x98bdf9, 3, 0, 0, EnumSymbol.CROYGENIC); + XENON = new FluidType( "XENON", 0xba45e8, 0, 0, 0, EnumSymbol.ASPHYXIANT); + BALEFIRE = new FluidType( "BALEFIRE", 0x28e02e, 4, 4, 3, EnumSymbol.RADIATION).setTemp(1500).addTraits(FluidTrait.CORROSIVE); + MERCURY = new FluidType( "MERCURY", 0x808080, 2, 0, 0, EnumSymbol.NONE); + PAIN = new FluidType( "PAIN", 0x938541, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE); + WASTEFLUID = new FluidType( "WASTEFLUID", 0x544400, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); + WASTEGAS = new FluidType( "WASTEGAS", 0xB8B8B8, 2, 0, 1, EnumSymbol.RADIATION).addTraits(FluidTrait.NO_CONTAINER); + GASOLINE = new FluidTypeCombustible( "GASOLINE", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 1_500_000); + COALGAS = new FluidTypeCombustible( "COALGAS", 0x445772, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.MEDIUM, 150_000); + SPENTSTEAM = new FluidType( "SPENTSTEAM", 0x445772, 2, 0, 0, EnumSymbol.NONE).addTraits(FluidTrait.NO_CONTAINER); + FRACKSOL = new FluidType( "FRACKSOL", 0x798A6B, 1, 3, 3, EnumSymbol.ACID).addTraits(FluidTrait.CORROSIVE); + PLASMA_DT = new FluidType( "PLASMA_DT", 0xF7AFDE, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); + PLASMA_HD = new FluidType( "PLASMA_HD", 0xF0ADF4, 0, 4, 0, EnumSymbol.RADIATION).setTemp(2500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); + PLASMA_HT = new FluidType( "PLASMA_HT", 0xD1ABF2, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3000).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); + PLASMA_XM = new FluidType( "PLASMA_XM", 0xC6A5FF, 0, 4, 1, EnumSymbol.RADIATION).setTemp(4250).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); + PLASMA_BF = new FluidType( "PLASMA_BF", 0xA7F1A3, 4, 5, 4, EnumSymbol.ANTIMATTER).setTemp(8500).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); + CARBONDIOXIDE = new FluidType( "CARBONDIOXIDE", 0x404040, 3, 0, 0, EnumSymbol.ASPHYXIANT); + PLASMA_DH3 = new FluidType( "PLASMA_DH3", 0xFF83AA, 0, 4, 0, EnumSymbol.RADIATION).setTemp(3480).addTraits(FluidTrait.NO_CONTAINER, FluidTrait.NO_ID); + HELIUM3 = new FluidType( "HELIUM3", 0xFCF0C4, 3, 4, 0, EnumSymbol.ASPHYXIANT); + DEATH = new FluidType( "DEATH", 0x717A88, 2, 0, 1, EnumSymbol.ACID).setTemp(300).addTraits(FluidTrait.CORROSIVE_2, FluidTrait.LEAD_CONTAINER); + ETHANOL = new FluidTypeCombustible( "ETHANOL", 0xe0ffff, 2, 3, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 200_000); + HEAVYWATER = new FluidType( "HEAVYWATER", 0x00a0b0, 1, 0, 0, EnumSymbol.NONE); + CRACKOIL = new FluidTypeFlammable( "CRACKOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + COALOIL = new FluidTypeFlammable( "COALOIL", 0x020202, 2, 1, 0, EnumSymbol.NONE); + HOTCRACKOIL = new FluidTypeFlammable( "HOTCRACKOIL", 0x300900, 2, 3, 0, EnumSymbol.NONE).setTemp(350); + NAPHTHA_CRACK = new FluidTypeFlammable( "NAPHTHA_CRACK", 0x595744, 2, 1, 0, EnumSymbol.NONE); + LIGHTOIL_CRACK = new FluidTypeFlammable( "LIGHTOIL_CRACK", 0x8c7451, 1, 2, 0, EnumSymbol.NONE); + DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); + AROMATICS = new FluidTypeFlammable( "AROMATICS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); + UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); // ^ ^ ^ ^ ^ ^ ^ ^ diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java b/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java index 6a9729a22..6ea316099 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineDiesel.java @@ -10,8 +10,10 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineDiesel; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineDiesel; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; @@ -23,11 +25,11 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineDiesel extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/GUIDiesel.png"); - private TileEntityMachineDiesel diFurnace; + private TileEntityMachineDiesel diesel; public GUIMachineDiesel(InventoryPlayer invPlayer, TileEntityMachineDiesel tedf) { super(new ContainerMachineDiesel(invPlayer, tedf)); - diFurnace = tedf; + diesel = tedf; this.xSize = 176; this.ySize = 166; @@ -37,15 +39,19 @@ public class GUIMachineDiesel extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diFurnace.power, diFurnace.powerCap); + diesel.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 69 - 52, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 69 - 52, 16, 52, diesel.power, diesel.powerCap); List text = new ArrayList(); text.add(EnumChatFormatting.YELLOW + "Accepted Fuels:"); - for(Entry entry : TileEntityMachineDiesel.fuels.entrySet()) { - text.add(" " + I18nUtil.resolveKey(entry.getKey().getUnlocalizedName()) + " (" + entry.getValue() + " HE/t)"); + for(FluidType type : Fluids.getInNiceOrder()) { + long energy = diesel.getHEFromFuel(type); + + if(energy > 0) + text.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName()) + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); } + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text.toArray(new String[0])); String[] text1 = new String[] { "Fuel consumption rate:", @@ -54,7 +60,7 @@ public class GUIMachineDiesel extends GuiInfoContainer { "(Consumption rate is constant)" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - if(!diFurnace.hasAcceptableFuel()) { + if(!diesel.hasAcceptableFuel()) { String[] text2 = new String[] { "Error: The currently set fuel type", "is not supported by this engine!" }; @@ -64,7 +70,7 @@ public class GUIMachineDiesel extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + String name = this.diesel.hasCustomInventoryName() ? this.diesel.getInventoryName() : I18n.format(this.diesel.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); @@ -76,12 +82,12 @@ public class GUIMachineDiesel extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(52); + if(diesel.power > 0) { + int i = (int)diesel.getPowerScaled(52); drawTexturedModalRect(guiLeft + 152, guiTop + 69 - i, 176, 52 - i, 16, i); } - if(diFurnace.tank.getFill() > 0 && diFurnace.hasAcceptableFuel()) + if(diesel.tank.getFill() > 0 && diesel.hasAcceptableFuel()) { drawTexturedModalRect(guiLeft + 43 + 18 * 4, guiTop + 34, 208, 0, 18, 18); } @@ -89,9 +95,9 @@ public class GUIMachineDiesel extends GuiInfoContainer { this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - if(!diFurnace.hasAcceptableFuel()) + if(!diesel.hasAcceptableFuel()) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - diFurnace.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); + diesel.tank.renderTank(guiLeft + 80, guiTop + 69, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java index e2ff49ac0..764c269f7 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineSelenium.java @@ -9,9 +9,11 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineSelenium; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineDiesel; import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; +import com.hbm.util.BobMathUtil; import com.hbm.util.I18nUtil; import net.minecraft.client.Minecraft; @@ -23,11 +25,11 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineSelenium extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_selenium.png"); - private TileEntityMachineSeleniumEngine diFurnace; + private TileEntityMachineSeleniumEngine selenium; public GUIMachineSelenium(InventoryPlayer invPlayer, TileEntityMachineSeleniumEngine tedf) { super(new ContainerMachineSelenium(invPlayer, tedf)); - diFurnace = tedf; + selenium = tedf; this.xSize = 176; this.ySize = 222; @@ -37,14 +39,17 @@ public class GUIMachineSelenium extends GuiInfoContainer { public void drawScreen(int mouseX, int mouseY, float f) { super.drawScreen(mouseX, mouseY, f); - diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, diFurnace.power, diFurnace.powerCap); + selenium.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 18, 16, 52); + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 108, 160, 16, selenium.power, selenium.powerCap); List text = new ArrayList(); text.add(EnumChatFormatting.YELLOW + "Accepted Fuels:"); - for(Entry entry : TileEntityMachineDiesel.fuels.entrySet()) { - text.add(" " + I18nUtil.resolveKey(entry.getKey().getUnlocalizedName()) + " (" + entry.getValue() + " HE/t)"); + for(FluidType type : Fluids.getInNiceOrder()) { + long energy = selenium.getHEFromFuel(type); + + if(energy > 0) + text.add(" " + I18nUtil.resolveKey(type.getUnlocalizedName()) + " (" + BobMathUtil.getShortNumber(energy) + "HE/t)"); } text.add(EnumChatFormatting.ITALIC + "(These numbers are base values,"); @@ -59,14 +64,14 @@ public class GUIMachineSelenium extends GuiInfoContainer { "(Consumption rate per piston)" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); - if(diFurnace.pistonCount < 3) { + if(selenium.pistonCount < 3) { String[] text2 = new String[] { "Error: At least three pistons are", "required to operate this radial engine!" }; this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 32, 16, 16, guiLeft - 8, guiTop + 36 + 16 + 32, text2); } - if(!diFurnace.hasAcceptableFuel()) { + if(!selenium.hasAcceptableFuel()) { String[] text2 = new String[] { "Error: The currently set fuel type", "is not supported by this engine!" }; @@ -76,7 +81,7 @@ public class GUIMachineSelenium extends GuiInfoContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + String name = this.selenium.hasCustomInventoryName() ? this.selenium.getInventoryName() : I18n.format(this.selenium.getInventoryName()); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); @@ -88,34 +93,34 @@ public class GUIMachineSelenium extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(diFurnace.power > 0) { - int i = (int)diFurnace.getPowerScaled(160); + if(selenium.power > 0) { + int i = (int)selenium.getPowerScaled(160); i = (int) Math.min(i, 160); drawTexturedModalRect(guiLeft + 8, guiTop + 108, 0, 222, i, 16); } - if(diFurnace.tank.getFill() > 0 && diFurnace.hasAcceptableFuel() && diFurnace.pistonCount > 2) + if(selenium.tank.getFill() > 0 && selenium.hasAcceptableFuel() && selenium.pistonCount > 2) { drawTexturedModalRect(guiLeft + 115, guiTop + 71, 192, 0, 18, 18); } - if(diFurnace.pistonCount > 0) + if(selenium.pistonCount > 0) { - int k = diFurnace.pistonCount; + int k = selenium.pistonCount; drawTexturedModalRect(guiLeft + 26, guiTop + 81, 176, 52 + 16 * k - 16, 16, 16); } - if(diFurnace.pistonCount < 3) + if(selenium.pistonCount < 3) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); - if(!diFurnace.hasAcceptableFuel()) + if(!selenium.hasAcceptableFuel()) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 48, 16, 16, 7); this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - diFurnace.tank.renderTank(guiLeft + 80 + 36, guiTop + 70, this.zLevel, 16, 52); + selenium.tank.renderTank(guiLeft + 80 + 36, guiTop + 70, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java index 5859e6467..1317d175d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDiesel.java @@ -9,6 +9,8 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.FluidTypeCombustible; +import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ModItems; import com.hbm.lib.Library; @@ -134,23 +136,32 @@ public class TileEntityMachineDiesel extends TileEntityMachineBase implements IE return getHEFromFuel() > 0; } - public static final HashMap fuels = new HashMap(); + public static HashMap fuelEfficiency = new HashMap(); static { - fuels.put(Fluids.HYDROGEN, 10); - fuels.put(Fluids.DIESEL, 500); - fuels.put(Fluids.PETROIL, 300); - fuels.put(Fluids.BIOFUEL, 400); - fuels.put(Fluids.GASOLINE, 1500); - fuels.put(Fluids.NITAN, 5000); - fuels.put(Fluids.LPG, 450); - fuels.put(Fluids.ETHANOL, 200); + fuelEfficiency.put(FuelGrade.LOW, 0.5D); + fuelEfficiency.put(FuelGrade.MEDIUM, 1.0D); + fuelEfficiency.put(FuelGrade.HIGH, 1.0D); + fuelEfficiency.put(FuelGrade.AERO, 0.1D); } - public int getHEFromFuel() { - FluidType type = tank.getTankType(); - Integer value = fuels.get(type); - return value != null ? value : 0; + public long getHEFromFuel() { + return getHEFromFuel(tank.getTankType()); + } + + public static long getHEFromFuel(FluidType type) { + + if(type instanceof FluidTypeCombustible) { + FluidTypeCombustible fuel = (FluidTypeCombustible) type; + FuelGrade grade = fuel.getGrade(); + double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0; + + if(fuel.getGrade() != FuelGrade.LOW) { + return (long) (fuel.getCombustionEnergy() / 1000L * efficiency); + } + } + + return 0; } public void generate() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java index 91ff31afb..bbc771f52 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSeleniumEngine.java @@ -9,7 +9,9 @@ import com.hbm.interfaces.IFluidContainer; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.FluidTypeCombustible; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.FluidTypeCombustible.FuelGrade; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; @@ -257,27 +259,29 @@ public class TileEntityMachineSeleniumEngine extends TileEntity implements ISide return getHEFromFuel() > 0; } - public static final HashMap fuels = new HashMap(); + public static HashMap fuelEfficiency = new HashMap(); static { - fuels.put(Fluids.SMEAR, 50); - fuels.put(Fluids.HEATINGOIL, 75); - fuels.put(Fluids.HYDROGEN, 5); - fuels.put(Fluids.DIESEL, 225); - fuels.put(Fluids.KEROSENE, 300); - fuels.put(Fluids.RECLAIMED, 100); - fuels.put(Fluids.PETROIL, 125); - fuels.put(Fluids.BIOFUEL, 200); - fuels.put(Fluids.GASOLINE, 700); - fuels.put(Fluids.NITAN, 2500); - fuels.put(Fluids.LPG, 200); - fuels.put(Fluids.ETHANOL, 75); + fuelEfficiency.put(FuelGrade.LOW, 1.0D); + fuelEfficiency.put(FuelGrade.MEDIUM, 0.75D); + fuelEfficiency.put(FuelGrade.HIGH, 0.5D); + fuelEfficiency.put(FuelGrade.AERO, 0.05D); } - public int getHEFromFuel() { - FluidType type = tank.getTankType(); - Integer value = fuels.get(type); - return value != null ? value : 0; + public long getHEFromFuel() { + return getHEFromFuel(tank.getTankType()); + } + + public static long getHEFromFuel(FluidType type) { + + if(type instanceof FluidTypeCombustible) { + FluidTypeCombustible fuel = (FluidTypeCombustible) type; + FuelGrade grade = fuel.getGrade(); + double efficiency = fuelEfficiency.containsKey(grade) ? fuelEfficiency.get(grade) : 0; + return (long) (fuel.getCombustionEnergy() / 1000L * efficiency); + } + + return 0; } public void generate() { diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java index 0eb171db1..12776a1f5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java @@ -1,5 +1,6 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; import java.util.List; import com.hbm.interfaces.IFluidAcceptor; @@ -164,38 +165,35 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement @Override public void setFillstate(int fill, int index) { - // TODO Auto-generated method stub - + tank.setFill(fill); } @Override public void setFluidFill(int fill, FluidType type) { - // TODO Auto-generated method stub - + if(type == tank.getTankType()) + tank.setFill(fill); } @Override public void setType(FluidType type, int index) { - // TODO Auto-generated method stub - + tank.setTankType(type); } @Override public List getTanks() { - // TODO Auto-generated method stub - return null; + List tanks = new ArrayList(); + tanks.add(tank); + return tanks; } @Override public int getFluidFill(FluidType type) { - // TODO Auto-generated method stub - return 0; + return tank.getTankType() == type ? tank.getFill() : 0; } @Override public int getMaxFluidFill(FluidType type) { - // TODO Auto-generated method stub - return 0; + return tank.getTankType() == type ? tank.getMaxFill() : 0; } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java index 3834ca8e5..2aabf9074 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineTurbofan.java @@ -8,6 +8,7 @@ import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.entity.particle.EntityTSmokeFX; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; +import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -32,6 +33,7 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +@Spaghetti("a") public class TileEntityMachineTurbofan extends TileEntity implements ISidedInventory, IEnergyGenerator, IFluidContainer, IFluidAcceptor { private ItemStack slots[]; diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 062523395..40134fb9f 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -452,6 +452,7 @@ hbm.key.reload=Nachladen hbmfluid.acid=Wasserstoffperoxid hbmfluid.amat=Antimaterie +hbmfluid.aromatics=Aromatische Kohlenwasserstoffe hbmfluid.aschrab=Antischrabidium hbmfluid.balefire=BF-Raketentreibstoff hbmfluid.biofuel=Biodiesel @@ -459,10 +460,13 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.coolant=Kühlflüssigkeit +hbmfluid.coaloil=Kohleöl +hbmfluid.crackoil=Crack-Öl hbmfluid.cryogel=Kryogel hbmfluid.death=Osmiridiumlösung hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel +hbmfluid.diesel_crack=Crackdiesel hbmfluid.ethanol=Ethanol hbmfluid.fracksol=Frackinglösung hbmfluid.gas=Erdgas @@ -471,16 +475,19 @@ hbmfluid.heatingoil=Heizöl hbmfluid.heavyoil=Schweröl hbmfluid.heavywater=Schweres Wasser hbmfluid.helium3=Helium-3 +hbmfluid.hotcrackoil=Heißes Crack-Öl hbmfluid.hotoil=Heißes Rohöl hbmfluid.hotsteam=Dichter Dampf hbmfluid.hydrogen=Flüssiger Wasserstoff hbmfluid.kerosene=Kerosin hbmfluid.lava=Lava hbmfluid.lightoil=Leichtöl +hbmfluid.lightoil_crack=Crack-Leichtöl hbmfluid.lpg=LPG hbmfluid.lubricant=Schmiermittel hbmfluid.mercury=Quecksilber hbmfluid.naphtha=Mitteldestillat +hbmfluid.naphtha_crack=Crack-Mitteldestillat hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff hbmfluid.none=Nichts hbmfluid.oil=Rohöl @@ -505,6 +512,7 @@ hbmfluid.superhotsteam=Superverdichteter Dampf hbmfluid.tritium=Tritium hbmfluid.uf6=Uranhexafluorid hbmfluid.ultrahotsteam=Ultraverdichteter Dampf +hbmfluid.unsaturateds=Ungesättigte Kohlenwasserstoffe hbmfluid.wastefluid=Flüssiger Atommüll hbmfluid.wastegas=Gasförmiger Atommüll hbmfluid.water=Wasser diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index ecef32886..4bd06c161 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -595,17 +595,21 @@ hbm.key.reload=Reload hbmfluid.acid=Hydrogen Peroxide hbmfluid.amat=Antimatter +hbmfluid.aromatics=Aromatic Hydrocarbons hbmfluid.aschrab=Antischrabidium hbmfluid.balefire=BF Rocket Fuel hbmfluid.biofuel=Biofuel hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.carbondioxide=Carbon Dioxide +hbmfluid.coaloil=Coal Oil hbmfluid.coolant=Coolant +hbmfluid.crackoil=Cracked Oil hbmfluid.cryogel=Cryogel hbmfluid.death=Osmiridic Solution hbmfluid.deuterium=Deuterium hbmfluid.diesel=Diesel +hbmfluid.diesel_crack=Cracked Diesel hbmfluid.ethanol=Ethanol hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas @@ -614,16 +618,19 @@ hbmfluid.heatingoil=Heating Oil hbmfluid.heavyoil=Heavy Oil hbmfluid.heavywater=Heavy Water hbmfluid.helium3=Helium-3 +hbmfluid.hotcrackoil=Hot Cracked Oil hbmfluid.hotoil=Hot Crude Oil hbmfluid.hotsteam=Dense Steam hbmfluid.hydrogen=Liquid Hydrogen hbmfluid.kerosene=Kerosene hbmfluid.lava=Lava hbmfluid.lightoil=Light Oil +hbmfluid.lightoil_crack=Cracked Light Oil hbmfluid.lpg=LPG hbmfluid.lubricant=Engine Lubricant hbmfluid.mercury=Mercury hbmfluid.naphtha=Naphtha +hbmfluid.naphtha_crack=Cracked Naphtha hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.none=None hbmfluid.oil=Crude Oil @@ -648,6 +655,7 @@ hbmfluid.superhotsteam=Super Dense Steam hbmfluid.tritium=Tritium hbmfluid.uf6=Uranium Hexafluoride hbmfluid.ultrahotsteam=Ultra Dense Steam +hbmfluid.unsaturateds=Unsaturated Hydrocarbons hbmfluid.wastefluid=Liquid Nuclear Waste hbmfluid.wastegas=Gaseous Nuclear Waste hbmfluid.water=Water