From 7b60cc9420fe005387aa3a77799e23f8139bd1e2 Mon Sep 17 00:00:00 2001 From: isaisstillalive Date: Fri, 3 Jul 2020 01:44:31 +0900 Subject: [PATCH] Implement tryTakeItem in EnergyConsumer --- src/js/game/buildings/advanced_processor.js | 1 + src/js/game/components/energy_consumer.js | 15 +++++++++++++++ src/js/game/systems/item_ejector.js | 17 ----------------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/js/game/buildings/advanced_processor.js b/src/js/game/buildings/advanced_processor.js index 049883d1..a714d253 100644 --- a/src/js/game/buildings/advanced_processor.js +++ b/src/js/game/buildings/advanced_processor.js @@ -103,6 +103,7 @@ export class MetaAdvancedProcessorBuilding extends MetaBuilding { directions: [enumDirection.top], filter: enumItemType.positiveEnergy, layer: enumLayer.wires, + processor: "EnergyConsumer", }, ], }) diff --git a/src/js/game/components/energy_consumer.js b/src/js/game/components/energy_consumer.js index 5117cc01..1290ec0a 100644 --- a/src/js/game/components/energy_consumer.js +++ b/src/js/game/components/energy_consumer.js @@ -59,6 +59,21 @@ export class EnergyConsumerComponent extends Component { this.piledOutput = 0; } + /** + * + * @param {BaseItem} item + * @param {number} slot + */ + tryTakeItem(item, slot) { + if (this.tryAcceptItem(item, slot)) { + // All good + return true; + } + + // Energy consumer can have more components + return false; + } + /** * Tries to accept a given item * @param {BaseItem} item diff --git a/src/js/game/systems/item_ejector.js b/src/js/game/systems/item_ejector.js index 6a3e5958..5c21cb31 100644 --- a/src/js/game/systems/item_ejector.js +++ b/src/js/game/systems/item_ejector.js @@ -267,23 +267,6 @@ export class ItemEjectorSystem extends GameSystemWithFilter { } } - // Try figuring out how what to do with the item - // TODO: Kinda hacky. How to solve this properly? Don't want to go through inheritance hell. - // Also its just a few cases (hope it stays like this .. :x). - const slotIndex = slot.index; - - const itemLayer = enumItemTypeToLayer[item.getItemType()]; - - const energyConsumerComp = receiver.components.EnergyConsumer; - if (energyConsumerComp) { - if (energyConsumerComp.tryAcceptItem(item, slotIndex)) { - // All good - return true; - } - - // Energy consumer can have more components - } - return false; }