UNPKG

@nxg-org/mineflayer-tracker

Version:

Provides functionality for more accurate entity and projectile tracking.

49 lines (48 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StateStorage = void 0; const mineflayer_physics_util_1 = require("@nxg-org/mineflayer-physics-util"); class StateStorage { constructor() { this._internal = {}; } get length() { return Object.keys(this._internal).length; } get latestTick() { return Number(Object.keys(this._internal).sort((a, b) => Number(b) - Number(a))[0]); } get oldestTick() { return Number(Object.keys(this._internal).sort((a, b) => Number(a) - Number(b))[0]); } get(tick) { return this._internal[tick]; } getOldest() { return this._internal[this.oldestTick]; } getLatest() { return this._internal[this.latestTick]; } getPrevious() { } push(tick, entity, ctx) { this._internal[tick] = mineflayer_physics_util_1.EntityState.CREATE_FROM_ENTITY(ctx, entity); return this; } pushRaw(tick, entityState) { this._internal[tick] = entityState; return this; } //I dislike this, but what can you do. removeOldest() { delete this._internal[this.oldestTick]; return this; } //Same as above. removeNewest() { delete this._internal[this.latestTick]; return this; } } exports.StateStorage = StateStorage;