lr-core
Version:
Line Rider core library
114 lines (94 loc) • 2.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.LineEngine = exports.Line = exports.Grid = exports.Constraint = undefined;
var _abstractInterface = require('../abstract-interface.js');
class State extends _abstractInterface.Interface {
get id() {
return null;
}
get collidable() {
return Boolean;
}
get steppable() {
return Boolean;
}
step(stepOptions = Object) {
return State;
}
}
class Constraint extends _abstractInterface.Interface {
get iterating() {
return Boolean;
}
resolve(state = State) {
return (0, _abstractInterface.ArrayOf)(State);
}
}
exports.Constraint = Constraint;
class Cell extends _abstractInterface.Interface {}
class Grid extends _abstractInterface.Interface {
add(line = Line) {
return undefined;
}
remove(line = Line) {
return undefined;
}
getCellsNearEntity(entity = State) {
return (0, _abstractInterface.ArrayOf)(Cell);
}
getLinesNearEntity(entity = State) {
return (0, _abstractInterface.ArrayOf)(Line);
}
}
exports.Grid = Grid;
class Line extends _abstractInterface.Interface {
collide(entity = State) {
return (0, _abstractInterface.Optional)(State);
}
collidesWith(entity = State) {
return Boolean;
}
}
exports.Line = Line;
class LineEngine extends _abstractInterface.Interface {
get iterations() {
return Number;
}
get stepOptions() {
return Object;
}
makeGrid() {
return Grid;
}
getLastFrameIndex() {
return Number;
}
getLastFrame() {
return Object; // Frame
}
// step -> (resolve <-> collide) -> endResolve
getStateMapAtFrame(index = Number) {
return Map;
}
getUpdatesAtFrame(index = Number) {
return (0, _abstractInterface.ArrayOf)(Object); // Update
}
getLine(id = Number) {
return Line;
}
addLine(line = Line) {
return LineEngine;
}
removeLine(line = Line) {
return LineEngine;
}
setInitialStates(stateArray = (0, _abstractInterface.ArrayOf)(State)) {
return LineEngine;
}
setConstraints(constraints = (0, _abstractInterface.ArrayOf)(Constraint)) {
return LineEngine;
}
}
exports.LineEngine = LineEngine;