From 7fbc95e54407857c8becaf72d0497c50ab85be7b Mon Sep 17 00:00:00 2001 From: reobf <2215595288@qq.com> Date: Mon, 26 Feb 2024 14:42:52 +0800 Subject: [PATCH] update --- .../BufferedDualInputHatch.java | 5 +-- .../gt/metatileentity/DualInputHatch.java | 41 +++++++++++++++---- .../proghatches/main/mixin/MixinPlugin.java | 2 +- .../mixins/MixinAwarenessForDualHatch.java | 3 ++ 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java b/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java index bc29ae0..c80d9f7 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/BufferedDualInputHatch.java @@ -1419,14 +1419,11 @@ public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlaye return super.onRightclick(aBaseMetaTileEntity, aPlayer); } -@Override -public void startRecipeProcessing() { -} @Override public CheckRecipeResult endRecipeProcessing(GT_MetaTileEntity_MultiBlockBase controller) { dirty=true; - return CheckRecipeResultRegistry.SUCCESSFUL; + return super.endRecipeProcessing(controller); } } diff --git a/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java b/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java index 780a780..14a27b6 100644 --- a/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java +++ b/src/main/java/reobf/proghatches/gt/metatileentity/DualInputHatch.java @@ -52,6 +52,9 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; +import gregtech.api.recipe.check.CheckRecipeResult; +import gregtech.api.recipe.check.CheckRecipeResultRegistry; import gregtech.api.render.TextureFactory; import gregtech.api.util.GT_TooltipDataCache; import gregtech.api.util.extensions.ArrayExt; @@ -62,7 +65,7 @@ import reobf.proghatches.main.registration.Registration; public class DualInputHatch extends GT_MetaTileEntity_Hatch_InputBus implements IConfigurationCircuitSupport, - IAddGregtechLogo, IAddUIWidgets, IDualInputHatch, IProgrammingCoverBlacklisted { + IAddGregtechLogo, IAddUIWidgets, IDualInputHatch, IProgrammingCoverBlacklisted, IRecipeProcessingAwareDualHatch { static java.text.DecimalFormat format = new java.text.DecimalFormat("#,###"); public boolean mMultiFluid; @@ -299,6 +302,9 @@ public void addUIWidgets(Builder builder, UIBuildContext buildContext) { * position=new Pos2d(position.getX(),position.getY()).add(0, 18); * } */ + + + } @Override @@ -560,14 +566,7 @@ public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (program) program(); - if (aBaseMetaTileEntity.isServerSide()) { - for (int i = 0; i < getMaxType(); i++) { - if (mStoredFluid[i].getFluid() != null && mStoredFluid[i].getFluidAmount() <= 0) { - mStoredFluid[i].setFluid(null); - markDirty(); - } - } - } + } @@ -804,6 +803,30 @@ public int fluidSlotsPerRow() { return 1; } + @Override + public void startRecipeProcessing() { + + + } +@Override +public void updateSlots() { + if (this.getBaseMetaTileEntity().isServerSide()) { + for (int i = 0; i < getMaxType(); i++) { + if (mStoredFluid[i].getFluid() != null && mStoredFluid[i].getFluidAmount() <= 0) { + mStoredFluid[i].setFluid(null); + + } + } + } + super.updateSlots(); +} + @Override + public CheckRecipeResult endRecipeProcessing(GT_MetaTileEntity_MultiBlockBase controller) { + this.markDirty(); + updateSlots(); + return CheckRecipeResultRegistry.SUCCESSFUL; + } + } diff --git a/src/main/java/reobf/proghatches/main/mixin/MixinPlugin.java b/src/main/java/reobf/proghatches/main/mixin/MixinPlugin.java index b5b4cda..b389b98 100644 --- a/src/main/java/reobf/proghatches/main/mixin/MixinPlugin.java +++ b/src/main/java/reobf/proghatches/main/mixin/MixinPlugin.java @@ -103,7 +103,7 @@ public List getMixins() { ArrayList ret = new ArrayList<>(); - + ret.add("MixinAwarenessForDualHatch"); if(!"true".equals(pp.get("noRemoveUnusedCacheInModularUIContainer"))) ret.add("MixinRemoveUnunsedItemStackCache"); diff --git a/src/main/java/reobf/proghatches/main/mixin/mixins/MixinAwarenessForDualHatch.java b/src/main/java/reobf/proghatches/main/mixin/mixins/MixinAwarenessForDualHatch.java index d95d1b1..9e2ec83 100644 --- a/src/main/java/reobf/proghatches/main/mixin/mixins/MixinAwarenessForDualHatch.java +++ b/src/main/java/reobf/proghatches/main/mixin/mixins/MixinAwarenessForDualHatch.java @@ -18,6 +18,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; @@ -38,6 +39,7 @@ public abstract class MixinAwarenessForDualHatch { @Inject( method = "startRecipeProcessing",at = { @At(value = "RETURN") }) public void a(CallbackInfo c){ for (IDualInputHatch hatch :(mDualInputHatches)) { + if(hatch==null||!((MetaTileEntity) hatch).isValid())continue; if (hatch instanceof IRecipeProcessingAwareDualHatch ) { ((IRecipeProcessingAwareDualHatch) hatch).startRecipeProcessing(); } @@ -55,6 +57,7 @@ public void b(CallbackInfo c){ }; for (IDualInputHatch hatch : (mDualInputHatches)) { + if(hatch==null||!((MetaTileEntity) hatch).isValid())continue; if (hatch instanceof IRecipeProcessingAwareDualHatch) { setResultIfFailure.accept(((IRecipeProcessingAwareDualHatch)hatch).endRecipeProcessing( (GT_MetaTileEntity_MultiBlockBase)(Object)this