From 07c703f7d6fd4c863304672336ffda131f9162c2 Mon Sep 17 00:00:00 2001 From: Sense101 <67970865+Sense101@users.noreply.github.com> Date: Wed, 11 Aug 2021 14:29:47 +0100 Subject: [PATCH] added special logic for cutters so they remove overlays of empty outputs, and added clearing overlays on clear items --- src/js/game/components/item_ejector.js | 1 + src/js/game/systems/item_processor.js | 30 +++++++++++++++++--------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/js/game/components/item_ejector.js b/src/js/game/components/item_ejector.js index 4ba4d27b..bfc54cd8 100644 --- a/src/js/game/components/item_ejector.js +++ b/src/js/game/components/item_ejector.js @@ -52,6 +52,7 @@ export class ItemEjectorComponent extends Component { clear() { for (const slot of this.slots) { slot.item = null; + slot.lastItem = null; slot.progress = 0; } } diff --git a/src/js/game/systems/item_processor.js b/src/js/game/systems/item_processor.js index b57d735c..d41b7cc7 100644 --- a/src/js/game/systems/item_processor.js +++ b/src/js/game/systems/item_processor.js @@ -334,14 +334,19 @@ export class ItemProcessorSystem extends GameSystemWithFilter { const cutDefinitions = this.root.shapeDefinitionMgr.shapeActionCutHalf(inputDefinition); + const ejectorComp = payload.entity.components.ItemEjector; for (let i = 0; i < cutDefinitions.length; ++i) { const definition = cutDefinitions[i]; - if (!definition.isEntirelyEmpty()) { - payload.outItems.push({ - item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), - requiredSlot: i, - }); + + if (definition.isEntirelyEmpty()) { + ejectorComp.slots[i].lastItem = null; + continue; } + + payload.outItems.push({ + item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), + requiredSlot: i, + }); } } @@ -355,14 +360,19 @@ export class ItemProcessorSystem extends GameSystemWithFilter { const cutDefinitions = this.root.shapeDefinitionMgr.shapeActionCutQuad(inputDefinition); + const ejectorComp = payload.entity.components.ItemEjector; for (let i = 0; i < cutDefinitions.length; ++i) { const definition = cutDefinitions[i]; - if (!definition.isEntirelyEmpty()) { - payload.outItems.push({ - item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), - requiredSlot: i, - }); + + if (definition.isEntirelyEmpty()) { + ejectorComp.slots[i].lastItem = null; + continue; } + + payload.outItems.push({ + item: this.root.shapeDefinitionMgr.getShapeItemFromDefinition(definition), + requiredSlot: i, + }); } }