diff --git a/src/js/game/buildings/trash.js b/src/js/game/buildings/trash.js index dc0b55d0..dfd47dfe 100644 --- a/src/js/game/buildings/trash.js +++ b/src/js/game/buildings/trash.js @@ -1,15 +1,15 @@ +import { formatBigNumber } from "../../core/utils"; import { enumDirection, Vector } from "../../core/vector"; +import { T } from "../../translations"; import { ItemAcceptorComponent } from "../components/item_acceptor"; import { ItemEjectorComponent } from "../components/item_ejector"; import { enumItemProcessorTypes, ItemProcessorComponent } from "../components/item_processor"; -import { Entity } from "../entity"; -import { MetaBuilding, defaultBuildingVariant } from "../meta_building"; -import { enumHubGoalRewards } from "../tutorial_goals"; -import { GameRoot } from "../root"; import { StorageComponent } from "../components/storage"; -import { T } from "../../translations"; -import { formatBigNumber } from "../../core/utils"; -import { WiredPinsComponent, enumPinSlotType } from "../components/wired_pins"; +import { enumPinSlotType, WiredPinsComponent } from "../components/wired_pins"; +import { Entity } from "../entity"; +import { defaultBuildingVariant, MetaBuilding } from "../meta_building"; +import { GameRoot } from "../root"; +import { enumHubGoalRewards } from "../tutorial_goals"; /** @enum {string} */ export const enumTrashVariants = { storage: "storage" }; @@ -145,15 +145,22 @@ export class MetaTrashBuilding extends MetaBuilding { entity.addComponent(new StorageComponent({})); } if (!entity.components.WiredPins) { - entity.addComponent(new WiredPinsComponent({ - slots: [ - { - pos: new Vector(1, 1), - direction: enumDirection.right, - type: enumPinSlotType.logicalEjector - } - ] - })); + entity.addComponent( + new WiredPinsComponent({ + slots: [ + { + pos: new Vector(1, 1), + direction: enumDirection.right, + type: enumPinSlotType.logicalEjector, + }, + { + pos: new Vector(0, 1), + direction: enumDirection.left, + type: enumPinSlotType.logicalEjector, + }, + ], + }) + ); } entity.components.Storage.maximumStorage = trashSize; diff --git a/src/js/game/components/storage.js b/src/js/game/components/storage.js index a7fd365a..34e51f4b 100644 --- a/src/js/game/components/storage.js +++ b/src/js/game/components/storage.js @@ -2,6 +2,8 @@ import { types } from "../../savegame/serialization"; import { BaseItem, enumItemType } from "../base_item"; import { Component } from "../component"; import { typeItemSingleton } from "../item_resolver"; +import { ColorItem } from "../items/color_item"; +import { ShapeItem } from "../items/shape_item"; export class StorageComponent extends Component { static getId() { @@ -76,6 +78,14 @@ export class StorageComponent extends Component { return false; } + /** + * Returns whether the storage is full + * @returns {boolean} + */ + getIsFull() { + return this.storedCount >= this.maximumStorage; + } + /** * @param {BaseItem} item */ diff --git a/src/js/game/systems/storage.js b/src/js/game/systems/storage.js index 4ec2b8fe..51857348 100644 --- a/src/js/game/systems/storage.js +++ b/src/js/game/systems/storage.js @@ -4,7 +4,7 @@ import { Entity } from "../entity"; import { DrawParameters } from "../../core/draw_parameters"; import { formatBigNumber, lerp } from "../../core/utils"; import { Loader } from "../../core/loader"; -import { enumLayer } from "../root"; +import { BOOL_TRUE_SINGLETON, BOOL_FALSE_SINGLETON } from "../items/boolean_item"; export class StorageSystem extends GameSystemWithFilter { constructor(root) { @@ -39,6 +39,7 @@ export class StorageSystem extends GameSystemWithFilter { storageComp.overlayOpacity = lerp(storageComp.overlayOpacity, targetAlpha, 0.05); pinsComp.slots[0].value = storageComp.storedItem; + pinsComp.slots[1].value = storageComp.getIsFull() ? BOOL_TRUE_SINGLETON : BOOL_FALSE_SINGLETON; } }