From 86517eef8239c4deca7e0d4c599b75270e1cbb84 Mon Sep 17 00:00:00 2001 From: Serenibyss <10861407+serenibyss@users.noreply.github.com> Date: Fri, 1 Dec 2023 19:14:48 -0600 Subject: [PATCH] Reimplement alternative fluid names (#2238) --- .../java/gregtech/api/fluids/FluidBuilder.java | 16 ++++++++++++++++ .../material/materials/FirstDegreeMaterials.java | 5 +++-- .../materials/OrganicChemistryMaterials.java | 2 +- .../materials/UnknownCompositionMaterials.java | 4 ++-- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/gregtech/api/fluids/FluidBuilder.java b/src/main/java/gregtech/api/fluids/FluidBuilder.java index 60cc47fa243..ec0aedd5f43 100644 --- a/src/main/java/gregtech/api/fluids/FluidBuilder.java +++ b/src/main/java/gregtech/api/fluids/FluidBuilder.java @@ -59,6 +59,7 @@ public class FluidBuilder { private boolean hasFluidBlock = false; private boolean hasBucket = true; + private String alternativeName = null; public FluidBuilder() {} @@ -213,6 +214,15 @@ private static int convertViscosity(double viscosity) { return this; } + /** + * @param name Alternative registry name for this fluid to look for + * @return this + */ + public @NotNull FluidBuilder alternativeName(@NotNull String name) { + this.alternativeName = name; + return this; + } + /** * Mark this fluid as having a custom still texture * @@ -275,7 +285,13 @@ private static int convertViscosity(double viscosity) { throw new IllegalStateException("Could not determine fluid name"); } + // try to find an already registered fluid that we can use instead of a new one Fluid fluid = FluidRegistry.getFluid(name); + if (fluid == null && alternativeName != null) { + // try to use alternative fluid name if needed + fluid = FluidRegistry.getFluid(alternativeName); + } + boolean needsRegistration = false; if (fluid == null) { needsRegistration = true; diff --git a/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java b/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java index f5a760b7364..8fe4c42472c 100644 --- a/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java +++ b/src/main/java/gregtech/api/unification/material/materials/FirstDegreeMaterials.java @@ -263,7 +263,8 @@ public static void register() { .dust(0) .liquid(new FluidBuilder() .temperature(273) - .customStill()) + .customStill() + .alternativeName("fluid.ice")) .color(0xC8C8FF).iconSet(SHINY) .flags(NO_SMASHING, EXCLUDE_BLOCK_CRAFTING_BY_HAND_RECIPES, DISABLE_DECOMPOSITION) .components(Hydrogen, 2, Oxygen, 1) @@ -1281,7 +1282,7 @@ public static void register() { .build(); DistilledWater = new Material.Builder(421, gregtechId("distilled_water")) - .fluid() + .liquid(new FluidBuilder().alternativeName("fluidDistWater")) .color(0x4A94FF) .flags(DISABLE_DECOMPOSITION) .components(Hydrogen, 2, Oxygen, 1) diff --git a/src/main/java/gregtech/api/unification/material/materials/OrganicChemistryMaterials.java b/src/main/java/gregtech/api/unification/material/materials/OrganicChemistryMaterials.java index 729df027e64..f47c7cc0a42 100644 --- a/src/main/java/gregtech/api/unification/material/materials/OrganicChemistryMaterials.java +++ b/src/main/java/gregtech/api/unification/material/materials/OrganicChemistryMaterials.java @@ -392,7 +392,7 @@ public static void register() { // FREE ID 1053 Ethanol = new Material.Builder(1054, gregtechId("ethanol")) - .liquid(new FluidBuilder().customStill()) + .liquid(new FluidBuilder().customStill().alternativeName("bio.ethanol")) .color(0xFC4C04) .flags(DISABLE_DECOMPOSITION) .components(Carbon, 2, Hydrogen, 6, Oxygen, 1) diff --git a/src/main/java/gregtech/api/unification/material/materials/UnknownCompositionMaterials.java b/src/main/java/gregtech/api/unification/material/materials/UnknownCompositionMaterials.java index 4321d7de644..2b8918b2abb 100644 --- a/src/main/java/gregtech/api/unification/material/materials/UnknownCompositionMaterials.java +++ b/src/main/java/gregtech/api/unification/material/materials/UnknownCompositionMaterials.java @@ -48,7 +48,7 @@ public static void register() { .flags(STICKY).build(); Diesel = new Material.Builder(1508, gregtechId("diesel")) - .liquid(new FluidBuilder().customStill()) + .liquid(new FluidBuilder().customStill().alternativeName("fuel")) .color(0xFCF404) .flags(FLAMMABLE, EXPLOSIVE).build(); @@ -72,7 +72,7 @@ public static void register() { .color(0x0E2950).build(); SeedOil = new Material.Builder(1514, gregtechId("seed_oil")) - .liquid(new FluidBuilder().customStill()) + .liquid(new FluidBuilder().customStill().alternativeName("seed.oil")) .color(0xE4FC8C) .flags(STICKY, FLAMMABLE).build();