fix commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#modloaded techreborn
|
||||
#loader mixin
|
||||
|
||||
import native.net.minecraft.item.ItemStack;
|
||||
import native.techreborn.tiles.tier1.TileRollingMachine;
|
||||
|
||||
import mixin.CallbackInfoReturnable;
|
||||
|
||||
// Prevent inserting items into empty slots of a locked Rolling Machine, to avoid overflow into non-recipe slots
|
||||
#mixin {targets: "reborncore.common.tile.RebornMachineTile"}
|
||||
zenClass RollingMachinePreventLockedOverflowMixin {
|
||||
// SRG HEAD: TileEntity#isItemValidForSlot -> func_94041_b)
|
||||
#mixin Inject
|
||||
#{
|
||||
# method: "func_94041_b",
|
||||
# at: { value: "HEAD" },
|
||||
# cancellable: true
|
||||
#}
|
||||
function forbidEmptySlotInsertion(index as int, stack as ItemStack, cir as CallbackInfoReturnable) as void {
|
||||
// Injected into RebornMachineTile as isItemValidForSlot is inherited from there
|
||||
// Not overwritten, as the delegated logic is a bit heavy
|
||||
if (!(this instanceof TileRollingMachine)) return;
|
||||
|
||||
val self as TileRollingMachine = this as TileRollingMachine;
|
||||
if (!self.locked) return; // not locked -> leave behavior unchanged
|
||||
|
||||
// If slot is empty, disallow insertion while locked, as it's a non-recipe slot
|
||||
val slotStack as ItemStack = self.inventory.getStackInSlot(index);
|
||||
if (slotStack.isEmpty()) cir.setReturnValue(false);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user