@typeonce/ritmo 0.6.0 → 0.7.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/README.md +2 -0
- package/dist/Brand.d.ts +9 -4
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +9 -4
- package/dist/Brand.js.map +1 -1
- package/dist/Clock.d.ts +186 -0
- package/dist/Clock.d.ts.map +1 -0
- package/dist/Clock.js +111 -0
- package/dist/Clock.js.map +1 -0
- package/dist/Command.d.ts +157 -33
- package/dist/Command.d.ts.map +1 -1
- package/dist/Command.js +49 -15
- package/dist/Command.js.map +1 -1
- package/dist/Debug.d.ts +104 -12
- package/dist/Debug.d.ts.map +1 -1
- package/dist/Debug.js.map +1 -1
- package/dist/Decode.d.ts +1 -1
- package/dist/Decode.js +1 -1
- package/dist/Descriptor.d.ts +31 -21
- package/dist/Descriptor.d.ts.map +1 -1
- package/dist/Descriptor.js +21 -12
- package/dist/Descriptor.js.map +1 -1
- package/dist/Entity.d.ts +14 -5
- package/dist/Entity.d.ts.map +1 -1
- package/dist/Entity.js +2 -2
- package/dist/Entity.js.map +1 -1
- package/dist/EntityScope.d.ts +6 -0
- package/dist/EntityScope.d.ts.map +1 -1
- package/dist/EntityScope.js +6 -0
- package/dist/EntityScope.js.map +1 -1
- package/dist/HostClock.d.ts +49 -0
- package/dist/HostClock.d.ts.map +1 -0
- package/dist/HostClock.js +46 -0
- package/dist/HostClock.js.map +1 -0
- package/dist/Inspector.d.ts +7 -1
- package/dist/Inspector.d.ts.map +1 -1
- package/dist/Inspector.js.map +1 -1
- package/dist/Machine.d.ts +12 -3
- package/dist/Machine.d.ts.map +1 -1
- package/dist/Machine.js +4 -1
- package/dist/Machine.js.map +1 -1
- package/dist/Query.d.ts +28 -24
- package/dist/Query.d.ts.map +1 -1
- package/dist/Query.js +0 -24
- package/dist/Query.js.map +1 -1
- package/dist/Runtime.d.ts +36 -16
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +230 -67
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +217 -10
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +5 -0
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +61 -25
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +0 -8
- package/dist/Schema.js.map +1 -1
- package/dist/System.d.ts +149 -52
- package/dist/System.d.ts.map +1 -1
- package/dist/System.js +52 -6
- package/dist/System.js.map +1 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/internal/cells.d.ts +3 -3
- package/dist/internal/cells.d.ts.map +1 -1
- package/dist/internal/cells.js +9 -11
- package/dist/internal/cells.js.map +1 -1
- package/dist/internal/debug.d.ts +6 -0
- package/dist/internal/debug.d.ts.map +1 -1
- package/dist/internal/debug.js +95 -1
- package/dist/internal/debug.js.map +1 -1
- package/dist/internal/game.d.ts.map +1 -1
- package/dist/internal/game.js +9 -2
- package/dist/internal/game.js.map +1 -1
- package/dist/internal/order.d.ts +10 -0
- package/dist/internal/order.d.ts.map +1 -0
- package/dist/internal/order.js +120 -0
- package/dist/internal/order.js.map +1 -0
- package/dist/internal/queries.js +2 -2
- package/dist/internal/queries.js.map +1 -1
- package/package.json +1 -1
- package/src/Brand.ts +9 -4
- package/src/Clock.ts +311 -0
- package/src/Command.ts +271 -73
- package/src/Debug.ts +111 -10
- package/src/Decode.ts +1 -1
- package/src/Descriptor.ts +37 -27
- package/src/Entity.ts +15 -5
- package/src/EntityScope.ts +6 -0
- package/src/HostClock.ts +64 -0
- package/src/Inspector.ts +7 -2
- package/src/Machine.ts +13 -3
- package/src/Query.ts +41 -33
- package/src/Runtime.ts +273 -91
- package/src/Schedule.ts +380 -13
- package/src/Schema.ts +70 -41
- package/src/System.ts +174 -88
- package/src/index.ts +8 -7
- package/src/internal/cells.ts +10 -12
- package/src/internal/debug.ts +104 -4
- package/src/internal/game.ts +11 -3
- package/src/internal/order.ts +140 -0
- package/src/internal/queries.ts +3 -3
- package/dist/Definition.d.ts +0 -99
- package/dist/Definition.d.ts.map +0 -1
- package/dist/Definition.js +0 -68
- package/dist/Definition.js.map +0 -1
- package/dist/Feature.d.ts +0 -106
- package/dist/Feature.d.ts.map +0 -1
- package/dist/Feature.js +0 -87
- package/dist/Feature.js.map +0 -1
- package/dist/Fx.d.ts +0 -128
- package/dist/Fx.d.ts.map +0 -1
- package/dist/Fx.js +0 -112
- package/dist/Fx.js.map +0 -1
- package/dist/internal/definition.d.ts +0 -17
- package/dist/internal/definition.d.ts.map +0 -1
- package/dist/internal/definition.js +0 -25
- package/dist/internal/definition.js.map +0 -1
- package/src/Definition.ts +0 -106
- package/src/Feature.ts +0 -241
- package/src/Fx.ts +0 -176
- package/src/internal/definition.ts +0 -56
package/dist/Debug.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Opt-in runtime introspection for tools, tests, and coding agents.
|
|
3
3
|
*
|
|
4
|
-
* A runtime made with `debug:
|
|
4
|
+
* A runtime made with `debug: { hostClock }` carries a `debug` handle. Runtimes made
|
|
5
5
|
* without it have no handle at all, so production code cannot reach into
|
|
6
6
|
* internals by accident and pays nothing for them.
|
|
7
7
|
*
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
*
|
|
36
36
|
* @example
|
|
37
37
|
* ```ts
|
|
38
|
-
* const runtime = Game.Runtime.make({ services, resources, debug:
|
|
38
|
+
* const runtime = Game.Runtime.make({ services, resources, debug: { hostClock: HostClock.standard } })
|
|
39
39
|
* runtime.debug.nameSchedules({ setup: setupSchedule, update: updateSchedule })
|
|
40
40
|
*
|
|
41
41
|
* const stop = runtime.debug.observe((event) => {
|
|
@@ -46,13 +46,14 @@
|
|
|
46
46
|
* stop()
|
|
47
47
|
* ```
|
|
48
48
|
*/
|
|
49
|
+
import type { HostClock } from "./HostClock.ts";
|
|
49
50
|
import type * as Machine from "./Machine.ts";
|
|
50
|
-
import type { ExecutableScheduleDefinition } from "./Schedule.ts";
|
|
51
|
+
import type { AnyScheduleOrder, ExecutableScheduleDefinition } from "./Schedule.ts";
|
|
51
52
|
import type { Schema } from "./Schema.ts";
|
|
52
53
|
/** Version of the description, dump, and trace formats. */
|
|
53
54
|
export declare const formatVersion: 1;
|
|
54
55
|
/**
|
|
55
|
-
* The debug handle of a runtime made with `debug:
|
|
56
|
+
* The debug handle of a runtime made with `debug: { hostClock }`.
|
|
56
57
|
*/
|
|
57
58
|
export interface Handle<S extends Schema.Any = Schema.Any, Root = unknown> {
|
|
58
59
|
/**
|
|
@@ -61,7 +62,14 @@ export interface Handle<S extends Schema.Any = Schema.Any, Root = unknown> {
|
|
|
61
62
|
* schedules are named after their transition, for example
|
|
62
63
|
* `onEnter(Game/Flow=Playing)`. Naming again replaces earlier names.
|
|
63
64
|
*/
|
|
64
|
-
readonly nameSchedules: (schedules: Readonly<Record<string, ExecutableScheduleDefinition<S, any, Root, any, any>>>) => void;
|
|
65
|
+
readonly nameSchedules: (schedules: Readonly<Record<string, ExecutableScheduleDefinition<S, any, Root, any, any, AnyScheduleOrder>>>) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Declares the events the host publishes with `runtime.send`, so
|
|
68
|
+
* `describe()` counts them as written (`event-never-written`) before the
|
|
69
|
+
* first send happens. Events actually sent count as well. Declaring again
|
|
70
|
+
* replaces the list.
|
|
71
|
+
*/
|
|
72
|
+
readonly declareHostEvents: (events: ReadonlyArray<Schema.EventDescriptor<S>>) => void;
|
|
65
73
|
/** The static description of the schema and the named schedules. */
|
|
66
74
|
readonly describe: () => Description;
|
|
67
75
|
/** The current world as plain data. */
|
|
@@ -71,6 +79,21 @@ export interface Handle<S extends Schema.Any = Schema.Any, Root = unknown> {
|
|
|
71
79
|
* active only while at least one listener is registered.
|
|
72
80
|
*/
|
|
73
81
|
readonly observe: (listener: (event: TraceEvent) => void) => () => void;
|
|
82
|
+
/**
|
|
83
|
+
* Delivers what the host does to the runtime, until the returned function
|
|
84
|
+
* is called: each tick's start and end (with the schedule values it runs)
|
|
85
|
+
* and each `runtime.send`. Unlike `observe`, it turns no tracing on, so a
|
|
86
|
+
* tool can listen for a whole play session (replay recorders do).
|
|
87
|
+
*/
|
|
88
|
+
readonly observeHost: (listener: (event: HostEvent<S, Root>) => void) => () => void;
|
|
89
|
+
/**
|
|
90
|
+
* Reports the last failed tick result if nobody read its `ok`, as a
|
|
91
|
+
* `failure.ignored` event (to `observe` and `observeHost` listeners), with
|
|
92
|
+
* `when: "session-end"`. Call it when a session ends; the start of the
|
|
93
|
+
* next tick checks the same with `when: "next-tick"`. Emits nothing to a
|
|
94
|
+
* console.
|
|
95
|
+
*/
|
|
96
|
+
readonly checkIgnoredFailures: () => void;
|
|
74
97
|
/** Retention and reader state of every stream that has readers or entries. */
|
|
75
98
|
readonly streams: () => ReadonlyArray<StreamStatus>;
|
|
76
99
|
/** Live entity count and, per component, how many entities have it. Cheap enough to sample every frame. */
|
|
@@ -147,7 +170,15 @@ export interface SystemDescription {
|
|
|
147
170
|
readonly removed: ReadonlyArray<string>;
|
|
148
171
|
readonly despawned: boolean;
|
|
149
172
|
readonly relationFailures: ReadonlyArray<string>;
|
|
173
|
+
/** Events and resources read with `Game.System.thisTick`, and query slots as `queries.<slot>`. */
|
|
174
|
+
readonly thisTick: ReadonlyArray<string>;
|
|
150
175
|
readonly services: ReadonlyArray<string>;
|
|
176
|
+
/**
|
|
177
|
+
* The declared command permissions (`Game.System.commands(...)`), by
|
|
178
|
+
* kind: component names for spawns, inserts, removes and despawns, scope
|
|
179
|
+
* names for despawnsScope, relation names for relates.
|
|
180
|
+
*/
|
|
181
|
+
readonly commands: CommandPermissions;
|
|
151
182
|
/** Run conditions, rendered, for example `stateChanged(Game/Flow)`. */
|
|
152
183
|
readonly when: ReadonlyArray<string>;
|
|
153
184
|
/** Pause conditions, rendered: while one fails the system waits and holds its stream entries. */
|
|
@@ -155,6 +186,15 @@ export interface SystemDescription {
|
|
|
155
186
|
/** Whether the system declares `local` scratch state. */
|
|
156
187
|
readonly local: boolean;
|
|
157
188
|
}
|
|
189
|
+
/** Declared command permissions of one system, by kind. Empty lists when it declares none. */
|
|
190
|
+
export interface CommandPermissions {
|
|
191
|
+
readonly spawns: ReadonlyArray<string>;
|
|
192
|
+
readonly inserts: ReadonlyArray<string>;
|
|
193
|
+
readonly removes: ReadonlyArray<string>;
|
|
194
|
+
readonly despawns: ReadonlyArray<string>;
|
|
195
|
+
readonly despawnsScope: ReadonlyArray<string>;
|
|
196
|
+
readonly relates: ReadonlyArray<string>;
|
|
197
|
+
}
|
|
158
198
|
export type StepDescription = {
|
|
159
199
|
readonly kind: "system";
|
|
160
200
|
readonly system: string;
|
|
@@ -171,12 +211,20 @@ export interface ScheduleDescription {
|
|
|
171
211
|
/**
|
|
172
212
|
* A finding about the described schedules. `warning` is almost certainly a
|
|
173
213
|
* bug; `info` is worth a look but can be intentional.
|
|
214
|
+
*
|
|
215
|
+
* Most lints read declarations only. Two also use what the runtime has seen
|
|
216
|
+
* so far: events sent with `runtime.send(...)` count as written, and
|
|
217
|
+
* `relation-failure-never-read` fires for a relation that applied commands
|
|
218
|
+
* have tried to relate or reorder (which can fail) while no described system
|
|
219
|
+
* reads its failures, so describe after the game has run for a while.
|
|
174
220
|
*/
|
|
175
221
|
export interface Lint {
|
|
176
222
|
readonly severity: "warning" | "info";
|
|
177
|
-
readonly code: "event-never-read" | "event-never-written" | "next-state-never-applied" | "component-never-read" | "read-before-write";
|
|
223
|
+
readonly code: "event-never-read" | "relation-failure-never-read" | "event-never-written" | "next-state-never-applied" | "component-never-read" | "read-before-write" | "this-tick-order" | "command-permission-unused";
|
|
178
224
|
readonly message: string;
|
|
179
225
|
readonly subject: string;
|
|
226
|
+
/** What to change to resolve it (or, for `info`, when it is fine as it is). */
|
|
227
|
+
readonly fix: string;
|
|
180
228
|
}
|
|
181
229
|
/** Readers and writers of one component, resource, or event. */
|
|
182
230
|
export interface AccessIndexEntry {
|
|
@@ -198,7 +246,8 @@ export interface Description {
|
|
|
198
246
|
readonly systems: ReadonlyArray<SystemDescription>;
|
|
199
247
|
/**
|
|
200
248
|
* Readers and writers across the named schedules. Component writers are
|
|
201
|
-
* systems with a write query slot
|
|
249
|
+
* systems with a write query slot or a declared `spawns`, `inserts`, or
|
|
250
|
+
* `removes` permission for it.
|
|
202
251
|
*/
|
|
203
252
|
readonly access: {
|
|
204
253
|
readonly components: ReadonlyArray<AccessIndexEntry>;
|
|
@@ -447,14 +496,57 @@ export interface RestoreEvent {
|
|
|
447
496
|
readonly tick: number;
|
|
448
497
|
readonly ok: boolean;
|
|
449
498
|
}
|
|
499
|
+
/** What `observeHost` delivers. */
|
|
500
|
+
export type HostEvent<S extends Schema.Any = Schema.Any, Root = unknown> = {
|
|
501
|
+
readonly type: "tick.start";
|
|
502
|
+
/** The schedule values passed to this `tick(...)` (or `tryTick`) call, in order. */
|
|
503
|
+
readonly schedules: ReadonlyArray<ExecutableScheduleDefinition<S, any, Root, any, any, AnyScheduleOrder>>;
|
|
504
|
+
readonly frame: number;
|
|
505
|
+
} | {
|
|
506
|
+
readonly type: "tick.end";
|
|
507
|
+
readonly schedules: ReadonlyArray<ExecutableScheduleDefinition<S, any, Root, any, any, AnyScheduleOrder>>;
|
|
508
|
+
readonly frame: number;
|
|
509
|
+
/** `failed`: a system returned `Result.failure`; `defect`: one threw (rethrown after this event). */
|
|
510
|
+
readonly outcome: "ok" | "failed" | "defect";
|
|
511
|
+
readonly error?: unknown;
|
|
512
|
+
} | {
|
|
513
|
+
readonly type: "send";
|
|
514
|
+
readonly event: string;
|
|
515
|
+
readonly value: unknown;
|
|
516
|
+
} | FailureIgnoredEvent;
|
|
517
|
+
/**
|
|
518
|
+
* A failed `tick` / `tryTick` result whose `ok` nobody read: the failure
|
|
519
|
+
* went unnoticed, and the systems after the failing one did not run that
|
|
520
|
+
* tick. Found at the start of the next tick (`when: "next-tick"`) or by
|
|
521
|
+
* `checkIgnoredFailures()` (`when: "session-end"`). Debug runtimes only.
|
|
522
|
+
*/
|
|
523
|
+
export interface FailureIgnoredEvent {
|
|
524
|
+
readonly type: "failure.ignored";
|
|
525
|
+
/** The frame of the failed tick. */
|
|
526
|
+
readonly frame: number;
|
|
527
|
+
/** The schedule holding the failing system (the first one for a tick that ran nothing). */
|
|
528
|
+
readonly schedule: string;
|
|
529
|
+
/** The failing system; `undefined` when `tryTick` ran nothing (missing requirements, order). */
|
|
530
|
+
readonly system: string | undefined;
|
|
531
|
+
readonly error: unknown;
|
|
532
|
+
/** The systems of the tick that did not run because of the failure, in order. */
|
|
533
|
+
readonly skipped: ReadonlyArray<string>;
|
|
534
|
+
readonly when: "next-tick" | "session-end";
|
|
535
|
+
}
|
|
450
536
|
/** Everything `observe` delivers. */
|
|
451
|
-
export type TraceEvent = FrameEvent | ScheduleStartEvent | ScheduleEndEvent | SystemEvent | SystemSkippedEvent | SentEvent | DeferredEvent | TransitionEvent | RestoreEvent;
|
|
537
|
+
export type TraceEvent = FrameEvent | ScheduleStartEvent | ScheduleEndEvent | SystemEvent | SystemSkippedEvent | SentEvent | DeferredEvent | TransitionEvent | RestoreEvent | FailureIgnoredEvent;
|
|
452
538
|
/**
|
|
453
|
-
* The `debug` runtime option: `
|
|
539
|
+
* The `debug` runtime option: `{ hostClock }` attaches a handle, timing
|
|
540
|
+
* traces with that clock. A value that may be `undefined`
|
|
541
|
+
* (`import.meta.env.DEV ? { hostClock } : undefined`) attaches it when
|
|
542
|
+
* present and types `debug` as optional, so code checks it before use.
|
|
454
543
|
*/
|
|
455
|
-
export
|
|
544
|
+
export interface Option {
|
|
545
|
+
/** Times trace events (`ms`); see `HostClock`. */
|
|
546
|
+
readonly hostClock: HostClock;
|
|
547
|
+
}
|
|
456
548
|
/**
|
|
457
|
-
* The member a runtime made with `debug:
|
|
549
|
+
* The member a runtime made with `debug: { hostClock }` carries.
|
|
458
550
|
*/
|
|
459
551
|
export interface Member<S extends Schema.Any, Root> {
|
|
460
552
|
readonly debug: Handle<S, Root>;
|
|
@@ -462,5 +554,5 @@ export interface Member<S extends Schema.Any, Root> {
|
|
|
462
554
|
/** Resolves the extra runtime member for a `debug` option type. */
|
|
463
555
|
export type MemberFor<Enabled, S extends Schema.Any, Root> = [
|
|
464
556
|
Enabled
|
|
465
|
-
] extends [
|
|
557
|
+
] extends [true] ? Member<S, Root> : [Enabled] extends [false | undefined] ? {} : Partial<Member<S, Root>>;
|
|
466
558
|
//# sourceMappingURL=Debug.d.ts.map
|
package/dist/Debug.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Debug.d.ts","sourceRoot":"","sources":["../src/Debug.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Debug.d.ts","sourceRoot":"","sources":["../src/Debug.ts"],"names":[],"mappings":"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"}
|
package/dist/Debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../src/Debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Debug.js","sourceRoot":"","sources":["../src/Debug.ts"],"names":[],"mappings":"AAqDA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAG,CAAU,CAAA"}
|
package/dist/Decode.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export declare const struct: <const Fields extends Readonly<Record<string, Codec
|
|
|
81
81
|
/**
|
|
82
82
|
* A stored entity handle for schema root `Root`, optionally with an intent
|
|
83
83
|
* component. Decoding never proves the entity exists; resolve it with
|
|
84
|
-
* `
|
|
84
|
+
* `queries.x.getHandle(...)` (through a declared query) as usual.
|
|
85
85
|
*/
|
|
86
86
|
export declare const handle: <Root, const Intent extends Descriptor<"component", string, any> | undefined = undefined>(root: Root, intent?: Intent) => Codec<Entity.Handle<Root, Intent>>;
|
|
87
87
|
//# sourceMappingURL=Decode.d.ts.map
|
package/dist/Decode.js
CHANGED
|
@@ -103,7 +103,7 @@ export const struct = (fields) => {
|
|
|
103
103
|
/**
|
|
104
104
|
* A stored entity handle for schema root `Root`, optionally with an intent
|
|
105
105
|
* component. Decoding never proves the entity exists; resolve it with
|
|
106
|
-
* `
|
|
106
|
+
* `queries.x.getHandle(...)` (through a declared query) as usual.
|
|
107
107
|
*/
|
|
108
108
|
export const handle = (root, intent) => make((raw) => {
|
|
109
109
|
const decoded = Entity.decodeHandle(root, raw, intent);
|
package/dist/Descriptor.d.ts
CHANGED
|
@@ -16,8 +16,9 @@
|
|
|
16
16
|
* 3. bind one `Game` with `Schema.bind(...)`
|
|
17
17
|
*
|
|
18
18
|
* Reach for this module first whenever you introduce a new component,
|
|
19
|
-
* resource, event, or service to the game.
|
|
20
|
-
* matter
|
|
19
|
+
* resource, event, or service to the game. A game-wide mode whose transitions
|
|
20
|
+
* matter is a state machine (`Game.StateMachine(...)`); a state each entity
|
|
21
|
+
* has on its own is a component (`Descriptor.EntityState(...)`).
|
|
21
22
|
*
|
|
22
23
|
* @module Descriptor
|
|
23
24
|
* @docGroup core
|
|
@@ -208,48 +209,55 @@ export declare const TransientComponent: <Value>() => <const Name extends string
|
|
|
208
209
|
* ```
|
|
209
210
|
*/
|
|
210
211
|
export declare const Tag: <const Name extends string>(name: Name) => DecodableDescriptor<"component", Name, {}, {}, DecodeModule.DecodeError>;
|
|
211
|
-
/** One state of a {@link
|
|
212
|
-
export type
|
|
212
|
+
/** One state of a {@link EntityState} component: a string or number literal. */
|
|
213
|
+
export type EntityStateValue = string | number;
|
|
213
214
|
/**
|
|
214
|
-
* The allowed moves of a {@link
|
|
215
|
+
* The allowed moves of a {@link EntityState} component: for every state, the
|
|
215
216
|
* states it may move to (`[]` for a state with no way out).
|
|
216
217
|
*/
|
|
217
|
-
export type
|
|
218
|
+
export type EntityStateTransitions<States extends readonly [EntityStateValue, ...Array<EntityStateValue>]> = {
|
|
218
219
|
readonly [From in States[number]]: ReadonlyArray<States[number]>;
|
|
219
220
|
};
|
|
220
221
|
/**
|
|
221
222
|
* A component whose value is one of a closed set of states, with an optional
|
|
222
|
-
* graph of allowed moves. Built with {@link
|
|
223
|
+
* graph of allowed moves. Built with {@link EntityState}.
|
|
223
224
|
*/
|
|
224
|
-
export interface
|
|
225
|
+
export interface EntityStateDescriptor<out Name extends string, in out States extends readonly [EntityStateValue, ...Array<EntityStateValue>], in out Transitions extends EntityStateTransitions<States> | undefined> extends DecodableDescriptor<"component", Name, States[number], States[number], DecodeModule.DecodeError> {
|
|
225
226
|
readonly states: States;
|
|
226
227
|
readonly transitions: Transitions;
|
|
227
228
|
}
|
|
228
229
|
/**
|
|
229
|
-
* Defines a state component
|
|
230
|
-
* snapshots reject unknown states),
|
|
231
|
-
* (storage, change detection, rollback, traces).
|
|
230
|
+
* Defines a per-entity state: a component whose value is one of `states`,
|
|
231
|
+
* validated (so snapshots reject unknown states), that behaves like any other
|
|
232
|
+
* component (storage, change detection, rollback, traces).
|
|
233
|
+
*
|
|
234
|
+
* Use this when each entity has its own state: an enemy's attack windup, a
|
|
235
|
+
* door's open/closed, a unit's AI mode. Use `Game.StateMachine(...)` instead
|
|
236
|
+
* for one game-wide mode (menu, playing, paused, game over): machines change
|
|
237
|
+
* only at `applyStateTransitions(...)`, run `onEnter`/`onExit` schedules, and
|
|
238
|
+
* gate systems with `Game.Condition.inState(...)`. An entity state does none
|
|
239
|
+
* of that; it is data on an entity.
|
|
232
240
|
*
|
|
233
241
|
* With `transitions`, its write cell gains `transition(from, to)`: the pair
|
|
234
242
|
* is checked against the graph at compile time, and at runtime the move
|
|
235
|
-
* happens only if the current state is still `from`, otherwise it returns
|
|
236
|
-
* `
|
|
243
|
+
* happens only if the current state is still `from`, otherwise it returns an
|
|
244
|
+
* `EntityStateMismatch` failure. Transitions are ordinary component writes:
|
|
237
245
|
* immediate, visible to later systems, rolled back with a failed system.
|
|
238
246
|
*
|
|
239
247
|
* @example
|
|
240
248
|
* ```ts
|
|
241
|
-
* const
|
|
249
|
+
* const Attack = Descriptor.EntityState("Attack", ["ready", "windup", "active"] as const, {
|
|
242
250
|
* transitions: { ready: ["windup"], windup: ["active", "ready"], active: ["ready"] }
|
|
243
251
|
* })
|
|
244
|
-
* // in a system with a write slot `
|
|
245
|
-
* const moved = data.
|
|
252
|
+
* // in a system with a write slot `attack`:
|
|
253
|
+
* const moved = data.attack.transition("windup", "active") // "ready" -> "active" does not compile
|
|
246
254
|
* ```
|
|
247
255
|
*/
|
|
248
|
-
export declare const
|
|
256
|
+
export declare const EntityState: <const Name extends string, const States extends readonly [EntityStateValue, ...Array<EntityStateValue>], const Transitions extends EntityStateTransitions<States> | undefined = undefined>(name: Name, states: States, options?: {
|
|
249
257
|
readonly transitions: Transitions & { readonly [Key in Exclude<keyof Transitions, States[number]>]: never; };
|
|
250
|
-
}) =>
|
|
251
|
-
/** Whether a descriptor was built with {@link
|
|
252
|
-
export declare const
|
|
258
|
+
}) => EntityStateDescriptor<Name, States, Transitions>;
|
|
259
|
+
/** Whether a descriptor was built with {@link EntityState}. */
|
|
260
|
+
export declare const isEntityState: (descriptor: Descriptor.Any) => descriptor is EntityStateDescriptor<string, readonly [EntityStateValue, ...Array<EntityStateValue>], EntityStateTransitions<readonly [EntityStateValue, ...Array<EntityStateValue>]> | undefined>;
|
|
253
261
|
/**
|
|
254
262
|
* Defines a resource descriptor.
|
|
255
263
|
*
|
|
@@ -391,7 +399,9 @@ export declare function constructorOf<D extends Descriptor.Any>(descriptor: D):
|
|
|
391
399
|
* `related` is the reverse collection maintained by the runtime.
|
|
392
400
|
*
|
|
393
401
|
* Use hierarchy when the relationship must support ordered children,
|
|
394
|
-
* ancestor/descendant traversal, and linked recursive despawn.
|
|
402
|
+
* ancestor/descendant traversal, and linked recursive despawn. Use
|
|
403
|
+
* `Game.EntityScope(...)` instead when entities only share a lifetime (a
|
|
404
|
+
* level, a menu) and need no tree, order, or traversal.
|
|
395
405
|
*/
|
|
396
406
|
export declare const Hierarchy: typeof RelationModule.Hierarchy;
|
|
397
407
|
/**
|
package/dist/Descriptor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Descriptor.d.ts","sourceRoot":"","sources":["../src/Descriptor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Descriptor.d.ts","sourceRoot":"","sources":["../src/Descriptor.ts"],"names":[],"mappings":"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"}
|
package/dist/Descriptor.js
CHANGED
|
@@ -83,32 +83,39 @@ export const TransientComponent = () => (name) => makeTransientDescriptor("compo
|
|
|
83
83
|
*/
|
|
84
84
|
export const Tag = (name) => ConstructedComponent(DecodeModule.struct({}))(name);
|
|
85
85
|
/**
|
|
86
|
-
* Defines a state component
|
|
87
|
-
* snapshots reject unknown states),
|
|
88
|
-
* (storage, change detection, rollback, traces).
|
|
86
|
+
* Defines a per-entity state: a component whose value is one of `states`,
|
|
87
|
+
* validated (so snapshots reject unknown states), that behaves like any other
|
|
88
|
+
* component (storage, change detection, rollback, traces).
|
|
89
|
+
*
|
|
90
|
+
* Use this when each entity has its own state: an enemy's attack windup, a
|
|
91
|
+
* door's open/closed, a unit's AI mode. Use `Game.StateMachine(...)` instead
|
|
92
|
+
* for one game-wide mode (menu, playing, paused, game over): machines change
|
|
93
|
+
* only at `applyStateTransitions(...)`, run `onEnter`/`onExit` schedules, and
|
|
94
|
+
* gate systems with `Game.Condition.inState(...)`. An entity state does none
|
|
95
|
+
* of that; it is data on an entity.
|
|
89
96
|
*
|
|
90
97
|
* With `transitions`, its write cell gains `transition(from, to)`: the pair
|
|
91
98
|
* is checked against the graph at compile time, and at runtime the move
|
|
92
|
-
* happens only if the current state is still `from`, otherwise it returns
|
|
93
|
-
* `
|
|
99
|
+
* happens only if the current state is still `from`, otherwise it returns an
|
|
100
|
+
* `EntityStateMismatch` failure. Transitions are ordinary component writes:
|
|
94
101
|
* immediate, visible to later systems, rolled back with a failed system.
|
|
95
102
|
*
|
|
96
103
|
* @example
|
|
97
104
|
* ```ts
|
|
98
|
-
* const
|
|
105
|
+
* const Attack = Descriptor.EntityState("Attack", ["ready", "windup", "active"] as const, {
|
|
99
106
|
* transitions: { ready: ["windup"], windup: ["active", "ready"], active: ["ready"] }
|
|
100
107
|
* })
|
|
101
|
-
* // in a system with a write slot `
|
|
102
|
-
* const moved = data.
|
|
108
|
+
* // in a system with a write slot `attack`:
|
|
109
|
+
* const moved = data.attack.transition("windup", "active") // "ready" -> "active" does not compile
|
|
103
110
|
* ```
|
|
104
111
|
*/
|
|
105
|
-
export const
|
|
112
|
+
export const EntityState = (name, states, options) => ({
|
|
106
113
|
...makeConstructedDescriptor("component", name, DecodeModule.literal(...states)),
|
|
107
114
|
states,
|
|
108
115
|
transitions: options?.transitions
|
|
109
116
|
});
|
|
110
|
-
/** Whether a descriptor was built with {@link
|
|
111
|
-
export const
|
|
117
|
+
/** Whether a descriptor was built with {@link EntityState}. */
|
|
118
|
+
export const isEntityState = (descriptor) => "states" in descriptor;
|
|
112
119
|
/**
|
|
113
120
|
* Defines a resource descriptor.
|
|
114
121
|
*
|
|
@@ -235,7 +242,9 @@ export function constructorOf(descriptor) {
|
|
|
235
242
|
* `related` is the reverse collection maintained by the runtime.
|
|
236
243
|
*
|
|
237
244
|
* Use hierarchy when the relationship must support ordered children,
|
|
238
|
-
* ancestor/descendant traversal, and linked recursive despawn.
|
|
245
|
+
* ancestor/descendant traversal, and linked recursive despawn. Use
|
|
246
|
+
* `Game.EntityScope(...)` instead when entities only share a lifetime (a
|
|
247
|
+
* level, a menu) and need no tree, order, or traversal.
|
|
239
248
|
*/
|
|
240
249
|
export const Hierarchy = RelationModule.Hierarchy;
|
|
241
250
|
/**
|
package/dist/Descriptor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../src/Descriptor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Descriptor.js","sourceRoot":"","sources":["../src/Descriptor.ts"],"names":[],"mappings":"AA2DA;;GAEG;AACH,MAAM,gBAAgB,GAAqB,mBAAmB,CAAA;AAC9D,MAAM,4BAA4B,GAAiC,+BAA+B,CAAA;AAClG,MAAM,sBAAsB,GAA2B,yBAAyB,CAAA;AAChF,MAAM,sBAAsB,GAAG,MAAM,CAAC,8BAA8B,CAAC,CAAA;AAsIrE;;;;;GAKG;AACH,MAAM,cAAc,GAAG,CACrB,IAAU,EACV,IAAU,EACqB,EAAE,CACjC,CAAC;IACC,IAAI;IACJ,IAAI;IACJ,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;CACzC,CAAkC,CAAA;AAErC,MAAM,uBAAuB,GAAG,CAC9B,IAAU,EACV,IAAU,EAC8B,EAAE,CAC1C,CAAC;IACC,IAAI;IACJ,IAAI;IACJ,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;IACxC,SAAS,EAAE,IAAI;CAChB,CAA2C,CAAA;AAE9C,MAAM,yBAAyB,GAAG,CAOhC,IAAU,EACV,IAAU,EACV,WAAiD,EACK,EAAE,CACxD,CAAC;IACC,IAAI;IACJ,IAAI;IACJ,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;IACxC,CAAC,sBAAsB,CAAC,EAAE,WAAW;CACtC,CAAyD,CAAA;AAE5D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,GAAU,EAAE,CAAC,CACpC,IAAU,EAC4B,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAE5E;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,WAA+D,EAC/D,EAAE,CAAC,CACH,IAAU,EACyD,EAAE,CACrE,yBAAyB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,CAAsE,CAAA;AAEhI;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAU,EAAE,CAAC,CAC7C,IAAU,EACqC,EAAE,CAAC,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;AAE9F;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CACjB,IAAU,EACgE,EAAE,CAC5E,oBAAoB,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AA0BrD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAKzB,IAAU,EACV,MAAc,EACd,OAEC,EACiD,EAAE,CAAC,CAAC;IACtD,GAAG,yBAAyB,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IAChF,MAAM;IACN,WAAW,EAAE,OAAO,EAAE,WAAW;CAClC,CAAgE,CAAA;AAEjE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,UAA0B,EACyK,EAAE,CACrM,QAAQ,IAAI,UAAU,CAAA;AAExB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAU,EAAE,CAAC,CACnC,IAAU,EAC2B,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAE1E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,WAA+D,EAC/D,EAAE,CAAC,CACH,IAAU,EACwD,EAAE,CACpE,yBAAyB,CAAC,UAAU,EAAE,IAAI,EAAE,WAAW,CAAqE,CAAA;AAE9H;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAU,EAAE,CAAC,CAC5C,IAAU,EACoC,EAAE,CAAC,uBAAuB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAE5F;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,GAAU,EAAE,CAAC,CAChC,IAAU,EACwB,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AAEpE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,GAAU,EAAE,CAAC,CAClC,IAAU,EAC0B,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;AAExE;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAA0B,EAAyC,EAAE,CAC/F,WAAW,IAAI,UAAU,IAAI,UAAU,CAAC,SAAS,KAAK,IAAI,CAAA;AA0B5D,MAAM,oBAAoB,GAAwC;IAChE,EAAE,OAAO,EAAE,qFAAqF,EAAE;CACnG,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAqC,EACoD,EAAE;IAC3F,MAAM,QAAQ,GAAG,CAAC,GAAY,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACjD,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC/B,2DAA2D;YAC3D,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YACvB,OAAO,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS;YACjC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;YACrC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC,CAAA;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC/C,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,UAAqC,EAAoE,EAAE;IACnI,MAAM,WAAW,GAAG,UAAU,CAAC,sBAAsB,CAA6E,CAAA;IAClI,OAAO,OAAO,WAAW,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAA;AAC3F,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAA0B,EAA2C,EAAE,CACpG,sBAAsB,IAAI,UAAU,CAAA;AAatC,MAAM,UAAU,aAAa,CAC3B,UAAa;IAEb,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,SAAS,CAA0C,CAAA;AAC/H,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,CAAA;AAC/C,OAAO,KAAK,YAAY,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,cAAc,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,YAAY,MAAM,aAAa,CAAA"}
|
package/dist/Entity.d.ts
CHANGED
|
@@ -55,7 +55,8 @@ import * as Result from "./Result.ts";
|
|
|
55
55
|
* @example
|
|
56
56
|
* ```ts
|
|
57
57
|
* const handle = Game.Entity.handle(playerId, Player)
|
|
58
|
-
*
|
|
58
|
+
* // `players` is a query the system declares: queries: { players: PlayerQuery }
|
|
59
|
+
* const resolved = queries.players.getHandle(handle)
|
|
59
60
|
* if (!resolved.ok) return
|
|
60
61
|
* ```
|
|
61
62
|
*/
|
|
@@ -148,11 +149,17 @@ export type StagedComponent = readonly [Descriptor<"component", string, any>, un
|
|
|
148
149
|
*
|
|
149
150
|
* Query execution is the main source of `EntityRef` values.
|
|
150
151
|
*/
|
|
151
|
-
export interface EntityRef<S extends Schema.Any, out P extends ComponentProof, Root = unknown> {
|
|
152
|
+
export interface EntityRef<S extends Schema.Any, out P extends ComponentProof, Root = unknown, out Proves = unknown> {
|
|
152
153
|
/**
|
|
153
154
|
* Runtime tag for debugging and pattern matching.
|
|
154
155
|
*/
|
|
155
156
|
readonly kind: "EntityRef";
|
|
157
|
+
/**
|
|
158
|
+
* The component descriptors the query that produced this ref proves (its
|
|
159
|
+
* required slots and `with`): what `commands.despawn` checks against the
|
|
160
|
+
* system's `despawns` permission. Type-level only.
|
|
161
|
+
*/
|
|
162
|
+
readonly __proves?: (_: never) => Proves;
|
|
156
163
|
/**
|
|
157
164
|
* The schema-bound entity identity.
|
|
158
165
|
*/
|
|
@@ -169,11 +176,13 @@ export interface EntityRef<S extends Schema.Any, out P extends ComponentProof, R
|
|
|
169
176
|
* `P` tracks readable components and `W` tracks the writable subset. This keeps
|
|
170
177
|
* mutation capabilities explicit in query results.
|
|
171
178
|
*/
|
|
172
|
-
export interface EntityMut<S extends Schema.Any, out P extends ComponentProof, out W extends ComponentProof, Root = unknown> {
|
|
179
|
+
export interface EntityMut<S extends Schema.Any, out P extends ComponentProof, out W extends ComponentProof, Root = unknown, out Proves = unknown> {
|
|
173
180
|
/**
|
|
174
181
|
* Runtime tag for debugging and pattern matching.
|
|
175
182
|
*/
|
|
176
183
|
readonly kind: "EntityMut";
|
|
184
|
+
/** The component descriptors the producing query proves; see `EntityRef`. */
|
|
185
|
+
readonly __proves?: (_: never) => Proves;
|
|
177
186
|
/**
|
|
178
187
|
* The schema-bound entity identity.
|
|
179
188
|
*/
|
|
@@ -213,7 +222,7 @@ export type HandleTarget<S extends Schema.Any, Root = unknown> = EntityId<S, Roo
|
|
|
213
222
|
* Converts a current entity into a durable handle for storage.
|
|
214
223
|
*
|
|
215
224
|
* The handle is storage-safe, not a proof of liveness: resolve it later with
|
|
216
|
-
* `
|
|
225
|
+
* `queries.x.getHandle(...)` (through a declared query), which fails explicitly when the entity is gone.
|
|
217
226
|
*
|
|
218
227
|
* Pass an `intent` component when later code assumes a role such as "player"
|
|
219
228
|
* or "damage source". An intent does not prove the component is still present;
|
|
@@ -239,7 +248,7 @@ export interface InvalidHandle {
|
|
|
239
248
|
* handles, so restoring validates them like any other value.
|
|
240
249
|
*
|
|
241
250
|
* A handle only names an entity; it never proves the entity exists. Resolving
|
|
242
|
-
* it with `
|
|
251
|
+
* it with `queries.x.getHandle(...)` (through a declared query) stays the checked step, so any positive
|
|
243
252
|
* integer id decodes. Object-shaped handles and other non-numeric values
|
|
244
253
|
* are rejected.
|
|
245
254
|
*
|
package/dist/Entity.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC
|
|
1
|
+
{"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
|
package/dist/Entity.js
CHANGED
|
@@ -22,7 +22,7 @@ export const makeHandle = (value) => value;
|
|
|
22
22
|
* Converts a current entity into a durable handle for storage.
|
|
23
23
|
*
|
|
24
24
|
* The handle is storage-safe, not a proof of liveness: resolve it later with
|
|
25
|
-
* `
|
|
25
|
+
* `queries.x.getHandle(...)` (through a declared query), which fails explicitly when the entity is gone.
|
|
26
26
|
*
|
|
27
27
|
* Pass an `intent` component when later code assumes a role such as "player"
|
|
28
28
|
* or "damage source". An intent does not prove the component is still present;
|
|
@@ -41,7 +41,7 @@ export const handle = (target, _intent) => makeHandle(typeof target === "number"
|
|
|
41
41
|
* handles, so restoring validates them like any other value.
|
|
42
42
|
*
|
|
43
43
|
* A handle only names an entity; it never proves the entity exists. Resolving
|
|
44
|
-
* it with `
|
|
44
|
+
* it with `queries.x.getHandle(...)` (through a declared query) stays the checked step, so any positive
|
|
45
45
|
* integer id decodes. Object-shaped handles and other non-numeric values
|
|
46
46
|
* are rejected.
|
|
47
47
|
*
|