From 9ef0e77910d4eb21fbb52c592ec367c248d56a17 Mon Sep 17 00:00:00 2001 From: isaisstillalive Date: Fri, 3 Jul 2020 01:44:31 +0900 Subject: [PATCH] Implement tryTakeItem in Belt --- src/js/game/buildings/belt_base.js | 1 + src/js/game/components/belt.js | 16 ++++++++++++++++ src/js/game/systems/item_ejector.js | 11 ----------- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/js/game/buildings/belt_base.js b/src/js/game/buildings/belt_base.js index b8e92150..ba56c7f5 100644 --- a/src/js/game/buildings/belt_base.js +++ b/src/js/game/buildings/belt_base.js @@ -60,6 +60,7 @@ export class MetaBeltBaseBuilding extends MetaBuilding { pos: new Vector(0, 0), directions: [enumDirection.bottom], layer: this.getLayer(), + processor: "Belt", }, ], animated: false, diff --git a/src/js/game/components/belt.js b/src/js/game/components/belt.js index e9a0cd80..430e1de3 100644 --- a/src/js/game/components/belt.js +++ b/src/js/game/components/belt.js @@ -4,6 +4,7 @@ import { BeltPath } from "../belt_path"; import { Component } from "../component"; import { Entity } from "../entity"; import { enumLayer } from "../root"; +import { BaseItem } from "../base_item"; export const curvedBeltLength = /* Math.PI / 4 */ 0.78; @@ -118,4 +119,19 @@ export class BeltComponent extends Component { } } } + + /** + * + * @param {BaseItem} item + * @param {number} slot + */ + tryTakeItem(item, slot) { + const path = this.assignedPath; + assert(path, "belt has no path"); + if (path.tryAcceptItem(item)) { + return true; + } + // Belt can have nothing else + return false; + } } diff --git a/src/js/game/systems/item_ejector.js b/src/js/game/systems/item_ejector.js index a08bda35..6a3e5958 100644 --- a/src/js/game/systems/item_ejector.js +++ b/src/js/game/systems/item_ejector.js @@ -274,17 +274,6 @@ export class ItemEjectorSystem extends GameSystemWithFilter { const itemLayer = enumItemTypeToLayer[item.getItemType()]; - const beltComp = receiver.components.Belt; - if (beltComp) { - const path = beltComp.assignedPath; - assert(path, "belt has no path"); - if (path.tryAcceptItem(item)) { - return true; - } - // Belt can have nothing else - return false; - } - const energyConsumerComp = receiver.components.EnergyConsumer; if (energyConsumerComp) { if (energyConsumerComp.tryAcceptItem(item, slotIndex)) {