From 3305b62e005e63c82ed75d3fb162fd2250c3082a Mon Sep 17 00:00:00 2001 From: isaisstillalive Date: Fri, 3 Jul 2020 01:44:31 +0900 Subject: [PATCH] Implement tryTakeItem in Storage --- src/js/game/buildings/trash.js | 2 ++ src/js/game/components/storage.js | 14 ++++++++++++++ src/js/game/systems/item_ejector.js | 12 ------------ 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/js/game/buildings/trash.js b/src/js/game/buildings/trash.js index 8c9b3575..5056b2a9 100644 --- a/src/js/game/buildings/trash.js +++ b/src/js/game/buildings/trash.js @@ -147,10 +147,12 @@ export class MetaTrashBuilding extends MetaBuilding { { pos: new Vector(0, 1), directions: [enumDirection.bottom], + processor: "Storage", }, { pos: new Vector(1, 1), directions: [enumDirection.bottom], + processor: "Storage", }, ]); diff --git a/src/js/game/components/storage.js b/src/js/game/components/storage.js index e7b40a77..d67ce833 100644 --- a/src/js/game/components/storage.js +++ b/src/js/game/components/storage.js @@ -48,6 +48,20 @@ export class StorageComponent extends Component { this.overlayOpacity = 0; } + /** + * + * @param {BaseItem} item + * @param {number} slot + */ + tryTakeItem(item, slot) { + if (this.canAcceptItem(item)) { + this.takeItem(item); + return true; + } + + return false; + } + /** * Returns whether this storage can accept the item * @param {BaseItem} item diff --git a/src/js/game/systems/item_ejector.js b/src/js/game/systems/item_ejector.js index d19accdc..f9972434 100644 --- a/src/js/game/systems/item_ejector.js +++ b/src/js/game/systems/item_ejector.js @@ -311,18 +311,6 @@ export class ItemEjectorSystem extends GameSystemWithFilter { return false; } - const storageComp = receiver.components.Storage; - if (storageComp) { - // It's a storage - if (storageComp.canAcceptItem(item)) { - storageComp.takeItem(item); - return true; - } - - // Storage can't have anything else - return false; - } - return false; }