@awesome-ecs/abstract 0.15.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/index.cjs +35 -0
- package/dist/components/index.cjs.map +1 -0
- package/dist/components/index.d.cts +2 -0
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.js +7 -17
- package/dist/components/index.js.map +1 -1
- package/dist/entities/index.cjs +36 -0
- package/dist/entities/index.cjs.map +1 -0
- package/dist/entities/index.d.cts +17 -0
- package/dist/entities/index.d.ts +17 -7
- package/dist/entities/index.js +8 -22
- package/dist/entities/index.js.map +1 -1
- package/dist/entity-repository-Bu6rH-m5.d.ts +119 -0
- package/dist/entity-repository-awW_H993.d.cts +119 -0
- package/dist/factories/index.cjs +18 -0
- package/dist/factories/index.cjs.map +1 -0
- package/dist/factories/index.d.cts +27 -0
- package/dist/factories/index.d.ts +27 -2
- package/dist/factories/index.js +0 -18
- package/dist/factories/index.js.map +1 -1
- package/dist/index-BPDsRt_F.d.ts +117 -0
- package/dist/index-DK2CXVZ8.d.cts +117 -0
- package/dist/{utils/performance-timer.d.ts → performance-timer-XvdCbcAE.d.cts} +5 -3
- package/dist/performance-timer-XvdCbcAE.d.ts +13 -0
- package/dist/pipeline-BowCAITe.d.cts +83 -0
- package/dist/pipeline-D43CXxWG.d.ts +83 -0
- package/dist/pipelines/index.cjs +38 -0
- package/dist/pipelines/index.cjs.map +1 -0
- package/dist/pipelines/index.d.cts +44 -0
- package/dist/pipelines/index.d.ts +44 -4
- package/dist/pipelines/index.js +10 -19
- package/dist/pipelines/index.js.map +1 -1
- package/dist/systems/index.cjs +38 -0
- package/dist/systems/index.cjs.map +1 -0
- package/dist/systems/index.d.cts +55 -0
- package/dist/systems/index.d.ts +55 -13
- package/dist/systems/index.js +10 -28
- package/dist/systems/index.js.map +1 -1
- package/dist/systems-runtime-context-Cq4vxbHX.d.cts +163 -0
- package/dist/systems-runtime-context-DjppCqs4.d.ts +163 -0
- package/dist/types-BNwBqRWY.d.cts +22 -0
- package/dist/types-BNwBqRWY.d.ts +22 -0
- package/dist/utils/index.cjs +38 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +32 -0
- package/dist/utils/index.d.ts +32 -4
- package/dist/utils/index.js +10 -19
- package/dist/utils/index.js.map +1 -1
- package/package.json +61 -23
- package/dist/components/component.d.ts +0 -36
- package/dist/components/component.js +0 -3
- package/dist/components/component.js.map +0 -1
- package/dist/components/identity-component.d.ts +0 -24
- package/dist/components/identity-component.js +0 -8
- package/dist/components/identity-component.js.map +0 -1
- package/dist/entities/entity-events.d.ts +0 -52
- package/dist/entities/entity-events.js +0 -3
- package/dist/entities/entity-events.js.map +0 -1
- package/dist/entities/entity-proxies.d.ts +0 -25
- package/dist/entities/entity-proxies.js +0 -3
- package/dist/entities/entity-proxies.js.map +0 -1
- package/dist/entities/entity-queue.d.ts +0 -31
- package/dist/entities/entity-queue.js +0 -12
- package/dist/entities/entity-queue.js.map +0 -1
- package/dist/entities/entity-repository.d.ts +0 -16
- package/dist/entities/entity-repository.js +0 -3
- package/dist/entities/entity-repository.js.map +0 -1
- package/dist/entities/entity-scheduler.d.ts +0 -11
- package/dist/entities/entity-scheduler.js +0 -3
- package/dist/entities/entity-scheduler.js.map +0 -1
- package/dist/entities/entity-snapshot.d.ts +0 -24
- package/dist/entities/entity-snapshot.js +0 -3
- package/dist/entities/entity-snapshot.js.map +0 -1
- package/dist/entities/entity.d.ts +0 -33
- package/dist/entities/entity.js +0 -3
- package/dist/entities/entity.js.map +0 -1
- package/dist/factories/context-factory.d.ts +0 -9
- package/dist/factories/context-factory.js +0 -3
- package/dist/factories/context-factory.js.map +0 -1
- package/dist/factories/pipeline-factory.d.ts +0 -11
- package/dist/factories/pipeline-factory.js +0 -3
- package/dist/factories/pipeline-factory.js.map +0 -1
- package/dist/pipelines/middleware-result.d.ts +0 -5
- package/dist/pipelines/middleware-result.js +0 -3
- package/dist/pipelines/middleware-result.js.map +0 -1
- package/dist/pipelines/middleware-stop.d.ts +0 -5
- package/dist/pipelines/middleware-stop.js +0 -3
- package/dist/pipelines/middleware-stop.js.map +0 -1
- package/dist/pipelines/middleware.d.ts +0 -25
- package/dist/pipelines/middleware.js +0 -3
- package/dist/pipelines/middleware.js.map +0 -1
- package/dist/pipelines/pipeline.d.ts +0 -21
- package/dist/pipelines/pipeline.js +0 -3
- package/dist/pipelines/pipeline.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -3
- package/dist/runtime/index.js +0 -20
- package/dist/runtime/index.js.map +0 -1
- package/dist/runtime/runtime-pipeline.d.ts +0 -11
- package/dist/runtime/runtime-pipeline.js +0 -3
- package/dist/runtime/runtime-pipeline.js.map +0 -1
- package/dist/runtime/runtime-result.d.ts +0 -20
- package/dist/runtime/runtime-result.js +0 -3
- package/dist/runtime/runtime-result.js.map +0 -1
- package/dist/runtime/runtime-status.d.ts +0 -7
- package/dist/runtime/runtime-status.js +0 -12
- package/dist/runtime/runtime-status.js.map +0 -1
- package/dist/systems/context/system-context-entity.d.ts +0 -8
- package/dist/systems/context/system-context-entity.js +0 -3
- package/dist/systems/context/system-context-entity.js.map +0 -1
- package/dist/systems/context/system-context-events.d.ts +0 -65
- package/dist/systems/context/system-context-events.js +0 -3
- package/dist/systems/context/system-context-events.js.map +0 -1
- package/dist/systems/context/system-context-proxies.d.ts +0 -12
- package/dist/systems/context/system-context-proxies.js +0 -3
- package/dist/systems/context/system-context-proxies.js.map +0 -1
- package/dist/systems/context/system-context-repository.d.ts +0 -15
- package/dist/systems/context/system-context-repository.js +0 -3
- package/dist/systems/context/system-context-repository.js.map +0 -1
- package/dist/systems/context/system-context-scheduler.d.ts +0 -9
- package/dist/systems/context/system-context-scheduler.js +0 -3
- package/dist/systems/context/system-context-scheduler.js.map +0 -1
- package/dist/systems/context/system-context-snapshot.d.ts +0 -14
- package/dist/systems/context/system-context-snapshot.js +0 -3
- package/dist/systems/context/system-context-snapshot.js.map +0 -1
- package/dist/systems/runtime/systems-runtime-context.d.ts +0 -20
- package/dist/systems/runtime/systems-runtime-context.js +0 -3
- package/dist/systems/runtime/systems-runtime-context.js.map +0 -1
- package/dist/systems/runtime/systems-runtime-middleware.d.ts +0 -8
- package/dist/systems/runtime/systems-runtime-middleware.js +0 -3
- package/dist/systems/runtime/systems-runtime-middleware.js.map +0 -1
- package/dist/systems/system-context.d.ts +0 -26
- package/dist/systems/system-context.js +0 -3
- package/dist/systems/system-context.js.map +0 -1
- package/dist/systems/system-middleware.d.ts +0 -8
- package/dist/systems/system-middleware.js +0 -3
- package/dist/systems/system-middleware.js.map +0 -1
- package/dist/systems/system-type.d.ts +0 -10
- package/dist/systems/system-type.js +0 -15
- package/dist/systems/system-type.js.map +0 -1
- package/dist/systems/systems-module.d.ts +0 -22
- package/dist/systems/systems-module.js +0 -3
- package/dist/systems/systems-module.js.map +0 -1
- package/dist/systems/systems-runtime.d.ts +0 -16
- package/dist/systems/systems-runtime.js +0 -3
- package/dist/systems/systems-runtime.js.map +0 -1
- package/dist/utils/json-serializer.d.ts +0 -7
- package/dist/utils/json-serializer.js +0 -4
- package/dist/utils/json-serializer.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -19
- package/dist/utils/logger.js +0 -11
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/performance-timer.js +0 -3
- package/dist/utils/performance-timer.js.map +0 -1
- package/dist/utils/types.d.ts +0 -21
- package/dist/utils/types.js +0 -3
- package/dist/utils/types.js.map +0 -1
- package/runtime.d.ts +0 -1
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { IRuntimeResult } from "../runtime/runtime-result";
|
|
2
|
-
import { IMiddleware } from "./middleware";
|
|
3
|
-
import { MiddlewareResult } from "./middleware-result";
|
|
4
|
-
/**
|
|
5
|
-
* A middleware container and dispatcher.
|
|
6
|
-
*/
|
|
7
|
-
export interface IPipeline<TContext, TMiddlewareResult = MiddlewareResult> {
|
|
8
|
-
readonly name?: string;
|
|
9
|
-
/**
|
|
10
|
-
* Register middlewares for this pipeline, in order.
|
|
11
|
-
*/
|
|
12
|
-
use(...middleware: IMiddleware<TContext, TMiddlewareResult>[]): void;
|
|
13
|
-
/**
|
|
14
|
-
* Execute the chain of middlewares, in the order they were added on a given Context.
|
|
15
|
-
*/
|
|
16
|
-
dispatch(context: TContext): IRuntimeResult<TMiddlewareResult>;
|
|
17
|
-
/**
|
|
18
|
-
* Runs the Cleanup function on all middlewares.
|
|
19
|
-
*/
|
|
20
|
-
cleanup(context: TContext): IRuntimeResult<TMiddlewareResult>;
|
|
21
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/pipelines/pipeline.ts"],"names":[],"mappings":""}
|
package/dist/runtime/index.d.ts
DELETED
package/dist/runtime/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./runtime-pipeline"), exports);
|
|
18
|
-
__exportStar(require("./runtime-result"), exports);
|
|
19
|
-
__exportStar(require("./runtime-status"), exports);
|
|
20
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,mDAAiC;AACjC,mDAAiC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { IEntity } from "../entities/entity";
|
|
2
|
-
import { ISystemsRuntimeContext } from "../systems/runtime/systems-runtime-context";
|
|
3
|
-
import { IRuntimeResult } from "./runtime-result";
|
|
4
|
-
/**
|
|
5
|
-
* The RuntimePipeline is the main way of orchestrating the steps taken on a System Tick.
|
|
6
|
-
* It should provide a way to make the runtime SYNC or ASYNC by setting the PipelineType flag.
|
|
7
|
-
*/
|
|
8
|
-
export interface IRuntimePipeline<TEntity extends IEntity> {
|
|
9
|
-
cleanup(context: ISystemsRuntimeContext<TEntity>): IRuntimeResult;
|
|
10
|
-
dispatch(context: ISystemsRuntimeContext<TEntity>): IRuntimeResult;
|
|
11
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-pipeline.js","sourceRoot":"","sources":["../../src/runtime/runtime-pipeline.ts"],"names":[],"mappings":""}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { MiddlewareResult } from "../pipelines/middleware-result";
|
|
2
|
-
import { RuntimeStatus } from "./runtime-status";
|
|
3
|
-
import { PerformanceTimeEntry } from "../utils/performance-timer";
|
|
4
|
-
/**
|
|
5
|
-
* The IRuntimeResult contains the RuntimeStatus of the completed runtime operation.
|
|
6
|
-
* Can provide Performance metrics collected from inner runtime calls.
|
|
7
|
-
*/
|
|
8
|
-
export interface IRuntimeResult<TMiddlewareResult = MiddlewareResult> {
|
|
9
|
-
readonly status: RuntimeStatus;
|
|
10
|
-
readonly performance?: IRuntimeResultPerformance<TMiddlewareResult>[];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* The IRuntimeResultPerformance contains the PerformanceTimeEntry for the runtime operation.
|
|
14
|
-
* Can also contain a nested structure of Performance metrics that contain the metrics captured from
|
|
15
|
-
* inner runtime calls.
|
|
16
|
-
*/
|
|
17
|
-
export interface IRuntimeResultPerformance<TResult = MiddlewareResult> {
|
|
18
|
-
performance: PerformanceTimeEntry;
|
|
19
|
-
result?: TResult;
|
|
20
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-result.js","sourceRoot":"","sources":["../../src/runtime/runtime-result.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RuntimeStatus = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* The RuntimeStatus tells whether the Runtime components have ran to completion or not.
|
|
6
|
-
*/
|
|
7
|
-
var RuntimeStatus;
|
|
8
|
-
(function (RuntimeStatus) {
|
|
9
|
-
RuntimeStatus["completed"] = "completed";
|
|
10
|
-
RuntimeStatus["halted"] = "halted";
|
|
11
|
-
})(RuntimeStatus || (exports.RuntimeStatus = RuntimeStatus = {}));
|
|
12
|
-
//# sourceMappingURL=runtime-status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-status.js","sourceRoot":"","sources":["../../src/runtime/runtime-status.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,wCAAuB,CAAA;IACvB,kCAAiB,CAAA;AACnB,CAAC,EAHW,aAAa,6BAAb,aAAa,QAGxB"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IEntity } from "../../entities/entity";
|
|
2
|
-
import { IEntityUpdate } from "../../entities/entity-queue";
|
|
3
|
-
export interface ISystemContextEntity {
|
|
4
|
-
readonly entity: IEntity;
|
|
5
|
-
readonly update: IEntityUpdate;
|
|
6
|
-
setEntity(entity: IEntity): void;
|
|
7
|
-
setUpdate(update: IEntityUpdate): void;
|
|
8
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-context-entity.js","sourceRoot":"","sources":["../../../src/systems/context/system-context-entity.ts"],"names":[],"mappings":""}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { EntityEventUid, IEntityEvent, IEventData } from "../../entities/entity-events";
|
|
2
|
-
import { IEntityProxy } from "../../entities/entity-proxies";
|
|
3
|
-
/**
|
|
4
|
-
* The ISystemContextEvents is the access point for Event related APIs.
|
|
5
|
-
* The access is made in a SystemMiddleware through the provided ISystemPipelineContext.
|
|
6
|
-
*/
|
|
7
|
-
export interface ISystemContextEvents {
|
|
8
|
-
/**
|
|
9
|
-
* Dispatches and schedules the Event to it's Subscribers or provided Entity Targets.
|
|
10
|
-
* @param data The EventData to dispatch.
|
|
11
|
-
* @param targets (optional) The Entities to send this event to. Providing this parameter will not broadcast this event.
|
|
12
|
-
*/
|
|
13
|
-
dispatchEvent<TEventData extends IEventData>(data: TEventData, ...targets: IEntityProxy[]): void;
|
|
14
|
-
/**
|
|
15
|
-
* Dispatches and schedules the Events to their Subscribers or provided Entity Targets.
|
|
16
|
-
* @param data The EventData Array to dispatch.
|
|
17
|
-
* @param targets (optional) The Entities to send this event to. Providing this parameter will not broadcast this event.
|
|
18
|
-
*/
|
|
19
|
-
dispatchEvents<TEventData extends IEventData>(data: TEventData[], ...targets: IEntityProxy[]): void;
|
|
20
|
-
/**
|
|
21
|
-
* Retrieves the Event with the given UID if it has been previously set on the current Context.
|
|
22
|
-
* @param uid The Event UID to retrieve.
|
|
23
|
-
*/
|
|
24
|
-
getEvent<TEventData extends IEventData>(uid: EntityEventUid): IEntityEvent<TEventData>;
|
|
25
|
-
/**
|
|
26
|
-
* Retrieves all the Events currently set on the Context.
|
|
27
|
-
*/
|
|
28
|
-
listEvents<TEventData extends IEventData>(): IEntityEvent<TEventData>[];
|
|
29
|
-
/**
|
|
30
|
-
* Returns whether the Event with the given UID has previously been set on the current Context.
|
|
31
|
-
* @param uid The Event UID to check for existence.
|
|
32
|
-
*/
|
|
33
|
-
hasEvent(uid?: EntityEventUid): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Subscribes to Events with the given UID. When the matching Event is dispatched,
|
|
36
|
-
* the Entity update loop will set this Event on the Pipeline Context.
|
|
37
|
-
* @param uid The Event UID to subscribe to.
|
|
38
|
-
* @param filter (optional) Provides a callback function that will be executed on all matching Events.
|
|
39
|
-
* Can be used to filter what Event to schedule through to the current Entity update.
|
|
40
|
-
*/
|
|
41
|
-
subscribeTo<TEventData extends IEventData>(uid: EntityEventUid, filter?: (event: IEntityEvent<TEventData>) => boolean): void;
|
|
42
|
-
/**
|
|
43
|
-
* Stops subscribing to Events with the given UID. The Entity will not receive any future Events with this UID.
|
|
44
|
-
* @param uid The Event UID to stop listening to.
|
|
45
|
-
*/
|
|
46
|
-
unsubscribeFrom(uid: EntityEventUid): void;
|
|
47
|
-
/**
|
|
48
|
-
* Adds the given Events into the Context instance.
|
|
49
|
-
* @param events The Event instances to be set on the Context.
|
|
50
|
-
*/
|
|
51
|
-
setContextEvents(events: IEntityEvent<IEventData>[]): void;
|
|
52
|
-
/**
|
|
53
|
-
* Adds the given Event into the Context instance.
|
|
54
|
-
* @param event The Event instance to be set on the Context.
|
|
55
|
-
*/
|
|
56
|
-
setContextEvent(event: IEntityEvent<IEventData>): void;
|
|
57
|
-
/**
|
|
58
|
-
* Removes all the Events currently set on the Context instance.
|
|
59
|
-
*/
|
|
60
|
-
clearContextEvents(): void;
|
|
61
|
-
/**
|
|
62
|
-
* Removes all the Event Subscriptions for the current Entity.
|
|
63
|
-
*/
|
|
64
|
-
clearSubscriptions(): void;
|
|
65
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-context-events.js","sourceRoot":"","sources":["../../../src/systems/context/system-context-events.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { EntityTypeUid } from "../../entities/entity";
|
|
2
|
-
import { IEntityProxy } from "../../entities/entity-proxies";
|
|
3
|
-
/**
|
|
4
|
-
* The ISystemContextProxies is the access point for EntityProxy related APIs.
|
|
5
|
-
* The access is made in a SystemMiddleware through the provided ISystemPipelineContext.
|
|
6
|
-
*/
|
|
7
|
-
export interface ISystemContextProxies {
|
|
8
|
-
registerProxy(proxy: IEntityProxy, cleanup?: boolean): void;
|
|
9
|
-
registerProxies(proxies: IEntityProxy[], cleanup?: boolean): void;
|
|
10
|
-
removeProxy(proxy: IEntityProxy): void;
|
|
11
|
-
removeProxies(proxyEntityType?: EntityTypeUid): void;
|
|
12
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-context-proxies.js","sourceRoot":"","sources":["../../../src/systems/context/system-context-proxies.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { EntityTypeUid, IEntityModel, IEntity } from "../../entities/entity";
|
|
2
|
-
import { EntityProxy, IEntityProxy } from "../../entities/entity-proxies";
|
|
3
|
-
import { IEntitySnapshot } from "../../entities/entity-snapshot";
|
|
4
|
-
import { Immutable } from "../../utils/types";
|
|
5
|
-
/**
|
|
6
|
-
* The `ISystemContextRepository` is the access point for the `IEntityRepository` related APIs.
|
|
7
|
-
*
|
|
8
|
-
* The access is made in an `ISystemMiddleware` through the provided `ISystemPipelineContext`.
|
|
9
|
-
*/
|
|
10
|
-
export interface ISystemContextRepository {
|
|
11
|
-
addEntity(entityType: EntityTypeUid, model: IEntityModel, snapshot?: IEntitySnapshot): void;
|
|
12
|
-
getEntity<TEntity extends IEntity>(proxy: EntityProxy<TEntity>): Immutable<TEntity>;
|
|
13
|
-
updateEntity(target?: IEntityProxy): void;
|
|
14
|
-
removeEntity(target: IEntityProxy): void;
|
|
15
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-context-repository.js","sourceRoot":"","sources":["../../../src/systems/context/system-context-repository.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { IEntityProxy } from "../../entities/entity-proxies";
|
|
2
|
-
/**
|
|
3
|
-
* The ISystemContextRepository is the access point for Scheduler related APIs.
|
|
4
|
-
* The access is made in a SystemMiddleware through the provided ISystemPipelineContext.
|
|
5
|
-
*/
|
|
6
|
-
export interface ISystemContextScheduler {
|
|
7
|
-
clearUpdateOnInterval(target?: IEntityProxy): void;
|
|
8
|
-
scheduleUpdateOnInterval(target?: IEntityProxy, intervalMs?: number): void;
|
|
9
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-context-scheduler.js","sourceRoot":"","sources":["../../../src/systems/context/system-context-scheduler.ts"],"names":[],"mappings":""}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { IEntity } from "../../entities/entity";
|
|
2
|
-
import { IEntityProxy } from "../../entities/entity-proxies";
|
|
3
|
-
import { IEntitySnapshot } from "../../entities/entity-snapshot";
|
|
4
|
-
import { IJsonSerializer } from "../../utils/json-serializer";
|
|
5
|
-
/**
|
|
6
|
-
* The ISystemContextSnapshot is the access point for Snapshot related APIs.
|
|
7
|
-
* The access is made in a SystemMiddleware through the provided ISystemPipelineContext.
|
|
8
|
-
*/
|
|
9
|
-
export interface ISystemContextSnapshot {
|
|
10
|
-
readonly serializer: IJsonSerializer;
|
|
11
|
-
applyToEntity(snapshot: IEntitySnapshot): void;
|
|
12
|
-
createFromEntity(entity?: IEntity): IEntitySnapshot;
|
|
13
|
-
dispatchToUpdate(snapshot: IEntitySnapshot, proxy?: IEntityProxy): void;
|
|
14
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-context-snapshot.js","sourceRoot":"","sources":["../../../src/systems/context/system-context-snapshot.ts"],"names":[],"mappings":""}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { IEntity, IEntityModel } from "../../entities/entity";
|
|
2
|
-
import { IEntityUpdate } from "../../entities/entity-queue";
|
|
3
|
-
import { IEntityRepository } from "../../entities/entity-repository";
|
|
4
|
-
import { IPipeline } from "../../pipelines/pipeline";
|
|
5
|
-
import { ISystemContextEntity } from "../context/system-context-entity";
|
|
6
|
-
import { ISystemContext } from "../system-context";
|
|
7
|
-
import { SystemType } from "../system-type";
|
|
8
|
-
/**
|
|
9
|
-
* The ISystemsRuntimeContext is the Context passed by a SystemsRuntimePipeline.
|
|
10
|
-
* It helps orchestrate the execution of SystemPipelines registered in the SystemsModule.
|
|
11
|
-
*/
|
|
12
|
-
export interface ISystemsRuntimeContext<TEntity extends IEntity> {
|
|
13
|
-
readonly initEntity: (model: IEntityModel) => IEntity;
|
|
14
|
-
readonly entityUpdate: IEntityUpdate;
|
|
15
|
-
readonly entity: ISystemContextEntity;
|
|
16
|
-
readonly entityRepository: IEntityRepository;
|
|
17
|
-
readonly allowedSteps: Map<SystemType, boolean>;
|
|
18
|
-
readonly systemPipelines: ReadonlyMap<SystemType, IPipeline<ISystemContext<TEntity>>>;
|
|
19
|
-
readonly systemContext: ISystemContext<TEntity>;
|
|
20
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systems-runtime-context.js","sourceRoot":"","sources":["../../../src/systems/runtime/systems-runtime-context.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IEntity } from "../../entities/entity";
|
|
2
|
-
import { IMiddleware } from "../../pipelines/middleware";
|
|
3
|
-
import { ISystemsRuntimeContext } from "./systems-runtime-context";
|
|
4
|
-
/**
|
|
5
|
-
* The ISystemsRuntimeMiddleware represents the building blocks of executing SystemsModule registered Pipelines.
|
|
6
|
-
* It receives the current State in the Context, and can decide which SystemPipelines to execute.
|
|
7
|
-
*/
|
|
8
|
-
export type ISystemsRuntimeMiddleware<TEntity extends IEntity> = IMiddleware<ISystemsRuntimeContext<TEntity>>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systems-runtime-middleware.js","sourceRoot":"","sources":["../../../src/systems/runtime/systems-runtime-middleware.ts"],"names":[],"mappings":""}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { IEntity } from "../entities/entity";
|
|
2
|
-
import { IEntityUpdate } from "../entities/entity-queue";
|
|
3
|
-
import { ILogger } from "../utils/logger";
|
|
4
|
-
import { Immutable } from "../utils/types";
|
|
5
|
-
import { ISystemContextEvents } from "./context/system-context-events";
|
|
6
|
-
import { ISystemContextProxies } from "./context/system-context-proxies";
|
|
7
|
-
import { ISystemContextRepository } from "./context/system-context-repository";
|
|
8
|
-
import { ISystemContextScheduler } from "./context/system-context-scheduler";
|
|
9
|
-
import { ISystemContextSnapshot } from "./context/system-context-snapshot";
|
|
10
|
-
/**
|
|
11
|
-
* The ISystemContext is the Context passed to a SystemMiddleware as part of the Pipeline Dispatch.
|
|
12
|
-
* It's an abstraction layer so that the Middleware code won't have explicit dependencies on other parts of the ECS.
|
|
13
|
-
*
|
|
14
|
-
* Any State changes done by the SystemMiddleware are executed using the APIs provided by the ISystemContext.
|
|
15
|
-
*/
|
|
16
|
-
export interface ISystemContext<TEntity extends IEntity> {
|
|
17
|
-
readonly deltaTimeMs: Immutable<number>;
|
|
18
|
-
readonly entity: Immutable<TEntity>;
|
|
19
|
-
readonly update: Immutable<IEntityUpdate>;
|
|
20
|
-
readonly events: Immutable<ISystemContextEvents>;
|
|
21
|
-
readonly proxies: Immutable<ISystemContextProxies>;
|
|
22
|
-
readonly repository: Immutable<ISystemContextRepository>;
|
|
23
|
-
readonly scheduler: Immutable<ISystemContextScheduler>;
|
|
24
|
-
readonly snapshot: Immutable<ISystemContextSnapshot>;
|
|
25
|
-
readonly logger: Immutable<ILogger>;
|
|
26
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-context.js","sourceRoot":"","sources":["../../src/systems/system-context.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IEntity } from "../entities/entity";
|
|
2
|
-
import { IMiddleware } from "../pipelines/middleware";
|
|
3
|
-
import { ISystemContext } from "./system-context";
|
|
4
|
-
/**
|
|
5
|
-
* The SystemMiddleware is the basic System implementation that can be registered as a Middleware in a SystemPipeline.
|
|
6
|
-
* It provides a SystemPipelineContext to it's exposed methods.
|
|
7
|
-
*/
|
|
8
|
-
export type ISystemMiddleware<TEntity extends IEntity> = IMiddleware<ISystemContext<TEntity>>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-middleware.js","sourceRoot":"","sources":["../../src/systems/system-middleware.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The built-in ECS pipeline types. They can be extended to introduce more types, and the System Runtime Pipeline should
|
|
3
|
-
* add Middleware to handle the newly added types.
|
|
4
|
-
*/
|
|
5
|
-
export declare enum SystemType {
|
|
6
|
-
initialize = "initialize",
|
|
7
|
-
update = "update",
|
|
8
|
-
render = "render",
|
|
9
|
-
sync = "sync"
|
|
10
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SystemType = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* The built-in ECS pipeline types. They can be extended to introduce more types, and the System Runtime Pipeline should
|
|
6
|
-
* add Middleware to handle the newly added types.
|
|
7
|
-
*/
|
|
8
|
-
var SystemType;
|
|
9
|
-
(function (SystemType) {
|
|
10
|
-
SystemType["initialize"] = "initialize";
|
|
11
|
-
SystemType["update"] = "update";
|
|
12
|
-
SystemType["render"] = "render";
|
|
13
|
-
SystemType["sync"] = "sync";
|
|
14
|
-
})(SystemType || (exports.SystemType = SystemType = {}));
|
|
15
|
-
//# sourceMappingURL=system-type.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-type.js","sourceRoot":"","sources":["../../src/systems/system-type.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,+BAAiB,CAAA;IACjB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;AACf,CAAC,EALW,UAAU,0BAAV,UAAU,QAKrB"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { IEntity } from "../entities/entity";
|
|
2
|
-
import { IEntityUpdate } from "../entities/entity-queue";
|
|
3
|
-
import { IRuntimeResult } from "../runtime/runtime-result";
|
|
4
|
-
import { ISystemMiddleware } from "./system-middleware";
|
|
5
|
-
import { SystemType } from "./system-type";
|
|
6
|
-
/**
|
|
7
|
-
* The SystemModule is the main way of registering and triggering the SystemMiddlewares registered for an Entity.
|
|
8
|
-
* It can handle EntityUpdate objects and decides which SystemPipelines to trigger based on the information in the EntityUpdate.
|
|
9
|
-
*/
|
|
10
|
-
export interface ISystemsModule<TEntity extends IEntity> {
|
|
11
|
-
/**
|
|
12
|
-
* @param type The SystemPipelineType to append the provided SystemMiddlewares to.
|
|
13
|
-
* @param systems The SystemMiddlewares will be registered in the provided SystemPipelineType in the same order as the provided array.
|
|
14
|
-
* The SystemMiddlewares will be appended to existing Pipelines to allow easy extension of existing behaviors.
|
|
15
|
-
*/
|
|
16
|
-
registerSystems(type: SystemType, systems: ISystemMiddleware<TEntity>[]): void;
|
|
17
|
-
/**
|
|
18
|
-
* Trigger all registered SystemPipelines, to apply the changes from the provided EntityUpdate to an Entity instance.
|
|
19
|
-
* @param update The EntityUpdate containing the desired changes to be applied on an Entity instance.
|
|
20
|
-
*/
|
|
21
|
-
triggerSystems(update: IEntityUpdate): IRuntimeResult;
|
|
22
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systems-module.js","sourceRoot":"","sources":["../../src/systems/systems-module.ts"],"names":[],"mappings":""}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { IEntityUpdate } from "../entities/entity-queue";
|
|
2
|
-
import { IRuntimeResult } from "../runtime/runtime-result";
|
|
3
|
-
/**
|
|
4
|
-
* The System Runtime allows running a loop of Ticks.
|
|
5
|
-
*
|
|
6
|
-
* Each RunTick can process one or more Entity Updates, from the EntityQueue.
|
|
7
|
-
* We can have multiple implementations of a SystemRuntime, based on the use-case.
|
|
8
|
-
* A different implementation can be chosen at runtime, based for example on performance.
|
|
9
|
-
*/
|
|
10
|
-
export interface ISystemsRuntime {
|
|
11
|
-
/**
|
|
12
|
-
* The method should trigger the SystemsModule logic for the provided IEntityUpdate.
|
|
13
|
-
* If no EntityUpdate is given, the SystemRuntime implementation can choose to dequeue one from the IEntityUpdateQueue.
|
|
14
|
-
*/
|
|
15
|
-
runTick(update?: IEntityUpdate): IRuntimeResult;
|
|
16
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"systems-runtime.js","sourceRoot":"","sources":["../../src/systems/systems-runtime.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"json-serializer.js","sourceRoot":"","sources":["../../src/utils/json-serializer.ts"],"names":[],"mappings":";AAAA,uDAAuD"}
|
package/dist/utils/logger.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* An ILogger instance allows printing messages to console or other targets.
|
|
3
|
-
*/
|
|
4
|
-
export interface ILogger {
|
|
5
|
-
log(level: LogLevel, message: any, ...args: any[]): void;
|
|
6
|
-
trace(message: any, ...args: any[]): void;
|
|
7
|
-
debug(message: any, ...args: any[]): void;
|
|
8
|
-
warn(message: any, ...args: any[]): void;
|
|
9
|
-
error(message: any, ...args: any[]): void;
|
|
10
|
-
}
|
|
11
|
-
export declare enum LogLevel {
|
|
12
|
-
trace = 0,
|
|
13
|
-
debug = 1,
|
|
14
|
-
warn = 2,
|
|
15
|
-
error = 3
|
|
16
|
-
}
|
|
17
|
-
export interface ILoggerOptions {
|
|
18
|
-
enabled: Map<LogLevel, boolean>;
|
|
19
|
-
}
|
package/dist/utils/logger.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LogLevel = void 0;
|
|
4
|
-
var LogLevel;
|
|
5
|
-
(function (LogLevel) {
|
|
6
|
-
LogLevel[LogLevel["trace"] = 0] = "trace";
|
|
7
|
-
LogLevel[LogLevel["debug"] = 1] = "debug";
|
|
8
|
-
LogLevel[LogLevel["warn"] = 2] = "warn";
|
|
9
|
-
LogLevel[LogLevel["error"] = 3] = "error";
|
|
10
|
-
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
11
|
-
//# sourceMappingURL=logger.js.map
|
package/dist/utils/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;AAYA,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,yCAAK,CAAA;IACL,yCAAK,CAAA;IACL,uCAAI,CAAA;IACJ,yCAAK,CAAA;AACP,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"performance-timer.js","sourceRoot":"","sources":["../../src/utils/performance-timer.ts"],"names":[],"mappings":""}
|
package/dist/utils/types.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export type BooleanProps<T> = {
|
|
2
|
-
[Property in keyof T]: boolean;
|
|
3
|
-
};
|
|
4
|
-
export type Mutable<T> = {
|
|
5
|
-
-readonly [K in keyof T]: T[K];
|
|
6
|
-
};
|
|
7
|
-
export type MutableDeep<T> = {
|
|
8
|
-
-readonly [K in keyof T]: Mutable<T[K]>;
|
|
9
|
-
};
|
|
10
|
-
type ImmutablePrimitive = undefined | null | boolean | string | number | Function;
|
|
11
|
-
export type Immutable<T> = T extends ImmutablePrimitive ? T : T extends Array<infer U> ? ImmutableArray<U> : T extends Map<infer K, infer V> ? ImmutableMap<K, V> : T extends Set<infer M> ? ImmutableSet<M> : ImmutableObject<T>;
|
|
12
|
-
export type ImmutableArray<T> = ReadonlyArray<Immutable<T>>;
|
|
13
|
-
export type ImmutableMap<K, V> = ReadonlyMap<Immutable<K>, Immutable<V>>;
|
|
14
|
-
export type ImmutableSet<T> = ReadonlySet<Immutable<T>>;
|
|
15
|
-
export type ImmutableObject<T> = {
|
|
16
|
-
readonly [K in keyof T]: T[K];
|
|
17
|
-
};
|
|
18
|
-
export type ImmutableObjectDeep<T> = {
|
|
19
|
-
readonly [K in keyof T]: Immutable<T[K]>;
|
|
20
|
-
};
|
|
21
|
-
export {};
|
package/dist/utils/types.js
DELETED
package/dist/utils/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":""}
|