@neocompose/cli 0.51.1 → 0.52.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/package.json
CHANGED
|
@@ -58,26 +58,43 @@ or `.Center`. To retain Line's old default, pass
|
|
|
58
58
|
|
|
59
59
|
## Tile placements
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
class. The named spelling `@tile(asset: VoidTile)` is equivalent; the asset is
|
|
63
|
-
required and only the argument label is optional.
|
|
61
|
+
A placement is an ordinary concrete `NeoTile` value with a `Cell`:
|
|
64
62
|
|
|
65
63
|
```neo
|
|
66
|
-
|
|
67
|
-
new NeoTileInstance() {
|
|
68
|
-
Cell = new(9, -4)
|
|
69
|
-
}
|
|
64
|
+
new GlassFloorTile { Cell = new(9, -4) }
|
|
70
65
|
```
|
|
71
66
|
|
|
72
|
-
|
|
73
|
-
`
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
67
|
+
Layer-link `Tiles` lists contain these values directly. `NeoTileInstance` and
|
|
68
|
+
`@tile(...)` are removed. A tile's `Name`, `Sprite`, and `SmartTile` are
|
|
69
|
+
`readonly` declaration members. Override them on a subclass; a placement
|
|
70
|
+
initializer cannot assign them. `Cell` is the placement's writable field.
|
|
71
|
+
|
|
72
|
+
Object `PlacementTiles` is a `List<NeoPlacementTile>`. Each entry marks a
|
|
73
|
+
footprint cell with its own `Cell` member. It is independent of `NeoTile`. Rendered
|
|
74
|
+
tile classes do not belong in this list.
|
|
75
|
+
|
|
76
|
+
Convert a writable placement without changing its row identity or cell:
|
|
77
|
+
|
|
78
|
+
```neo
|
|
79
|
+
tile.TryConvert<GlassFloorTile>();
|
|
80
|
+
tile.TryConvert(nextTile);
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The second form uses the target value's runtime class. It does not copy the
|
|
84
|
+
target's fields. Both forms return `false` when placement validation rejects
|
|
85
|
+
the new class. The grid's imports and compatible-layer relations still apply.
|
|
86
|
+
|
|
87
|
+
`Tiles.Add` and `Tiles.Remove` change placement data directly. The SDK validates
|
|
88
|
+
placement writes and updates live rendering from the resulting data changes,
|
|
89
|
+
including script writes and remote batches. For flattened SDK layers,
|
|
90
|
+
`TrySetTile<T>(cell)` remains available. Spawn objects with
|
|
91
|
+
`TrySpawn(cell, constructedObject)`; successful adoption preserves the object's
|
|
92
|
+
identity. Clone an existing owned object explicitly before placing another copy.
|
|
93
|
+
|
|
94
|
+
Use an object's real `ToVariant` API to apply a variant of its class. The
|
|
95
|
+
object inspector lists variants and their folders. Painting a different object
|
|
96
|
+
class replaces the placement with a new row; it does not change the old object's
|
|
97
|
+
class in place. The old `TrySwapVariant` class-swap APIs are removed.
|
|
81
98
|
|
|
82
99
|
## Object variants
|
|
83
100
|
|
|
@@ -275,10 +292,10 @@ opt-in and defaults to `false`; without it the ID is matched exactly. Missing
|
|
|
275
292
|
optional child slots are skipped with diagnostics when the authored slot is
|
|
276
293
|
absent, while stale pre-provenance placements may still fail closed.
|
|
277
294
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
295
|
+
Authored object placements can carry variant and source metadata beside their
|
|
296
|
+
schema keys. Preserve that metadata when editing the row; do not declare it as
|
|
297
|
+
project schema fields. Raw tile placements use their row class and `Cell`, with
|
|
298
|
+
no `assetClassId` or `assetValueId` sidecars.
|
|
282
299
|
|
|
283
300
|
## Segments and tracks
|
|
284
301
|
|
|
@@ -90,7 +90,7 @@ wrappers.
|
|
|
90
90
|
The marker near the top of `SKILL.md` must exactly match the package version:
|
|
91
91
|
|
|
92
92
|
```html
|
|
93
|
-
<!-- reviewed-through-cli: 0.
|
|
93
|
+
<!-- reviewed-through-cli: 0.52.0 -->
|
|
94
94
|
```
|
|
95
95
|
|
|
96
96
|
The quoted version above is checked too, so this instruction cannot go stale
|