@neocompose/cli 0.80.0 → 0.81.1
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/CHANGELOG.md +24 -0
- package/dist/neo.mjs +917 -368
- package/dist/test-worker.mjs +835 -178
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +1 -1
- package/skills/neocompose-cli/references/animation-and-world-authoring.md +14 -1
- package/skills/neocompose-cli/references/cli-development.md +1 -1
- package/skills/neocompose-cli/references/commands-and-sync.md +3 -2
- package/skills/neocompose-cli/references/neoscript.md +4 -0
- package/skills/neocompose-cli/references/values-identities-and-references.md +8 -5
package/package.json
CHANGED
|
@@ -95,7 +95,12 @@ Object `PlacementTiles` is a `List<NeoPlacementTile>`. Each entry marks a
|
|
|
95
95
|
footprint cell with its own `Cell` member. It is independent of `NeoTile`. Rendered
|
|
96
96
|
tile classes do not belong in this list. An object with no placement tiles
|
|
97
97
|
occupies no cells. It doesn't block other placements, and cell queries don't
|
|
98
|
-
return it.
|
|
98
|
+
return it. A placed object with no tiles still has a `Cell`.
|
|
99
|
+
|
|
100
|
+
`NeoSpriteObject` extends `NeoObject`. Place a sprite class like any object,
|
|
101
|
+
give it `Children`, and override `OnObjectSpawned`/`OnObjectDespawned` on it.
|
|
102
|
+
Hooks fire on every object in a placed hierarchy, parent first; despawn runs
|
|
103
|
+
children first. `NeoObjectBehaviour.IsRoot` is true only on the placed root.
|
|
99
104
|
|
|
100
105
|
Convert a writable placement without changing its row identity or cell:
|
|
101
106
|
|
|
@@ -152,6 +157,14 @@ NeoVariant<ExampleObject> Down = new(
|
|
|
152
157
|
deltas over existing instances. They may use inferred `new { ... }` or
|
|
153
158
|
explicit `new Partial<T> { ... }`, and never pass arguments to or invoke
|
|
154
159
|
`T`'s constructor—even when `T` has a required constructor.
|
|
160
|
+
- `Variants.X.Initialize()` runs `initialize`, then `overrides` and child
|
|
161
|
+
overrides. `ToVariant` runs `apply`, then `overrides` and child overrides; it
|
|
162
|
+
never reruns `initialize`. An instance remembers both: the variant that built
|
|
163
|
+
it and the variant last applied. The applied variant's overrides win where
|
|
164
|
+
they answer, `apply` writes stay as instance overrides, and
|
|
165
|
+
`ToVariant(Base)` removes the applied layer. On an object nested inside
|
|
166
|
+
another instance's construction, `ToVariant` applies the layers in place and
|
|
167
|
+
records nothing.
|
|
155
168
|
|
|
156
169
|
Folders are records too, declared as their own globals and assigned per
|
|
157
170
|
variant. Nesting is spelled in the path with `/`; intermediate segments are
|
|
@@ -129,7 +129,7 @@ wrappers.
|
|
|
129
129
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
130
130
|
|
|
131
131
|
```html
|
|
132
|
-
<!-- reviewed-through-cli: 0.
|
|
132
|
+
<!-- reviewed-through-cli: 0.81.1 -->
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
The quoted version above is checked too, so this instruction cannot go stale
|
|
@@ -35,8 +35,9 @@ names with readable ones. It keeps chosen names and rewrites references. Use
|
|
|
35
35
|
declaration file grouping already recorded by the workspace, while
|
|
36
36
|
declarations with no prior placement use the canonical per-declaration layout. Use `--force` only to discard local edits for the server
|
|
37
37
|
version. Normal pulls persist a transaction cursor and fetch only changed
|
|
38
|
-
records. Dictionary string keys, including Unicode,
|
|
39
|
-
|
|
38
|
+
records. Dictionary string keys, including Unicode, `_id`, `$name`, and `__proto__`,
|
|
39
|
+
round-trip through full and incremental reads. String keys may be empty or contain
|
|
40
|
+
whitespace; enum keys must name a live enum option. If the remote head is unchanged, pull preserves the local source
|
|
40
41
|
without compiling it; use `neo status` to inspect local edits and diagnostics.
|
|
41
42
|
Pull ignores records whose hashes already match the saved server baseline,
|
|
42
43
|
including echoes of this checkout's last push, and advances its cursor without
|
|
@@ -163,6 +163,10 @@ A static field that names another static copies a value, as in
|
|
|
163
163
|
`public static int B = Holder.A;`. A class, List, Set, or Dictionary static
|
|
164
164
|
already owns its value, so call `Clone()` or use `Reference`. A static delegate cannot copy another Class's delegate field,
|
|
165
165
|
because its closure compiles in its own Class; wrap it as `() => Other.Call()`.
|
|
166
|
+
Omitted constructor fields use their authored defaults, including optional fields.
|
|
167
|
+
Writable collection defaults belong to each instance; mutations persist on later
|
|
168
|
+
reads without changing another instance's default. Fields without defaults remain
|
|
169
|
+
absent, and `null` arguments in generated member-wise constructors mean omission.
|
|
166
170
|
Collection type arguments in constructions, such as `new Box<List<int>>([1, 2])`,
|
|
167
171
|
work even when no field declares that collection type. Preparation includes the
|
|
168
172
|
needed type descriptors; spec-only types remain in the test candidate.
|
|
@@ -278,11 +278,14 @@ rows stay reachable through the creation data that already named them.
|
|
|
278
278
|
|
|
279
279
|
Defaulted members may be added without recreating existing instances, including
|
|
280
280
|
instances whose sparse arguments are retained only as constructor data.
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
281
|
+
Source is authoritative for a construction: editing its constructor arguments,
|
|
282
|
+
including a static's, rebuilds the instance in place on push. The value keeps
|
|
283
|
+
its ID, rows at unchanged positions keep theirs, added entries create rows,
|
|
284
|
+
removed entries delete them, and the stored creation data records the new
|
|
285
|
+
arguments. Overrides the rebuilt construction no longer produces are deleted,
|
|
286
|
+
so keep them in the construction's `{ ... }` block. A construction whose class
|
|
287
|
+
changed fails with `construction-arguments-conflict`; delete and recreate the
|
|
288
|
+
value to change its class.
|
|
286
289
|
|
|
287
290
|
Write main-locale text directly in localizable string initializers. Pull/lower
|
|
288
291
|
retargets only the edited assignment. Equal primary-locale text on the same
|