- Object layers: all shapes (rectangle/ellipse/point/polygon/polyline/text) and custom properties parse and are queryable — Tiled.object_count / Tiled.object / Tiled.object_shape, and Tiled.prop / prop_int / prop_type over any object / tile / layer / map. - Custom types: Tiled.load_types reads an objecttypes.xml project custom-type table so a class property resolves its default; enum values resolve as strings. - Templates: Tiled.template reads a .tx/.tj, and Tiled.load merges each object's `template` reference under the instance's overrides (field inheritance). - Opt-in spawning: Tiled.spawn / Tiled.spawn_layer map an object's class + properties onto Ludic components through the reflection ABI (Position from x/y, each property to a like-named field). Off by default — no gameplay coupling in the core load. Split into tiled_spawn.ludic, spliced only for a Tiled *game* (the world table exists only under has_ecs), so a plain map-reading tool never links against the reflection ABI. Proven by library/tiled_p4.ludic (18 assertions) incl. the design's named orthogonal-outside.tmx object shapes. x test: 95 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 lines
568 B
Markdown
14 lines
568 B
Markdown
---
|
|
id: tiled-spawn
|
|
name: Tiled.spawn
|
|
category: tiled
|
|
kind: namespace-method
|
|
tokens: Tiled.spawn
|
|
sig: Tiled.spawn(map, object, model: string) -> int
|
|
tip: Spawn a Ludic entity from an object.
|
|
order: 28
|
|
ns: Tiled
|
|
member: spawn
|
|
---
|
|
|
|
Opt-in: spawns an entity of <code>model</code> from an <code>object</code> — its <code>Position</code> (if the model has one) takes the object's x/y, and each object custom property sets a like-named int/bool component field through the reflection ABI. Returns the entity, or -1 if the model is unknown. The core load never calls this.
|