From 41c6b1c59508c48f6f172601efbd4ea960260275 Mon Sep 17 00:00:00 2001 From: "Thomas (DJ1TJOO)" <44841260+DJ1TJOO@users.noreply.github.com> Date: Sun, 13 Feb 2022 21:05:58 +0100 Subject: [PATCH] Added mod processing requirements (#1371) * Added mod processing requirements * Added missing bind * Renamed to mods --- src/js/game/systems/item_processor.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/js/game/systems/item_processor.js b/src/js/game/systems/item_processor.js index 6e1032c9..e9e2d298 100644 --- a/src/js/game/systems/item_processor.js +++ b/src/js/game/systems/item_processor.js @@ -38,11 +38,25 @@ const MAX_QUEUED_CHARGES = 2; * }} ProcessorImplementationPayload */ +/** + * Type of a processor implementation + * @typedef {{ + * entity: Entity, + * item: BaseItem, + * slotIndex: number + * }} ProccessingRequirementsImplementationPayload + */ + /** * @type {Object void>} */ export const MOD_ITEM_PROCESSOR_HANDLERS = {}; +/** + * @type {Object boolean>} + */ +export const MODS_PROCESSING_REQUIREMENTS = {}; + export class ItemProcessorSystem extends GameSystemWithFilter { constructor(root) { super(root, [ItemProcessorComponent]); @@ -163,6 +177,14 @@ export class ItemProcessorSystem extends GameSystemWithFilter { const itemProcessorComp = entity.components.ItemProcessor; const pinsComp = entity.components.WiredPins; + if (MODS_PROCESSING_REQUIREMENTS[itemProcessorComp.processingRequirement]) { + return MODS_PROCESSING_REQUIREMENTS[itemProcessorComp.processingRequirement].bind(this)({ + entity, + item, + slotIndex, + }); + } + switch (itemProcessorComp.processingRequirement) { case enumItemProcessorRequirements.painterQuad: { if (slotIndex === 0) {