MAP PROP LINKS - STRUCTURE BLOCK QUICK GUIDE
=============================================

Put each marker in a Minecraft structure block's Structure Name field (LOAD
mode), click Done, save the world, then rebuild the map. Use one marker per
prop. The prop names below must be enabled in entities.csv.

There are TWO separate linking systems:

  _a1, _a2, etc. = action group (button/lever/plate -> one or more targets)
  _1, _2, etc.   = numbered instance or jump-pad/landing pair

You can combine them, e.g. prop_button_1_a1 and prop_gate_1_a1. Numbers alone
do NOT connect a button and a gate; both need the same _aN action group.
Group names are case-insensitive when entered and become A1, A2, etc.

BUTTON OPENS A GATE
-------------------
Place these two structure blocks:

  prop_button_a1       button the player presses
  prop_gate_a1         gate that receives the action

The compiler generates a native IncrementState action from the button to the
gate. For a second, independent pair use prop_button_a2 and prop_gate_a2.
For two gates opened by one button, give all three markers the same _a1.
Likewise, multiple controls in one group each target every non-control prop
in that group. A control with no target, or a target with no control, gets no
action link.

Supported control marker names: prop_button, prop_lever,
prop_pressure_plate. They can use _aN. The compiler treats every other
enabled prop with the same _aN as a target. Useful native target candidates
include prop_gate, prop_camp_door, prop_fortified_gate,
prop_large_barred_gate, prop_small_barred_gate, prop_illager_gate,
prop_outpost_gate, prop_vault_gate, prop_bridge, prop_small_bridge,
prop_secret_door_stone, prop_secret_door_bookshelf, prop_brazier, and
prop_illager_lift. These are available to spawn and link; their individual
animations/interaction results are not all verified in game. Test each type
before relying on it in a finished level. Static-mesh props may accept a
generated link but do not have native actor-state behavior.

Example layout:

  prop_pressure_plate_a3  ->  prop_camp_door_a3
  prop_lever_a4           ->  prop_bridge_a4

The ungrouped prop_button + prop_gate combination has an older automatic
one-button/one-gate fallback. Use explicit _aN groups for new maps, especially
when you have multiple copies. Do not use an ungrouped button to wire a
different door; the fallback prefers prop_gate, otherwise prop_brazier.

BOUNCE / JUMP PAD
-----------------
Place a pad and its destination marker:

  prop_jump_trap_1      at the launching point
  jump_landing_1       above the destination floor

For another pad, use prop_jump_trap_2 and jump_landing_2. The matching number
sets the pad's Destination to the landing marker's world position. The
jump_landing marker is only a target coordinate; it does not spawn a visible
prop. Put it over a safe landing area and allow room for the hero to land.
The build stops if a numbered pad has no matching numbered landing.

Unnumbered prop_jump_trap and jump_landing also work, but are paired in the
order the markers are read. Numbered pairs are safer on a large map. An _aN
suffix is NOT the pad destination system.

KEY GATE SET (EXPERIMENTAL)
---------------------------
Gold set:

  prop_keygate_gold
  prop_keygolem_lock
  prop_keygolem_spawner

Blue/silver set:

  prop_keygate_blue
  prop_keygolem_lock_silver
  prop_keygolem_spawner_silver

The compiler gives these native relation tags and configures lock-to-gate
and lock-to-spawner state links when a full set is present. Current code
selects one set / first instance by prop name, so do not expect multiple
independent key-gate puzzles from these markers yet. In-game behavior still
needs testing.

ALL ENABLED NATIVE PROP MARKERS
-------------------------------
This is the complete native-prop list in the current entities.csv (56 names).
Every name below can be placed as a structure-block marker. Only the three
controls listed first are treated as action-group SOURCES. Other names with
_aN become action TARGETS, but a generated link is not a promise of useful
gameplay. Test a target in game before building a puzzle around it.

Controls (action sources):
  prop_button, prop_lever, prop_pressure_plate

Doors, gates, and moving structures (action-target candidates):
  prop_gate, prop_bridge, prop_small_bridge, prop_camp_door,
  prop_fortified_gate, prop_large_barred_gate, prop_small_barred_gate,
  prop_illager_gate, prop_outpost_gate, prop_secret_door_bookshelf,
  prop_secret_door_stone, prop_secret_floor_stone, prop_vault_gate,
  prop_noteblock_door, prop_illager_lift, prop_roadblock,
  prop_sinking_platform, prop_hinged_platform

Triggers, traps, and other stateful actor candidates:
  prop_brazier, prop_box_trigger, prop_sphere_trigger,
  prop_falling_block, prop_falling_floor, prop_impaler,
  prop_pusher, prop_instant_pusher, prop_spin_blade_trap,
  prop_spin_flamethrower_trap, prop_breakable_stone_wall,
  prop_statue_switch, prop_piggybank

Special linked sets (use the dedicated instructions above):
  prop_jump_trap, prop_keygate_gold, prop_keygate_blue,
  prop_keygolem_lock, prop_keygolem_lock_silver,
  prop_keygolem_spawner, prop_keygolem_spawner_silver

Native scene actors / characters (placeable, not tested as puzzle targets):
  prop_cat_town, prop_cat, prop_ocelot, prop_villager,
  prop_villager_sitting, prop_villager_scared, prop_villager_baby,
  prop_villager_old, prop_villager_merchant,
  prop_villager_enchantsmith, prop_fireflies, prop_camp_embers,
  prop_dd_firepit, prop_dd_lightbeam, prop_spider_egg_glow

There are also 211 enabled static-mesh prop names in entities.csv, such as
prop_barrel, prop_lamppost, prop_door_spruce, and prop_3xgate_open. They can
be placed, but they are not native actor-state controls or functioning doors.
Do not use a static prop as a button/lever/plate puzzle target. entities.csv
is the complete searchable list of those decorative names.

NOTES AND LIMITS
----------------
Same-map teleport doors use one structure block per door in LOAD mode:
  door_1_2                 door 1 sends the player to door 2
  door_2_1                 door 2 sends the player to door 1
  door_3_1                 door 3 sends the player to door 1; no door must lead to 3
  door_camp_door_5_2       door 5 uses the camp-door prop and sends to door 2

The first number is a unique door ID; the second must be an existing door ID.
door_N_N uses the same visual as exit_door. A typed door uses its prop as the
visual, but the teleport interaction is still supplied by the compiler.
Supported types: gate, camp_door, fortified_gate, large_barred_gate,
small_barred_gate, illager_gate, outpost_gate, secret_door_stone,
secret_door_bookshelf. A standalone prop_camp_door has no teleport link.
Point each door marker toward a clear landing floor one block in front of it;
leave two blocks of headroom there. These same-map links are experimental and
still require an in-game interaction test.

* exit_door is the level's special exit marker, not a prop action target.
  Use a prop_* gate/door for a button puzzle. Only one exit_door is allowed.
* Native props are spawned as native actors. A generated link means the
  compiler connected actor-state actions; it does not prove that every
  target's state machine, animation, or collision works as desired.
* Leave floor and space around props, especially pads, doors, and moving
  targets. Rotate a structure block to rotate its prop.
* For the complete current prop catalog and each prop's enabled/native/static
  status, see entities.csv. For placement and CSV settings, see PROP_GUIDE.txt
  and ENTITIES_GUIDE.txt.
* Changing markers or entities.csv requires a rebuild. Restart the compiler
  after editing entities.csv, and install the new map with MCD II closed.
