feat(ui): port retained widget foundations
This commit is contained in:
parent
44f9ec13d9
commit
d825572e31
44 changed files with 84813 additions and 292 deletions
63
src/AcDream.App/UI/IUiDatStateful.cs
Normal file
63
src/AcDream.App/UI/IUiDatStateful.cs
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
namespace AcDream.App.UI;
|
||||
|
||||
/// <summary>
|
||||
/// Narrow numeric-state bridge for widgets imported from retail LayoutDesc data.
|
||||
/// Controllers use retail state ids without knowing how names/media are stored.
|
||||
/// </summary>
|
||||
public interface IUiDatStateful
|
||||
{
|
||||
uint ActiveRetailStateId { get; }
|
||||
bool TrySetRetailState(uint stateId);
|
||||
}
|
||||
|
||||
public static class RetailUiStateIds
|
||||
{
|
||||
public const uint Closed = 11u;
|
||||
public const uint Open = 12u;
|
||||
public const uint HideDetail = 0x10000006u;
|
||||
public const uint ShowDetail = 0x10000007u;
|
||||
public const uint ObjectSelected = 0x1000000Bu;
|
||||
public const uint StackedItemSelected = 0x1000000Cu;
|
||||
public const uint ItemSlotEmpty = 0x1000001Cu;
|
||||
public const uint Maximized = 0x10000047u;
|
||||
public const uint Minimized = 0x10000048u;
|
||||
public const uint LockedUi = 0x10000063u;
|
||||
public const uint UnlockedUi = 0x10000064u;
|
||||
|
||||
public static string StateName(uint stateId)
|
||||
=> stateId switch
|
||||
{
|
||||
Closed => "Closed",
|
||||
Open => "Open",
|
||||
HideDetail => "HideDetail",
|
||||
ShowDetail => "ShowDetail",
|
||||
ObjectSelected => "ObjectSelected",
|
||||
StackedItemSelected => "StackedItemSelected",
|
||||
ItemSlotEmpty => "ItemSlot_Empty",
|
||||
Maximized => "Maximized",
|
||||
Minimized => "Minimized",
|
||||
LockedUi => "LockedUI",
|
||||
UnlockedUi => "UnlockedUI",
|
||||
_ => "",
|
||||
};
|
||||
|
||||
public static bool TryStateId(string stateName, out uint stateId)
|
||||
{
|
||||
stateId = stateName switch
|
||||
{
|
||||
"Closed" => Closed,
|
||||
"Open" => Open,
|
||||
"HideDetail" => HideDetail,
|
||||
"ShowDetail" => ShowDetail,
|
||||
"ObjectSelected" => ObjectSelected,
|
||||
"StackedItemSelected" => StackedItemSelected,
|
||||
"ItemSlot_Empty" => ItemSlotEmpty,
|
||||
"Maximized" => Maximized,
|
||||
"Minimized" => Minimized,
|
||||
"LockedUI" => LockedUi,
|
||||
"UnlockedUI" => UnlockedUi,
|
||||
_ => 0u,
|
||||
};
|
||||
return stateId != 0;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue