@woosh/meep-engine
Version:
Pure JavaScript game engine. Fully featured and production ready.
52 lines (40 loc) • 1.23 kB
JavaScript
import { assert } from "../../../../core/assert.js";
import { CellFilterLiteralFloat } from "../../../filtering/numeric/CellFilterLiteralFloat.js";
export class MarkerNodeActionWeightedElement {
/**
*
* @type {MarkerNodeAction}
*/
action = null;
/**
*
* @type {CellFilter}
*/
weight = null;
/**
*
* @param {GridData} grid
* @param {EntityComponentDataset} ecd
* @param {number} seed
*/
initialize(grid, ecd, seed) {
this.action.initialize(grid, ecd, seed);
if (!this.weight.initialized) {
this.weight.initialize(grid, seed);
}
}
/**
*
* @param {MarkerNodeAction} action
* @param {CellFilter} weight
* @returns {MarkerNodeActionWeightedElement}
*/
static from(action, weight = CellFilterLiteralFloat.ONE) {
assert.equal(action.isMarkerNodeAction, true, 'action.isMarkerNodeAction !== true');
assert.equal(weight.isCellFilter, true, 'weight.isCellFilter !== true');
const r = new MarkerNodeActionWeightedElement();
r.action = action;
r.weight = weight;
return r;
}
}