Add storage shape ejector pin (#568)

pull/556/head
dengr1065 4 years ago committed by GitHub
parent 8c39d31c5b
commit 1dab9539bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -9,6 +9,7 @@ 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";
/** @enum {string} */
export const enumTrashVariants = { storage: "storage" };
@ -117,6 +118,9 @@ export class MetaTrashBuilding extends MetaBuilding {
if (entity.components.Storage) {
entity.removeComponent(StorageComponent);
}
if (entity.components.WiredPins) {
entity.removeComponent(WiredPinsComponent);
}
entity.components.ItemAcceptor.setSlots([
{
@ -140,6 +144,17 @@ export class MetaTrashBuilding extends MetaBuilding {
if (!entity.components.Storage) {
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.components.Storage.maximumStorage = trashSize;
entity.components.ItemAcceptor.setSlots([

@ -17,6 +17,7 @@ export class StorageSystem extends GameSystemWithFilter {
for (let i = 0; i < this.allEntities.length; ++i) {
const entity = this.allEntities[i];
const storageComp = entity.components.Storage;
const pinsComp = entity.components.WiredPins;
// Eject from storage
if (storageComp.storedItem && storageComp.storedCount > 0) {
@ -36,6 +37,8 @@ export class StorageSystem extends GameSystemWithFilter {
let targetAlpha = storageComp.storedCount > 0 ? 1 : 0;
storageComp.overlayOpacity = lerp(storageComp.overlayOpacity, targetAlpha, 0.05);
pinsComp.slots[0].value = storageComp.storedItem;
}
}

Loading…
Cancel
Save