diff --git a/forge/src/main/java/com/bear369/logistorage/mixin/ae2/CraftingCpuLogicMixin.java b/forge/src/main/java/com/bear369/logistorage/mixin/ae2/CraftingCpuLogicMixin.java index ddf6a73..5de9ae8 100644 --- a/forge/src/main/java/com/bear369/logistorage/mixin/ae2/CraftingCpuLogicMixin.java +++ b/forge/src/main/java/com/bear369/logistorage/mixin/ae2/CraftingCpuLogicMixin.java @@ -106,6 +106,7 @@ private void onFinishJob(boolean success, CallbackInfo ci) { long targetAmount = getFinalJobOutput().amount(); peripheral.emitEventSignal( + true, success ? "crafting_process_complete" : "crafting_process_cancel", itemID, targetAmount, @@ -150,7 +151,7 @@ private boolean onPushPattern( } else { String itemID = getFinalJobOutput().what().getId().toString(); long targetAmount = getFinalJobOutput().amount(); - peripheral.emitEventSignal("crafting_process_start", itemID, targetAmount, triggeringSource); + peripheral.emitEventSignal(true, "crafting_process_start", itemID, targetAmount, triggeringSource); activeProvider.add(patternProvider); peripheral.beginPatternSend(details.getOutputs()); diff --git a/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/AbstractAttachedPeripherial.java b/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/AbstractAttachedPeripherial.java index a3ec17c..4d3973d 100644 --- a/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/AbstractAttachedPeripherial.java +++ b/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/AbstractAttachedPeripherial.java @@ -19,15 +19,21 @@ import dan200.computercraft.api.peripheral.IComputerAccess; import dan200.computercraft.api.peripheral.IPeripheral; +import java.util.Arrays; import java.util.HashSet; import java.util.Set; public abstract class AbstractAttachedPeripherial implements IPeripheral { private Set computers = new HashSet<>(); - public void emitEventSignal(String event, Object... objects) { + public void emitEventSignal(boolean isNameAttached, String event, Object... objects) { for (IComputerAccess computer : computers) { - computer.queueEvent(event, objects); + Object[] args = Arrays.copyOf(objects, objects.length); + if (isNameAttached) { + args = Arrays.copyOf(args, args.length + 1); + args[args.length - 1] = computer.getAttachmentName(); + } + computer.queueEvent(event, args); } } diff --git a/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/MEProcessInterfacePeripherialLogic.java b/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/MEProcessInterfacePeripherialLogic.java index c3f08ec..e41aeeb 100644 --- a/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/MEProcessInterfacePeripherialLogic.java +++ b/forge/src/main/java/com/bear369/logistorage/shared/computercraft/peripherial/MEProcessInterfacePeripherialLogic.java @@ -61,7 +61,7 @@ public void beginPatternSend(GenericStack[] outputs) { final GenericStackRecord record = new GenericStackRecord(stack); insertedList.add(record.toTable()); } - super.emitEventSignal("crafting_process_preinsert", insertedList); + super.emitEventSignal(true, "crafting_process_preinsert", insertedList); } @Override @@ -72,7 +72,7 @@ public void logPatternSend(Map insertedSlots) { final GenericStackRecord record = new GenericStackRecord(insertedSlots.get(slot)); insertedList.add(record.toTable(slot + 1)); // +1 for Lua-aligned indexing } - super.emitEventSignal("crafting_process_insert", insertedList); + super.emitEventSignal(true, "crafting_process_insert", insertedList); } @Override @@ -83,25 +83,25 @@ public void finalizePattenSend(GenericStack[] stacks) { final GenericStackRecord record = new GenericStackRecord(stack); insertedList.add(record.toTable()); } - super.emitEventSignal("crafting_process_postinsert", insertedList); + super.emitEventSignal(true, "crafting_process_postinsert", insertedList); } @Override public void onCraftingBegin(GenericStack stack, String triggeringSrc) { final GenericStackRecord record = new GenericStackRecord(stack); - super.emitEventSignal("crafting_start", record.name, record.amount, triggeringSrc); + super.emitEventSignal(true, "crafting_start", record.name, record.amount, triggeringSrc); } @Override public void onCraftingFinish(GenericStack stack, String triggeringSrc) { final GenericStackRecord record = new GenericStackRecord(stack); - super.emitEventSignal("crafting_complete", record.name, record.amount, triggeringSrc); + super.emitEventSignal(true, "crafting_complete", record.name, record.amount, triggeringSrc); } @Override public void onCraftingCancel(GenericStack stack, String triggeringSrc) { final GenericStackRecord record = new GenericStackRecord(stack); - super.emitEventSignal("crafting_cancel", record.name, record.amount, triggeringSrc); + super.emitEventSignal(true, "crafting_cancel", record.name, record.amount, triggeringSrc); } public IItemHandler getItemHandler() {