@nxg-org/mineflayer-tracker
Version:
Provides functionality for more accurate entity and projectile tracking.
49 lines (48 loc) • 1.37 kB
JavaScript
;
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;