From e1506eb76bfd01432c193a187a8630b8a3a247f2 Mon Sep 17 00:00:00 2001 From: bruberu <80226372+bruberu@users.noreply.github.com> Date: Sat, 13 Jul 2024 12:35:00 -0500 Subject: [PATCH] feat: refactor PrimitiveRecipeLogic --- .../impl/MultiblockRecipeLogic.java | 4 ++ .../impl/NoEnergyMultiblockRecipeLogic.java | 55 ------------------ .../capability/impl/PrimitiveRecipeLogic.java | 6 +- .../java/gregtech/api/recipes/RecipeMaps.java | 5 +- .../builders/NoEnergyRecipeBuilder.java | 31 ---------- .../MetaTileEntityHeatExchanger.java | 4 +- .../item/material_sets/dull/fuel_rod.json | 3 +- .../material_sets/dull/fuel_rod_overlay.png | Bin 0 -> 4329 bytes 8 files changed, 13 insertions(+), 95 deletions(-) delete mode 100644 src/main/java/gregtech/api/capability/impl/NoEnergyMultiblockRecipeLogic.java delete mode 100644 src/main/java/gregtech/api/recipes/builders/NoEnergyRecipeBuilder.java create mode 100644 src/main/resources/assets/gregtech/textures/items/material_sets/dull/fuel_rod_overlay.png diff --git a/src/main/java/gregtech/api/capability/impl/MultiblockRecipeLogic.java b/src/main/java/gregtech/api/capability/impl/MultiblockRecipeLogic.java index b27685c6987..99f17e0aec0 100644 --- a/src/main/java/gregtech/api/capability/impl/MultiblockRecipeLogic.java +++ b/src/main/java/gregtech/api/capability/impl/MultiblockRecipeLogic.java @@ -40,6 +40,10 @@ public MultiblockRecipeLogic(RecipeMapMultiblockController tileEntity, boolean h super(tileEntity, tileEntity.recipeMap, hasPerfectOC); } + public MultiblockRecipeLogic(MultiblockWithDisplayBase tileEntity, RecipeMap recipeMap) { + super(tileEntity, recipeMap); + } + @Override public void update() {} diff --git a/src/main/java/gregtech/api/capability/impl/NoEnergyMultiblockRecipeLogic.java b/src/main/java/gregtech/api/capability/impl/NoEnergyMultiblockRecipeLogic.java deleted file mode 100644 index 55102efe954..00000000000 --- a/src/main/java/gregtech/api/capability/impl/NoEnergyMultiblockRecipeLogic.java +++ /dev/null @@ -1,55 +0,0 @@ -package gregtech.api.capability.impl; - -import gregtech.api.GTValues; -import gregtech.api.metatileentity.multiblock.RecipeMapMultiblockController; -import gregtech.api.recipes.logic.OverclockingLogic; -import gregtech.api.recipes.recipeproperties.IRecipePropertyStorage; - -import org.jetbrains.annotations.NotNull; - -public class NoEnergyMultiblockRecipeLogic extends MultiblockRecipeLogic { - - public NoEnergyMultiblockRecipeLogic(RecipeMapMultiblockController tileEntity) { - super(tileEntity); - } - - protected long getEnergyInputPerSecond() { - return 2147483647L; - } - - protected long getEnergyStored() { - return 0L; - } - - protected long getEnergyCapacity() { - return 2147483647L; - } - - protected boolean drawEnergy(int recipeEUt, boolean simulate) { - return true; - } - - public long getMaxVoltage() { - return 1L; - } - - protected int[] runOverclockingLogic(@NotNull IRecipePropertyStorage propertyStorage, int recipeEUt, - long maxVoltage, int recipeDuration, int amountOC) { - return OverclockingLogic.standardOverclockingLogic(1, this.getMaxVoltage(), recipeDuration, amountOC, - this.getOverclockingDurationDivisor(), this.getOverclockingVoltageMultiplier()); - } - - public long getMaximumOverclockVoltage() { - return GTValues.V[1]; - } - - public void invalidate() { - this.previousRecipe = null; - this.progressTime = 0; - this.maxProgressTime = 0; - this.recipeEUt = 0; - this.fluidOutputs = null; - this.itemOutputs = null; - this.setActive(false); - } -} diff --git a/src/main/java/gregtech/api/capability/impl/PrimitiveRecipeLogic.java b/src/main/java/gregtech/api/capability/impl/PrimitiveRecipeLogic.java index e3367929b06..95ce6f0c269 100644 --- a/src/main/java/gregtech/api/capability/impl/PrimitiveRecipeLogic.java +++ b/src/main/java/gregtech/api/capability/impl/PrimitiveRecipeLogic.java @@ -1,7 +1,7 @@ package gregtech.api.capability.impl; import gregtech.api.GTValues; -import gregtech.api.metatileentity.multiblock.RecipeMapPrimitiveMultiblockController; +import gregtech.api.metatileentity.multiblock.MultiblockWithDisplayBase; import gregtech.api.recipes.RecipeMap; import gregtech.api.recipes.recipeproperties.IRecipePropertyStorage; @@ -12,9 +12,9 @@ /** * Recipe Logic for a Multiblock that does not require power. */ -public class PrimitiveRecipeLogic extends AbstractRecipeLogic { +public class PrimitiveRecipeLogic extends MultiblockRecipeLogic { - public PrimitiveRecipeLogic(RecipeMapPrimitiveMultiblockController tileEntity, RecipeMap recipeMap) { + public PrimitiveRecipeLogic(MultiblockWithDisplayBase tileEntity, RecipeMap recipeMap) { super(tileEntity, recipeMap); } diff --git a/src/main/java/gregtech/api/recipes/RecipeMaps.java b/src/main/java/gregtech/api/recipes/RecipeMaps.java index 8dd3b2dfd6d..81d16b5637a 100644 --- a/src/main/java/gregtech/api/recipes/RecipeMaps.java +++ b/src/main/java/gregtech/api/recipes/RecipeMaps.java @@ -12,7 +12,6 @@ import gregtech.api.recipes.builders.FuelRecipeBuilder; import gregtech.api.recipes.builders.FusionRecipeBuilder; import gregtech.api.recipes.builders.ImplosionRecipeBuilder; -import gregtech.api.recipes.builders.NoEnergyRecipeBuilder; import gregtech.api.recipes.builders.PrimitiveRecipeBuilder; import gregtech.api.recipes.builders.SimpleRecipeBuilder; import gregtech.api.recipes.builders.UniversalDistillationRecipeBuilder; @@ -1472,8 +1471,8 @@ public final class RecipeMaps { .sound(GTSoundEvents.MOTOR) .build(); - public static final RecipeMap HEAT_EXCHANGER_RECIPES = new RecipeMap<>("heat_exchanger", 1, - 0, 2, 2, new NoEnergyRecipeBuilder(), false) + public static final RecipeMap HEAT_EXCHANGER_RECIPES = new RecipeMap<>("heat_exchanger", 1, + 0, 2, 2, new PrimitiveRecipeBuilder(), false) .setProgressBar(GuiTextures.PROGRESS_BAR_ARROW_MULTIPLE, ProgressWidget.MoveType.HORIZONTAL) .setSound(GTSoundEvents.COOLING); diff --git a/src/main/java/gregtech/api/recipes/builders/NoEnergyRecipeBuilder.java b/src/main/java/gregtech/api/recipes/builders/NoEnergyRecipeBuilder.java deleted file mode 100644 index fd094fd5d20..00000000000 --- a/src/main/java/gregtech/api/recipes/builders/NoEnergyRecipeBuilder.java +++ /dev/null @@ -1,31 +0,0 @@ -package gregtech.api.recipes.builders; - -import gregtech.api.recipes.Recipe; -import gregtech.api.recipes.RecipeBuilder; -import gregtech.api.recipes.RecipeMap; -import gregtech.api.recipes.recipeproperties.PrimitiveProperty; -import gregtech.api.util.ValidationResult; - -public class NoEnergyRecipeBuilder extends RecipeBuilder { - - public NoEnergyRecipeBuilder() {} - - @SuppressWarnings("unused") - public NoEnergyRecipeBuilder(Recipe recipe, RecipeMap recipeMap) { - super(recipe, recipeMap); - } - - public NoEnergyRecipeBuilder(RecipeBuilder recipeBuilder) { - super(recipeBuilder); - } - - public NoEnergyRecipeBuilder copy() { - return new NoEnergyRecipeBuilder(this); - } - - public ValidationResult build() { - this.EUt(-1); - this.applyProperty(PrimitiveProperty.getInstance(), true); - return super.build(); - } -} diff --git a/src/main/java/gregtech/common/metatileentities/MetaTileEntityHeatExchanger.java b/src/main/java/gregtech/common/metatileentities/MetaTileEntityHeatExchanger.java index e4b154f56ad..c16f93b2022 100644 --- a/src/main/java/gregtech/common/metatileentities/MetaTileEntityHeatExchanger.java +++ b/src/main/java/gregtech/common/metatileentities/MetaTileEntityHeatExchanger.java @@ -1,6 +1,6 @@ package gregtech.common.metatileentities; -import gregtech.api.capability.impl.NoEnergyMultiblockRecipeLogic; +import gregtech.api.capability.impl.PrimitiveRecipeLogic; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.interfaces.IGregTechTileEntity; import gregtech.api.metatileentity.multiblock.IMultiblockPart; @@ -23,7 +23,7 @@ public class MetaTileEntityHeatExchanger extends RecipeMapMultiblockController { public MetaTileEntityHeatExchanger(ResourceLocation metaTileEntityId) { super(metaTileEntityId, RecipeMaps.HEAT_EXCHANGER_RECIPES); - this.recipeMapWorkable = new NoEnergyMultiblockRecipeLogic(this); + this.recipeMapWorkable = new PrimitiveRecipeLogic(this, RecipeMaps.HEAT_EXCHANGER_RECIPES); } @Override diff --git a/src/main/resources/assets/gregtech/models/item/material_sets/dull/fuel_rod.json b/src/main/resources/assets/gregtech/models/item/material_sets/dull/fuel_rod.json index bcc67cf2bae..3f040ed3795 100644 --- a/src/main/resources/assets/gregtech/models/item/material_sets/dull/fuel_rod.json +++ b/src/main/resources/assets/gregtech/models/item/material_sets/dull/fuel_rod.json @@ -1,6 +1,7 @@ { "parent": "item/generated", "textures": { - "layer0": "gregtech:items/material_sets/dull/fuel_rod" + "layer0": "gregtech:items/material_sets/dull/fuel_rod", + "layer1": "gregtech:items/material_sets/dull/fuel_rod_overlay" } } diff --git a/src/main/resources/assets/gregtech/textures/items/material_sets/dull/fuel_rod_overlay.png b/src/main/resources/assets/gregtech/textures/items/material_sets/dull/fuel_rod_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..abca35eacbad8fab43c12169f5cc72efda016573 GIT binary patch literal 4329 zcmeHKeQ*@z8Q-)eUyw9`AW>+tSsDfF-tFyuWOunsNbd4+;z7Iwl1rk=-tK$Jn!DT0 z-CpiUC5aI_bPy77qJ`2CDp-_)I7%(Xj|LK`fEpC0_{lY3MJdL%3{+`N-`#wV&N!K= z|K(=(cK3OH&+mPn-}}7p?EA~omBmSkwvM33MFsJvDJD2NCi1c|)oE3HmGhR(V9N!qf4k{_(UIM8kH>D`i7cJ%C;=hru7 zkXgIiK6>_x^yt3)vgc}ow=dtn#-CC&?`pK9$@=#mPtzTNn+ua*K-2BYKgtrRhhfS{)9;u?+*emjeH|E7!ZvNGArncuq z)uC4`SxZmf*A=_z{G#Q@&!9=aZGWK_p# zX1!pwmfEe>v5H_FJJ)TslpI^WsK2&sFNR}R(ZR0Wj4Ne+)7d-Ib{FiMUlk&bT${Zk zeOuas;@-p2=n40^-hNj_Tt$A$e~_kT$tiE0JN$TBRbNE(v}b&uDkTAz*2>S(p4KDHg4zT0`*s~4|i#Ju`ZcI2_)BYDL(ymC(b#yB z`FJ+nx%$oOorfRTeE9R%YtuECPpzo=9lbv7mP7FgSlZdr{Q0K2FMPJA^3MaUZ=cA! z{8e^f>7{4dw{jT^2hg6@FY^BV;epjV({F4$YTtFUzbW?@4-IGre!uL^8_!)dtZI+y zrM)lycVSZ9SC3w6sosjPLsooVn zcjdt0&UfO_75D8G+aI>p?XkVvm^<|Or+>eCL4V-uRwSb~uwk7m^M2TQ5dn5srQ;rk z6MY(%7u`S;@ky}t5X77pkyx$~$fz6C3w{eW)bkpK3cLlYFggf_WCaaENlO5fwX7`X zS{gZ;$MSL$%@GC?_<+o!5ueu|WFi(!Pp06x@pvf|@T%qToECV24?=@*RNa&zi|vlm z@d!nNdch~DQBdqDNLlbqh&3fQ#iN!pIT08>&N~G?R=Wy@D2IcwiCjoY&u+6|%J>W~ zastn&kANl#mNHVfi8YY8f#yxPo7KB~jHC$%1kV#5f;0ibG>KwWK!9DzdM9V4Q1Ot;NEtadrQ>mqA~E1&;dBZxPa5~P74au}VyTt_mbo-qgHuCBf)TM-?>Y`v+Zlr`D+YER$ zPslam;u=_gJ%GE%XuFQtg>PvEf-)J6ZaN2ddsq){Fi-?eior(@O0A&`SU^tP3e^W5+Xu(=#&ls!Nto?>2W)(1L zlYwy~Hn@4gy-+*88IEeEY&+lMZ*(rc#}Od)%plX!cSf!mxu&JSw7@gnH6z!w6qpux zrn~-cawSe2r+^=R1%=^Z>3rWG?tllaSoexz8*&SL%Kb}6-*tFTkV;%Z1W7)oTrnra zeLOVA$#zF!+~v5W)CJ^I^v~XbrY^fJznnUC;B8%U2a$ICA8q@a>pt66Rx$5rLVUvg z#}`Y<;>VZr&u@2~Y|l^OtVC0*{$b-0K{8@vQ|*X4lpHrjdRsrtQaKReL7; z&-4q0PY~`c?Xy-tH1tSMHxhU2-+si$41Z8JtM-$~^Jr`vzOjG*thp~Q=^E_pNHfph oGx+7IyPU+((^(6mclGx0h|y=tIOsJ;VQz@MaHZ{FL0!lH03rqyKL7v# literal 0 HcmV?d00001