@neocompose/cli 0.48.3 → 0.50.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/CHANGELOG.md +12 -0
- package/dist/neo.mjs +922 -359
- package/package.json +1 -1
- package/skills/neocompose-cli/SKILL.md +1 -1
- package/skills/neocompose-cli/references/animation-and-world-authoring.md +23 -0
- package/skills/neocompose-cli/references/cli-development.md +1 -1
- package/skills/neocompose-cli/references/values-identities-and-references.md +8 -5
package/package.json
CHANGED
|
@@ -24,6 +24,29 @@ For world layer links, derive a concrete project class from
|
|
|
24
24
|
`targetLayer` relation. Do not add value-level target metadata or ask painting
|
|
25
25
|
operations to create/repair relation targets.
|
|
26
26
|
|
|
27
|
+
## Tile placements
|
|
28
|
+
|
|
29
|
+
Use `@tile(VoidTile)` on a `NeoTileInstance` construction to select its tile
|
|
30
|
+
class. The named spelling `@tile(asset: VoidTile)` is equivalent; the asset is
|
|
31
|
+
required and only the argument label is optional.
|
|
32
|
+
|
|
33
|
+
```neo
|
|
34
|
+
@tile(VoidTile)
|
|
35
|
+
new NeoTileInstance() {
|
|
36
|
+
Cell = new(9, -4)
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Pull emits the positional spelling. The annotation writes the placement's
|
|
41
|
+
`assetClassId` metadata and does not construct a tile value or add a generic
|
|
42
|
+
argument. The asset must be a concrete, non-generic descendant of `NeoTile`.
|
|
43
|
+
Use the annotation on persisted literal constructions; executable NeoScript
|
|
44
|
+
and evaluated placement constructors reject it.
|
|
45
|
+
The grid's imports and the tile's compatible-layer relations still constrain
|
|
46
|
+
where the placement can be used. Existing placement overrides remain attached
|
|
47
|
+
when the selected asset is unchanged; recreate a placement to change its asset
|
|
48
|
+
when it has overrides or a variant.
|
|
49
|
+
|
|
27
50
|
## Object variants
|
|
28
51
|
|
|
29
52
|
A variant is a named configuration of one `NeoObject`-derived class: how to
|
|
@@ -88,7 +88,7 @@ wrappers.
|
|
|
88
88
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
89
89
|
|
|
90
90
|
```html
|
|
91
|
-
<!-- reviewed-through-cli: 0.
|
|
91
|
+
<!-- reviewed-through-cli: 0.50.0 -->
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
The quoted version above is checked too, so this instruction cannot go stale
|
|
@@ -136,11 +136,14 @@ member creates a sparse override with its deterministic projected ID; removing
|
|
|
136
136
|
that member from an existing initializer resets the override and resumes source
|
|
137
137
|
tracking. Require either transition to appear in `neo diff`.
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
139
|
+
Generic arguments specify types, not default values. A required generic member
|
|
140
|
+
must be supplied at construction unless its member declaration or an inherited
|
|
141
|
+
member declaration supplies a default. Missing required members are compile
|
|
142
|
+
errors. Pull preserves incomplete stored objects for repair; add the missing
|
|
143
|
+
initializer or declare the intended member default before testing or pushing.
|
|
144
|
+
An override without a local initializer inherits an available base member
|
|
145
|
+
default, including when its stored `defaultValue` carrier is null. An explicit
|
|
146
|
+
`= null` initializer is a literal nullable default, not an inheritance marker.
|
|
144
147
|
|
|
145
148
|
Editing an initializer updates sparse override rows in place: projected member
|
|
146
149
|
IDs remain stable, and omitted virtual rows are never emitted as authored seed
|