init.luau
Versions
Every version of this package its world published, newest first by when it first appeared. A version published again later keeps its place.
the-garden: the garden takes light, and there are six of them lib.hedge_leaf writes a real PBR G-buffer, so pass:albedo and pass:final differ completely on every hedge, topiary, orchard and treeline surface and pass:roughness reports a value instead of magenta. Every foliage material is authored against a lit surface rather than an emitter, and the same hedge run with the sun behind it is visibly darker than with the sun on it. lib.garden_turf is new: the lawn is a lit surface whose mown bands wander instead of meeting along a ruler, with a clump register for the sward, a blade register so it does not go flat close up, and a wear register for the ground either side of the piste. Ten lawn materials moved onto it, each carrying its own roller width - 1.65m and almost no wander for the Major's parade ground, 7.5m and 3m of wander for a field mown twice a year. The stripe slabs and the stripe style fields are gone with it. Three more grounds and three more turnouts: Sixpenny Nursery, the Old Rectory and Gallows Piece, with Mr Quilty, the Revd. Brasenose and Young Tibb. Mrs Pettifer is a bottle-green bell under a wide pale brim now, because straw over straw against a player in whites is one figure and not two. The counter-fill is removed. A second directional light contributes nothing to the shaded result - the same frame at fill 0.0 and fill 8.0 is pixel-identical, filed as #8139 - so the shade side was always ambient alone, and the rig says so now: one key and one hemisphere, five moods re-solved on it, and the shadow re-arm hack that existed only to survive the second light went with it. The treeline stands at 44m instead of 31m in eleven irregular crowns, because a 9m crown at 31m is twenty degrees of backdrop before anything in the game is drawn. GardenDressing's repair loop runs twice a second instead of five times: 0.07ms a frame against 0.52ms.
01KZ372NV7DH0CWP4RMASZYA9V46ea9ea9ddBrowse filesCompare with previousCompare from heregarden-and-surfaces: four grounds, four turnouts, and a lawn that remembers Garden.build(style) + Garden.STYLES and Body.build(owner, role, kit) + Body.KITS ship four grounds and four turnouts for the same rite. Both are sticky per caller (DuelMatch and Fencer rebuild with no argument every restart) and an unknown name falls back to the standing one rather than erroring. - assize keeps the neutral ground; pettifer is blossom, orchard and bee skeps with cottages beyond the gates; wickham is cool clipped yew, pennants and poplars; ashcombe is dark ancient topiary, a peacock, stone terrace and the Hall standing at both ends. The plan, the piste and the dark band a fencer is read against never move - only palette, skyline and furniture. - Every turnout changes the SILHOUETTE, not just the palette: a brim, a shako, a coat to the ankle. The player is unchanged in every assize by construction. - The lawn is the score, so it carries the history: settled turf grown back, four fresh bays brightening toward the line, a spoil ring per recent post greening over with age, and a leading edge cut in three steps. - The back hedge was wearing a full aerial-perspective step six metres behind the fight. It rejoins the hedge family; the old values move to a treeline thirty-one metres out that ends the lawn in every direction. - Flat geometry is shelved ten millimetres apart, which is what the diagonal seam across the annexed lawn actually was. - The gate plates, the finial and the bell leave metallic behind, so they stop being black holes cut in a whitewashed pier. - The paling stops short of the line, so the boundary post the two fencers straddle reads as a post and not as a crate. - Every large surface re-authored under the bloom threshold, and turf and gravel given roughness values that are actually different.
01KZ22PG30NS2KVMFSR29P4P7Xfbe22d3204Browse filesCompare with previousCompare from hereplaytest r1: kill the phantom drivers, fix the placeholder ground and crushed lighting, frame against the fov the renderer actually uses
01KZ1XTYYQP5J2KZN165VEHBFA0dc1071bfeBrowse filesCompare with previousCompare from herefeel-and-sound: impact, camera reactions, and a synthesised sound bed DuelFx turns the umpire's verdicts into something you feel: recoil, shove and an outline flash on the struck fencer, follow-through on the striker, a contact bloom, a turf puff when the post goes in, and a hitstop that always releases. PisteCamera now frames by extent rather than by separation, so both fencers and the boundary post stay in shot at the nearest distance that covers them. A fencer reads 38% of frame height at measure, up from 31%, and 22% in the worst case, up from 18%. fx.module carries the event source over the umpire's bus (with a derivation that recovers the events its one slot coalesces), the shared easing, and an offline synthesiser. Twelve soundClips under /source/audio are rendered by it from sines, noise and envelopes: the assize bell, panel on panel, the touch, gravel underfoot, a tell for each of the four commitments, the riposte ring, the post going in, a whiff, and the garden's own nine-second loop.
01KZ1QGA2YS064KK74GP761Z9Y38bd3231a1Browse filesCompare with previousCompare from herebase: playable loop — the Hedgerow Assizes fence duel end to end Scene, both fencers, controls, camera, core loop and win/lose. Placeholder primitives and untuned numbers throughout. - duel.module — the rules in one file: ground plan, frame data for thrust / sweep / parry, the triangle (resolveTouch), and the placeholder palette. - Fencer.component — one combatant: builds its own primitive body, footwork locked to the piste, windup/active/recover state machine. The panel's pose per phase is the tell. role=player reads input; role=rival is driven by FencerAI through the same methods. - FencerAI.component — the neighbour: closes the measure, reads a wind-up after a reaction delay it cannot beat on a thrust, holds guard, takes its riposte. - DuelMatch.component — the umpire: builds the garden and the boundary fence, spawns the rival, resolves exchanges, plants a post, drives the line into the loser's garden, runs the salute, calls the match at either hedge. - DuelHud.component — the umpire's card. - PisteCamera.component — the locked side-on broadcast view, on the PlayerPrototype's CameraRig. - fencing_controls.inputMap — A/D footwork on the canonical move axis, J thrust, K sweep, L/Space parry, with touch buttons synthesised. The fence runs ALONG the piste and its leading post IS the property line, so the health bar is a physical fence growing across the lawn and the won ground brightens behind it. Validated in a running engine: two full matches to a player win driven with synthetic input, both terminal branches (player and rival) reached, parry into riposte into touch observed in play, clear-and-reload rebuilds the whole arena, scene.json holds exactly 11 entities, zero component errors. --- docs: describe the fencing_controls input map so the world is publishable
01KZ1K4VMBA2G5V2VE37X3QKQHeb84fe3bdcBrowse filesCompare from here