From b8bd619bbfdecddccf8a1a3129a11e0fccca200b Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 14 Jul 2023 12:54:49 +0200 Subject: GPL Special Item access (#2134) * Added getters to allow a machine to set the special item for recipe checking --- .../GT_MetaTileEntity_MultiBlockBase.java | 29 +++++++++++++++------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 0d383bc768..36266d6329 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -692,14 +692,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity CheckRecipeResult result = CheckRecipeResultRegistry.NO_RECIPE; - processingLogic.clear(); - processingLogic.setMachine(this); - processingLogic.setRecipeMapSupplier(this::getRecipeMap); - processingLogic.setVoidProtection(protectsExcessItem(), protectsExcessFluid()); - processingLogic.setBatchSize(isBatchModeEnabled() ? getMaxBatchSize() : 1); - processingLogic.setRecipeLocking(this, isRecipeLockingEnabled()); - processingLogic.setInputFluids(getStoredFluids()); - setProcessingLogicPower(processingLogic); + setupProcessingLogic(processingLogic); + if (isInputSeparationEnabled()) { for (GT_MetaTileEntity_Hatch_InputBus bus : mInputBusses) { List inputItems = new ArrayList<>(); @@ -742,6 +736,17 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity return result; } + protected void setupProcessingLogic(ProcessingLogic logic) { + logic.clear(); + logic.setMachine(this); + logic.setRecipeMapSupplier(this::getRecipeMap); + logic.setVoidProtection(protectsExcessItem(), protectsExcessFluid()); + logic.setBatchSize(isBatchModeEnabled() ? getMaxBatchSize() : 1); + logic.setRecipeLocking(this, isRecipeLockingEnabled()); + logic.setInputFluids(getStoredFluids()); + setProcessingLogicPower(logic); + } + protected void setProcessingLogicPower(ProcessingLogic logic) { logic.setAvailableVoltage(GT_Utility.roundDownVoltage(getMaxInputVoltage())); logic.setAvailableAmperage(1); @@ -1998,6 +2003,10 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity @Override public void addGregTechLogo(ModularWindow.Builder builder) {} + protected boolean shouldDisplayCheckRecipeResult() { + return true; + } + protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) { screenElements.setSynced(false) .setSpace(0) @@ -2074,7 +2083,9 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity TextWidget.dynamicString(() -> checkRecipeResult.getDisplayString()) .setSynced(false) .setTextAlignment(Alignment.CenterLeft) - .setEnabled(widget -> GT_Utility.isStringValid(checkRecipeResult.getDisplayString()))) + .setEnabled( + widget -> GT_Utility.isStringValid(checkRecipeResult.getDisplayString()) + && shouldDisplayCheckRecipeResult())) .widget(new CheckRecipeResultSyncer(() -> checkRecipeResult, (result) -> checkRecipeResult = result)); screenElements.widget( -- cgit