1
0
Fork 0
Commit Graph

9 Commits

Author SHA1 Message Date
Pabloader 6d5cd0b2cc Tests 2026-04-29 16:01:52 +00:00
Pabloader b866e0a5de RPG engine improvements: caching, cloning, versioning, query overloads
- Condition parse cache: each unique string parsed once (Map<string, ParsedCondition>)
- executeAction: throw on missing type/malformed action/missing action; warn-only on
  destroyed entity (legitimate mid-flight case)
- World.query() overloads for 2 and 3 component types: query(A, B) → [Entity, A, B]
- World.once()/off() consistency: #onceWrappers map lets off(event, original) correctly
  remove handlers registered via once()
- World.cloneEntity(source, newId?): deep-clones all components via structuredClone,
  onAdd() fires normally on the new entity
- isEntityContext() type guard alongside isEvalContext()
- Inventory.getVariables() cache: invalidated on add()/remove()
- QuestLog.getVariables() cache: invalidated on any status transition or _advance()
- QuestLog.entries() explicit Generator return type
- Variables JSDoc: clarifies when to use Variables vs typed Component<TState>
- @component({ name?, version? }) object overload in registry
- registerMigration(name, from, to, fn): chained migrations run automatically on
  deserialize when saved version < current version
- Serialization wire format: ComponentData carries version, WorldData carries
  schemaVersion; mismatched schemaVersion throws a descriptive error

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 09:28:05 +00:00
Pabloader 066271205a QoL Improvements for actions and context 2026-04-29 08:16:18 +00:00
Pabloader 9bec7701e0 Serialization 2026-04-29 07:28:16 +00:00
Pabloader 5dec0901ac Pass context to all actions 2026-04-28 21:46:28 +00:00
Pabloader f6b3b5b66e Refactor the inventory 2026-04-28 21:06:01 +00:00
Pabloader b7bba137a1 Reworked inventory 2026-04-28 20:24:12 +00:00
Pabloader b75dc078f9 Fixes and improvements 2026-04-28 19:15:47 +00:00
Pabloader 89651f6674 ECS rewrite 2026-04-28 18:52:02 +00:00