Fencing with Fences
README.md
GardenDressing
The morning. Everything about how the Hedgerow Assizes LOOK lives in this
component, so the look is part of the scene's behaviour and survives a reload
with no scene.json edit.
entity.find("DuelDirector").component.add("GardenDressing")
What it owns
- The sun.
sunAzimuth/sunElevationplace it; the component turns those into the direction the light travels and writes it through thelightingtoolbox. Setting the sun entity's rotation does nothing — the directional light's direction lives on the light, not on the transform. - The sky. The
ProceduralSkyon the scene'sskyentity: a saturated blue overhead falling to gold at the hedge line. - The ambient fill, warm-sky tinted and low enough that a hedge shadow is a hedge shadow.
- The tone curve: bloom, an ACES tonemap, a touch of contrast, and a
vignette. It explicitly REMOVES the
fogpreset, which tints the sky along with everything else and makes a bright garden read overcast whatever the sky is set to. Distance is done in the materials instead. - Keeping the garden built.
garden.moduleandfencer_body.moduleare the builders; this component notices when an arena, a fence or a body standing in the world was not built by them and rebuilds it, and poses both fencers every frame from their own live state. Every check is a marker lookup, so once every call site has moved to the modules this costs oneentity.findand returns. SetkeepBuilt = falseto switch it off.
Fields
| field | meaning |
|---|---|
sunAzimuth | degrees, measured from +X toward +Z |
sunElevation | degrees above the horizon — low, for long shadows |
sunIntensity | directional light strength |
ambientIntensity | sky fill; raise to lift the shadow side |
haze | how far the frame closes down at its edges |
keepBuilt | rebuild an arena/body that another builder put up |
rebuilds | how many arenas it has had to repair (diagnostic) |
lastLine | the property line the fence was last built for |
refreshLook() re-applies the whole look in one call.