Phase 0 stabilize: lifecycle-aware banner, RoomExplore location line, grounded crate + beacon, tamed beacon HDR

- The center-top phase banner read the CyclePhase label ("AT BASE") inside
  expedition rooms - now shows ON EXPEDITION whenever a run is past Staging.
- The location-line switch had no RoomExplore case, so "choose your boon"
  stuck through the whole loot window - added the portal-steer line.
- Storage crate floated 1u: GridOrigin.y=1 is the CC capsule-CENTER plane;
  CellToWorld returns it, and the crate's mesh pivot is at its base (Turret/
  Wall pivots are centered, which is why structures look grounded). The
  container now sits on the terrain; same grounding for the portal beacon,
  whose pos.y was the capsule plane too.
- Beacon HDR 2.6/3.4 bloomed into a white egg that swallowed the prompt -
  tamed to 1.2/1.55 + slimmed the pillar.

456/456 EditMode before and after; Play smoke: crate at y=0, banner correct
at Staging.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 12:26:19 -07:00
parent 274cf3b791
commit 7c1fee097e
3 changed files with 17 additions and 7 deletions
@@ -39,6 +39,10 @@ namespace ProjectM.Server
{
var container = ecb.Instantiate(spawner.Prefab);
var position = BaseGridMath.CellToWorld(anchor, spawner.Cell);
// Phase 0: the grid Y (GridOrigin.y=1) is the CC capsule-CENTER plane; center-pivot structure
// meshes look grounded there, but the crate's pivot is at its base -> it floated 1 u. Sit it on
// the terrain surface instead.
position.y = 0f;
// Preserve the prefab's baked scale/rotation (FromPosition would reset Scale to 1).
var xform = SystemAPI.GetComponent<LocalTransform>(spawner.Prefab);
xform.Position = position;