import { globalConfig } from "../../core/config"; import { types } from "../../savegame/serialization"; import { Component } from "../component"; import { BaseItem } from "../base_item"; import { gItemRegistry } from "../../core/global_registries"; const chainBufferSize = 10; export class MinerComponent extends Component { static getId() { return "Miner"; } static getSchema() { return { lastMiningTime: types.ufloat, chainable: types.bool, itemChainBuffer: types.array(types.obj(gItemRegistry)), }; } /** */ constructor({ chainable = false }) { super(); this.lastMiningTime = 0; this.chainable = chainable; /** * Stores items from other miners which were chained to this * miner. * @type {Array} */ this.itemChainBuffer = []; } /** * * @param {BaseItem} item */ tryAcceptChainedItem(item) { if (this.itemChainBuffer.length > chainBufferSize) { // Well, this one is full return false; } this.itemChainBuffer.push(item); return true; } }