feat(ui): port retail jump power bar
Import gmFloatyPowerBarUI LayoutDesc 0x21000072, teach the meter factory its stateful single-image shape, and project the movement-owned retail jump charge through a focused retained controller. Preserve authored resize constraints and state-managed visibility, with named-decomp pseudocode plus controller, movement, and production-DAT conformance coverage. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
27619b2328
commit
db03b4bda8
18 changed files with 3045 additions and 10 deletions
|
|
@ -313,6 +313,37 @@ public class DatWidgetFactoryTests
|
|||
Assert.Equal(0u, m.FrontRight);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void BuildMeter_StatefulSingleImageShape_MapsNumericFillStatesAndHidesDirectRange()
|
||||
{
|
||||
const uint TrackFile = 0x06004D0Bu;
|
||||
const uint JumpState = 0x10000042u;
|
||||
const uint JumpFile = 0x06001354u;
|
||||
const uint RangeFile = 0x0600715Eu;
|
||||
|
||||
var meter = new ElementInfo { Type = 7, Id = 0x10000034u, Width = 600, Height = 15 };
|
||||
meter.StateMedia[""] = (TrackFile, 1);
|
||||
|
||||
var fills = new ElementInfo { Type = 3, Id = 2u, ReadOrder = 2 };
|
||||
fills.States[JumpState] = new UiStateInfo { Id = JumpState, Name = "JumpMode" };
|
||||
fills.StateMedia["JumpMode"] = (JumpFile, 1);
|
||||
meter.Children.Add(fills);
|
||||
|
||||
var range = new ElementInfo { Type = 3, Id = 0x100005EEu, ReadOrder = 1 };
|
||||
range.StateMedia[""] = (RangeFile, 1);
|
||||
meter.Children.Add(range);
|
||||
|
||||
var result = Assert.IsType<UiMeter>(DatWidgetFactory.Create(meter, NoTex, null));
|
||||
|
||||
Assert.Equal(TrackFile, result.BackTile);
|
||||
Assert.Equal(0u, result.FrontTile);
|
||||
Assert.True(result.TrySetRetailState(JumpState));
|
||||
Assert.Equal(JumpState, result.ActiveRetailStateId);
|
||||
Assert.Equal(JumpFile, result.FrontTile);
|
||||
Assert.NotEqual(RangeFile, result.BackTile);
|
||||
Assert.NotEqual(RangeFile, result.FrontTile);
|
||||
}
|
||||
|
||||
// ── Test 6: Meter slice extraction (the important one) ───────────────────
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue