UNPKG

lr-core

Version:
114 lines (94 loc) 2.19 kB
'use strict'; 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;