From 5644726060b1897a28350174efcdd47f43aca527 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 25 Apr 2023 14:50:42 +0200 Subject: [PATCH] coker recipes --- .../com/hbm/handler/nei/CokingHandler.java | 16 +++ .../java/com/hbm/inventory/fluid/Fluids.java | 15 +- .../hbm/inventory/recipes/CokerRecipes.java | 131 ++++++++++++++++++ .../recipes/SolidificationRecipes.java | 6 +- .../recipes/loader/SerializableRecipe.java | 1 + src/main/java/com/hbm/main/NEIConfig.java | 1 + .../machine/oil/TileEntityMachineCoker.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 3 + src/main/resources/assets/hbm/lang/en_US.lang | 3 + .../hbm/textures/gui/fluids/gas_coker.png | Bin 0 -> 558 bytes .../hbm/textures/gui/fluids/naphtha_coker.png | Bin 0 -> 554 bytes .../hbm/textures/gui/fluids/oil_coker.png | Bin 0 -> 530 bytes 12 files changed, 173 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/hbm/handler/nei/CokingHandler.java create mode 100644 src/main/java/com/hbm/inventory/recipes/CokerRecipes.java create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/gas_coker.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/naphtha_coker.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/oil_coker.png diff --git a/src/main/java/com/hbm/handler/nei/CokingHandler.java b/src/main/java/com/hbm/handler/nei/CokingHandler.java new file mode 100644 index 000000000..da3cb101d --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/CokingHandler.java @@ -0,0 +1,16 @@ +package com.hbm.handler.nei; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.CokerRecipes; + +public class CokingHandler extends NEIUniversalHandler { + + public CokingHandler() { + super("Coking", ModBlocks.machine_coker, CokerRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmCoking"; + } +} diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index d8666118d..2ed87dda4 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -123,6 +123,9 @@ public class Fluids { public static FluidType PHOSGENE; public static FluidType MUSTARDGAS; public static FluidType IONGEL; + public static FluidType OIL_COKER; //heavy fractions from coking, mostly bitumen + public static FluidType NAPHTHA_COKER; //medium fractions from coking, aromatics and fuel oil + public static FluidType GAS_COKER; //light fractions from coking, natgas and co2 private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -257,7 +260,10 @@ public class Fluids { COLLOID = new FluidType("COLLOID", 0x787878, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); PHOSGENE = new FluidType("PHOSGENE", 0xCFC4A4, 4, 0, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xCFC4A4, 0x361414)).addTraits(GASEOUS); MUSTARDGAS = new FluidType("MUSTARDGAS", 0xBAB572, 4, 1, 1, EnumSymbol.NONE).addContainers(new CD_Gastank(0xBAB572, 0x361414)).addTraits(GASEOUS); - IONGEL = new FluidType(103, "IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + IONGEL = new FluidType("IONGEL", 0xB8FFFF, 1, 0, 4, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + OIL_COKER = new FluidType("OIL_COKER", 0x001802, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + NAPHTHA_COKER = new FluidType("NAPHTHA_COKER", 0x495944, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID, VISCOUS); + GAS_COKER = new FluidType(106, "GAS_COKER", 0xDEF4CA, 1, 4, 0, EnumSymbol.NONE).addTraits(GASEOUS); // ^ ^ ^ ^ ^ ^ ^ ^ //ADD NEW FLUIDS HERE @@ -298,12 +304,14 @@ public class Fluids { metaOrder.add(OIL); metaOrder.add(CRACKOIL); metaOrder.add(COALOIL); + metaOrder.add(OIL_COKER); metaOrder.add(HOTOIL); metaOrder.add(HOTCRACKOIL); metaOrder.add(HEAVYOIL); metaOrder.add(HEAVYOIL_VACUUM); metaOrder.add(NAPHTHA); metaOrder.add(NAPHTHA_CRACK); + metaOrder.add(NAPHTHA_COKER); metaOrder.add(REFORMATE); metaOrder.add(LIGHTOIL); metaOrder.add(LIGHTOIL_CRACK); @@ -315,6 +323,7 @@ public class Fluids { metaOrder.add(RECLAIMED); metaOrder.add(LUBRICANT); metaOrder.add(GAS); + metaOrder.add(GAS_COKER); metaOrder.add(PETROLEUM); metaOrder.add(SOURGAS); metaOrder.add(LPG); @@ -437,6 +446,7 @@ public class Fluids { double complexityRefinery = 1.1D; double complexityFraction = 1.05D; double complexityCracking = 1.25D; + double complexityCoker = 1.25D; double complexityChemplant = 1.1D; double complexityLubed = 1.15D; double complexityLeaded = 1.5D; @@ -449,7 +459,9 @@ public class Fluids { /// the allmighty excel spreadsheet has spoken! /// registerCalculatedFuel(OIL, (baseline / 1D * flammabilityLow * demandLow), 0, null); registerCalculatedFuel(CRACKOIL, (baseline / 1D * flammabilityLow * demandLow * complexityCracking), 0, null); + registerCalculatedFuel(OIL_COKER, (baseline / 1D * flammabilityLow * demandLow * complexityCoker), 0, null); registerCalculatedFuel(GAS, (baseline / 1D * flammabilityNormal * demandVeryLow), 1.25, FuelGrade.GAS); + registerCalculatedFuel(GAS_COKER, (baseline / 1D * flammabilityNormal * demandVeryLow * complexityCoker), 1.25, FuelGrade.GAS); registerCalculatedFuel(HEAVYOIL, (baseline / 0.5 * flammabilityLow * demandLow * complexityRefinery), 1.25D, FuelGrade.LOW); registerCalculatedFuel(SMEAR, (baseline / 0.35 * flammabilityLow * demandLow * complexityRefinery * complexityFraction), 1.25D, FuelGrade.LOW); registerCalculatedFuel(RECLAIMED, (baseline / 0.28 * flammabilityLow * demandLow * complexityRefinery * complexityFraction * complexityChemplant), 1.25D, FuelGrade.LOW); @@ -458,6 +470,7 @@ public class Fluids { registerCalculatedFuel(HEATINGOIL, (baseline / 0.31 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction * complexityFraction), 1.25D, FuelGrade.LOW); registerCalculatedFuel(NAPHTHA, (baseline / 0.25 * flammabilityLow * demandLow * complexityRefinery), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(NAPHTHA_CRACK, (baseline / 0.40 * flammabilityLow * demandLow * complexityRefinery * complexityCracking), 1.5D, FuelGrade.MEDIUM); + registerCalculatedFuel(NAPHTHA_COKER, (baseline / 0.25 * flammabilityLow * demandLow * complexityCoker), 1.5D, FuelGrade.MEDIUM); registerCalculatedFuel(GASOLINE, (baseline / 0.20 * flammabilityNormal * demandLow * complexityRefinery * complexityChemplant), 2.5D, FuelGrade.HIGH); registerCalculatedFuel(GASOLINE_LEADED, (baseline / 0.20 * flammabilityNormal * demandLow * complexityRefinery * complexityChemplant * complexityLeaded), 2.5D, FuelGrade.HIGH); registerCalculatedFuel(DIESEL, (baseline / 0.21 * flammabilityNormal * demandLow * complexityRefinery * complexityFraction), 2.5D, FuelGrade.HIGH); diff --git a/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java new file mode 100644 index 000000000..f60ab5044 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/CokerRecipes.java @@ -0,0 +1,131 @@ +package com.hbm.inventory.recipes; + +import static com.hbm.inventory.fluid.Fluids.*; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map.Entry; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.OreDictManager.DictFrame; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.trait.FT_Combustible; +import com.hbm.inventory.fluid.trait.FT_Flammable; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; +import com.hbm.items.ItemEnums.EnumCokeType; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.Tuple.Triplet; + +import net.minecraft.item.ItemStack; + +public class CokerRecipes extends SerializableRecipe { + + private static HashMap> recipes = new HashMap(); + + @Override + public void registerDefaults() { + + registerAuto(HEAVYOIL, new FluidStack(Fluids.OIL_COKER, 20)); + registerAuto(HEAVYOIL_VACUUM, new FluidStack(Fluids.REFORMATE, 20)); + registerAuto(COALCREOSOTE, new FluidStack(Fluids.NAPHTHA_COKER, 20)); + registerAuto(WOODOIL, new FluidStack(Fluids.NAPHTHA_COKER, 20)); + registerAuto(SMEAR, new FluidStack(Fluids.OIL_COKER, 20)); + registerAuto(HEATINGOIL, new FluidStack(Fluids.OIL_COKER, 20)); + registerAuto(HEATINGOIL_VACUUM, new FluidStack(Fluids.OIL_COKER, 20)); + registerAuto(RECLAIMED, new FluidStack(Fluids.NAPHTHA_COKER, 20)); + registerAuto(NAPHTHA, new FluidStack(Fluids.NAPHTHA_COKER, 20)); + registerAuto(NAPHTHA_CRACK, new FluidStack(Fluids.NAPHTHA_COKER, 20)); + registerAuto(DIESEL, new FluidStack(Fluids.NAPHTHA_COKER, 20)); + registerAuto(DIESEL_REFORM, new FluidStack(Fluids.NAPHTHA_COKER, 20)); + registerAuto(DIESEL_CRACK, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(DIESEL_CRACK_REFORM, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(LIGHTOIL, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(LIGHTOIL_CRACK, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(LIGHTOIL_VACUUM, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(BIOFUEL, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(AROMATICS, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(REFORMATE, new FluidStack(Fluids.GAS_COKER, 20)); + registerAuto(XYLENE, new FluidStack(Fluids.GAS_COKER, 20)); + } + + private static void registerAuto(FluidType fluid, FluidStack byproduct) { + registerSFAuto(fluid, 800_000L, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), byproduct); //3200 burntime * 1.25 burntime bonus * 200 TU/t + } + private static void registerSFAuto(FluidType fluid, long tuPerSF, ItemStack fuel, FluidStack byproduct) { + long tuFlammable = fluid.hasTrait(FT_Flammable.class) ? fluid.getTrait(FT_Flammable.class).getHeatEnergy() : 0; + long tuCombustible = fluid.hasTrait(FT_Combustible.class) ? fluid.getTrait(FT_Combustible.class).getCombustionEnergy() : 0; + + long tuPerBucket = Math.max(tuFlammable, tuCombustible); + + double penalty = 1.1D; + + int mB = (int) (tuPerSF * 1000L * penalty / tuPerBucket); + + if(mB > 10_000) mB -= (mB % 1000); + else if(mB > 1_000) mB -= (mB % 100); + else if(mB > 100) mB -= (mB % 10); + + registerRecipe(fluid, mB, fuel, byproduct); + } + private static void registerRecipe(FluidType type, int quantity, ItemStack output, FluidStack byproduct) { + recipes.put(type, new Triplet(quantity, output, byproduct)); + } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(Entry> entry : CokerRecipes.recipes.entrySet()) { + + FluidType type = entry.getKey(); + int amount = entry.getValue().getX(); + ItemStack out = entry.getValue().getY().copy(); + FluidStack byproduct = entry.getValue().getZ(); + + recipes.put(ItemFluidIcon.make(type, amount), new ItemStack[] {out, ItemFluidIcon.make(byproduct)}); + } + + return recipes; + } + + @Override + public String getFileName() { + return "hbmCoker.json"; + } + + @Override + public Object getRecipeObject() { + return recipes; + } + + @Override + public void deleteRecipes() { + recipes.clear(); + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = (JsonObject) recipe; + FluidStack in = this.readFluidStack(obj.get("input").getAsJsonArray()); + ItemStack out = this.readItemStack(obj.get("output").getAsJsonArray()); + FluidStack byproduct = this.readFluidStack(obj.get("byproduct").getAsJsonArray()); + recipes.put(in.type, new Triplet(in.fill, out, byproduct)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry> rec = (Entry>) recipe; + FluidStack in = new FluidStack(rec.getKey(), rec.getValue().getX()); + writer.name("input"); + this.writeFluidStack(in, writer); + writer.name("output"); + this.writeItemStack(rec.getValue().getY(), writer); + writer.name("byproduct"); + this.writeFluidStack(rec.getValue().getZ(), writer); + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 91940bef6..4288e9022 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -94,13 +94,13 @@ public class SolidificationRecipes extends SerializableRecipe { registerSFAuto(LIGHTOIL_CRACK); registerSFAuto(LIGHTOIL_VACUUM); registerSFAuto(KEROSENE); - registerSFAuto(GAS); + //registerSFAuto(GAS); registerSFAuto(SOURGAS); registerSFAuto(REFORMGAS); registerSFAuto(SYNGAS); registerSFAuto(PETROLEUM); registerSFAuto(LPG); - registerSFAuto(BIOGAS); + //registerSFAuto(BIOGAS); registerSFAuto(BIOFUEL); registerSFAuto(AROMATICS); registerSFAuto(UNSATURATEDS); @@ -111,7 +111,7 @@ public class SolidificationRecipes extends SerializableRecipe { } private static void registerSFAuto(FluidType fluid) { - registerSFAuto(fluid, 144000L, ModItems.solid_fuel); //3200 burntime * 1.5 burntime bonus * 300 TU/t + registerSFAuto(fluid, 1_440_000L, ModItems.solid_fuel); //3200 burntime * 1.5 burntime bonus * 300 TU/t } private static void registerSFAuto(FluidType fluid, long tuPerSF, Item fuel) { long tuPerBucket = fluid.getTrait(FT_Flammable.class).getHeatEnergy(); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index dd64e10ca..92e378ef2 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -53,6 +53,7 @@ public abstract class SerializableRecipe { recipeHandlers.add(new ReformingRecipes()); recipeHandlers.add(new LiquefactionRecipes()); recipeHandlers.add(new SolidificationRecipes()); + recipeHandlers.add(new CokerRecipes()); recipeHandlers.add(new BreederRecipes()); recipeHandlers.add(new CyclotronRecipes()); recipeHandlers.add(new HadronRecipes()); diff --git a/src/main/java/com/hbm/main/NEIConfig.java b/src/main/java/com/hbm/main/NEIConfig.java index bbfea592a..03221742b 100644 --- a/src/main/java/com/hbm/main/NEIConfig.java +++ b/src/main/java/com/hbm/main/NEIConfig.java @@ -63,6 +63,7 @@ public class NEIConfig implements IConfigureNEI { } registerHandler(new LiquefactionHandler()); registerHandler(new SolidificationHandler()); + registerHandler(new CokingHandler()); registerHandler(new FractioningHandler()); registerHandler(new BoilingHandler()); registerHandler(new CombinationHandler()); diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java index 00d05c2ff..e4c2b0612 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCoker.java @@ -20,7 +20,7 @@ public class TileEntityMachineCoker extends TileEntityMachineBase implements IFl public FluidTank[] tanks; public TileEntityMachineCoker() { - super(1); + super(2); tanks = new FluidTank[2]; tanks[0] = new FluidTank(Fluids.HEAVYOIL, 16_000); tanks[1] = new FluidTank(Fluids.GAS, 8_000); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index eb0dbc7e7..5d91c1250 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -620,6 +620,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Endersaft hbmfluid.fracksol=Frackinglösung hbmfluid.gas=Erdgas +hbmfluid.gas_coker=Coker-Gas hbmfluid.gasoline=Benzin hbmfluid.gasoline_leaded=Bleibenzin hbmfluid.heatingoil=Heizöl @@ -646,11 +647,13 @@ hbmfluid.mug=Mug Root Beer hbmfluid.mug_hot=Heißes Mug Root Beer hbmfluid.mustardgas=Senfgas hbmfluid.naphtha=Mitteldestillat +hbmfluid.naphtha_coker=Coker-Naphtha hbmfluid.naphtha_crack=Crack-Mitteldestillat hbmfluid.nitan=NITAN© 100 Oktan Supertreibstoff hbmfluid.nitric_acid=Salpetersäure hbmfluid.none=Nichts hbmfluid.oil=Rohöl +hbmfluid.oil_coker=Coker-Öl hbmfluid.oxyhydrogen=Knallgas hbmfluid.oxygen=Flüssiger Sauerstoff hbmfluid.pain=Pandemonium(III)tantalit-Lösung diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 97050a4fb..b88c0bde6 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1189,6 +1189,7 @@ hbmfluid.ethanol=Ethanol hbmfluid.enderjuice=Ender Juice hbmfluid.fracksol=Fracking Solution hbmfluid.gas=Natural Gas +hbmfluid.gas_coker=Coker Gas hbmfluid.gasoline=Gasoline hbmfluid.gasoline_leaded=Leaded Gasoline hbmfluid.heatingoil=Heating Oil @@ -1215,11 +1216,13 @@ hbmfluid.mug=Mug Root Beer hbmfluid.mug_hot=Hot Mug Root Beer hbmfluid.mustardgas=Mustard Gas hbmfluid.naphtha=Naphtha +hbmfluid.naphtha_coker=Coker Naphtha hbmfluid.naphtha_crack=Cracked Naphtha hbmfluid.nitan=NITAN© 100 Octane Super Fuel hbmfluid.nitric_acid=Nitric Acid hbmfluid.none=None hbmfluid.oil=Crude Oil +hbmfluid.oil_coker=Coker Oil hbmfluid.oxygen=Liquid Oxygen hbmfluid.oxyhydrogen=Oxyhydrogen hbmfluid.pain=Pandemonium(III)tantalite Solution diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/gas_coker.png b/src/main/resources/assets/hbm/textures/gui/fluids/gas_coker.png new file mode 100644 index 0000000000000000000000000000000000000000..8c2466512e5e969e2cef3060f9e6548e0c667a12 GIT binary patch literal 558 zcmV+}0@3}6P)6*HDy0IR0g!X1>pEmv z7Mycjuh(|#zVFmpNhu*Bgb?uFlTvDrs@^P!2i*Ijlgb-Mk z1wW2s0~SJPgE2-_6*K$B#LO6mfv)SQwIU+IaU7^Bs!FXD=Nu^|%#3~Cn{P7%XzQyg z{)BfPRb}`&5Myk~c<)=30JT;^2$&iEr2D^({c9)Z+!!3k(K--gY?}bc<#NG$PmGaq z99xNEj4cK4J>zA>%$TN$X_^`fpHgb;hzP1m&Kc)i<6>q^9}^D`511J_XZC%+Z6G4l zS~-q`uIri=Gvj)H1!%+X@9(_4ywG*szbZTDny-`kaerBz%~ zN|aL0Oi@){KVBQ{Ge+keXYEy$lb!T^&$_OJ5Ze2!^}g?j2=hF%t}ENN;he+FsI}fi wPnGlM0hs5R&(F_q%?u$BLTHRiDToMv0oOM@NXUPK?*IS*07*qoM6N<$g6dNL0RR91 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_coker.png b/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_coker.png new file mode 100644 index 0000000000000000000000000000000000000000..a95110b3aae8f043cd4c27394a848956e63d06b3 GIT binary patch literal 554 zcmV+_0@eMAP)dkyY|34ui%m^Vo&Qz7w8vDKj5MyLr zS3(G=D%-Z9s!Y?w)6*0CzSCO6IfsbgODRKXnkI72q?8CD(0k_+IF17V=Ntf~6k?3X zwrx1)xZQ5!)mkgPcXG~%2q6T#_vD<%R@H|E5gBbA$1#f6bwyPXk%yAVu=x4;NeF>$ z+wjY>3}7LIQJ7LfRWY+4Ow5dVo{2Hidq+fs^E^>iRF&R4&N*_IR!;oHmrM*FIY zzu;Xdu4qm)9e_0fTd(0k`R zPhyP2ikWe{-2g`M*Vh;C@9)GI|3=w4H+)^xUteE&dwb)0e4gi#fl>;swGna2In!FZ zW{Rrv@$oTeUt@I6am8L$x!B1xP3-$l2w{A$Sl3z+5!Q8O-*=AVz&VGR(R+W0UMknm s1F)_u-{0Rqk{LoEgfJMj)({c?1L~|i4W27vq5uE@07*qoM6N<$g4aa?{{R30 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/oil_coker.png b/src/main/resources/assets/hbm/textures/gui/fluids/oil_coker.png new file mode 100644 index 0000000000000000000000000000000000000000..bac4e60113a60cf590b938cb08b366ded2fba13d GIT binary patch literal 530 zcmV+t0`2{YP)F#da|NnCvW98Tu(i+9;KFIBzAlR|2 z7eA5?yvrSc?r;TWAW8f`WFKn=956uRNJ=S)2(&mTlfvdhnZqd{bLRBzOsR@2nKCI_ zXAZm(8MNVb2UJj1+#OpRbRdP3loGvn+;+;O98m6@!=SYW=HO5k4Pzm`N00<`kR_ZQ zn7LC%^y^q}Se6B^&bDoz<$IKpU?eJFPWJ22^r2U1tzowo zDT{~k=mD*BWHv<-g3(R;kb%vjFH&-w$~?-lzI&P9Wpkc3(*NEmtB zIlsQZ77*PXSu!$b>g$4h&(Vp0cl^2|tR7LFn292M{JaEjcW6#ZiIftz+bs%J3UbVl z`7#S*0=3Shl-NGjfti@T!n4JD@6U!3Jl?3P(L})ZXN7+;RFBRS&7ksRM0XJQ51v-$ UuYr3f)c^nh07*qoM6N<$f