11package com .circulation .random_complement .mixin .ae2 ;
22
3+ import appeng .api .config .Actionable ;
34import appeng .api .config .Settings ;
45import appeng .api .config .Upgrades ;
56import appeng .api .config .YesNo ;
67import appeng .api .networking .crafting .ICraftingPatternDetails ;
8+ import appeng .api .networking .security .IActionSource ;
9+ import appeng .api .storage .IMEInventory ;
10+ import appeng .api .storage .data .IAEItemStack ;
711import appeng .helpers .DualityInterface ;
812import appeng .helpers .IInterfaceHost ;
13+ import appeng .helpers .MultiCraftingTracker ;
914import appeng .parts .automation .UpgradeInventory ;
1015import appeng .util .ConfigManager ;
1116import com .circulation .random_complement .client .RCSettings ;
@@ -49,6 +54,13 @@ public abstract class MixinDualityInterface implements RCIConfigurableObject, RC
4954 @ Shadow
5055 protected abstract void cancelCrafting ();
5156
57+ @ Shadow
58+ private IMEInventory <IAEItemStack > destination ;
59+
60+ @ Shadow
61+ @ Final
62+ private IActionSource mySource ;
63+
5264 @ Inject (method = "<init>" , at = @ At ("TAIL" ))
5365 public void onInit (CallbackInfo ci ) {
5466 this .randomComplement$rcSettings = new RCConfigManager (this );
@@ -103,4 +115,9 @@ public boolean intelligentBlocking(DualityInterface instance, Operation<Boolean>
103115 }
104116 return b ;
105117 }
118+
119+ @ WrapOperation (method = "usePlan" , at = @ At (value = "INVOKE" , target = "Lappeng/helpers/MultiCraftingTracker;isBusy(I)Z" ))
120+ private boolean usePlan (MultiCraftingTracker instance , int slot , Operation <Boolean > original , @ Local (name = "itemStack" ) IAEItemStack itemStack ) {
121+ return original .call (instance , slot ) && (itemStack .getStackSize () > 0 && destination .extractItems (itemStack , Actionable .SIMULATE , mySource ) == null );
122+ }
106123}
0 commit comments