Build cargo item details directly
This commit is contained in:
parent
cf09a33731
commit
3be8e8fb31
3 changed files with 42 additions and 18 deletions
|
|
@ -5227,8 +5227,9 @@ static void RequireInventoryCargoItemDetailsUseEveSurface(string root)
|
|||
"HandleCargoItemDetailsSurfaceCommand(",
|
||||
"AetheriaEveUnitySurfaceHost.RenderRuntime(",
|
||||
"AetheriaEveUnitySurfaceHost.Hide(_cargoItemDetailsSurfaceDocument)",
|
||||
"AetheriaRuntimeCargoItemDetailsSurfaceBuilder.Build(ComposeCargoItemDetailsSurface(",
|
||||
"AetheriaRuntimeCargoItemDetailsSurfaceBuilder.Compose(",
|
||||
"AetheriaRuntimeCargoItemDetailsSurfaceBuilder.Build(",
|
||||
"ResolveManufacturerName(typedItem)",
|
||||
"FormatItemTier(typedItem, equippableItem)",
|
||||
"ComposeCargoItemObservation(",
|
||||
"AetheriaRuntimeCargoItemDetailsSurfaceCommands.TryRead(request, out var command)",
|
||||
"AetheriaRuntimeCargoItemDetailsCommandKind.Close"
|
||||
|
|
@ -5319,6 +5320,7 @@ static void RequireInventoryCargoItemDetailsUseEveSurface(string root)
|
|||
"host.AddComponent<UIDocument>",
|
||||
"string.Equals(request.Command, AetheriaRuntimeCargoItemDetailsSurfaceBuilder.Close",
|
||||
"new AetheriaRuntimeCargoItemDetailsSurfaceState(",
|
||||
"ComposeCargoItemDetailsSurface(",
|
||||
"ProjectCargoItemDetailsSurfaceState(",
|
||||
"ProjectCargoItemBehaviorSections(",
|
||||
"ProjectCargoItemBehaviorMetric(",
|
||||
|
|
@ -5349,7 +5351,7 @@ static void RequireInventoryCargoItemDetailsUseEveSurface(string root)
|
|||
"AetheriaRuntimeCargoItemObservation",
|
||||
"AetheriaRuntimeCargoItemSection",
|
||||
"AetheriaRuntimeCargoItemMetric",
|
||||
"public static AetheriaRuntimeCargoItemDetailsSurfaceState Compose(",
|
||||
"private static AetheriaRuntimeCargoItemDetailsSurfaceState ComposeState(",
|
||||
"ProjectBehaviorSections(",
|
||||
"ProjectBehaviorMetric(",
|
||||
"public static AetheriaRuntimeSurfaceDocument Build("
|
||||
|
|
@ -5363,6 +5365,13 @@ static void RequireInventoryCargoItemDetailsUseEveSurface(string root)
|
|||
"Shared cargo-item detail surface builder no longer owns the cargo inspection contract: " +
|
||||
string.Join(", ", missingBuilderSymbols));
|
||||
}
|
||||
|
||||
if (cargoItemSurfaceBuilder.Contains("public static AetheriaRuntimeCargoItemDetailsSurfaceState Compose(", StringComparison.Ordinal) ||
|
||||
cargoItemSurfaceBuilder.Contains("public static AetheriaRuntimeCargoItemDetailsSurfaceState Project(", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"Runtime cargo item detail composition must stay behind Build(...); do not re-expose Compose/Project as the public cargo item details surface path.");
|
||||
}
|
||||
}
|
||||
|
||||
static void RequireInventoryEquippedItemDetailsUseEveSurface(string root)
|
||||
|
|
|
|||
|
|
@ -284,7 +284,13 @@ public class InventoryMenu : MonoBehaviour
|
|||
transform,
|
||||
_cargoItemDetailsSurfaceDocument,
|
||||
"Aetheria Inventory Cargo Item Details Surface",
|
||||
AetheriaRuntimeCargoItemDetailsSurfaceBuilder.Build(ComposeCargoItemDetailsSurface(item, typedItem)),
|
||||
AetheriaRuntimeCargoItemDetailsSurfaceBuilder.Build(
|
||||
typedItem,
|
||||
ComposeCargoItemObservation(item),
|
||||
ResolveManufacturerName(typedItem),
|
||||
item is EquippableItem equippableItem ? FormatItemTier(typedItem, equippableItem) : "",
|
||||
FormatValue,
|
||||
FormatTemperature),
|
||||
HandleCargoItemDetailsSurfaceCommand,
|
||||
_cargoItemDetailsSurfaceChrome,
|
||||
sortingOrder: 1001);
|
||||
|
|
@ -468,19 +474,6 @@ public class InventoryMenu : MonoBehaviour
|
|||
("group", groupIndex.ToString(CultureInfo.InvariantCulture)))));
|
||||
}
|
||||
|
||||
private AetheriaRuntimeCargoItemDetailsSurfaceState ComposeCargoItemDetailsSurface(
|
||||
ItemInstance item,
|
||||
AetheriaRuntimeCatalogItem typedItem)
|
||||
{
|
||||
return AetheriaRuntimeCargoItemDetailsSurfaceBuilder.Compose(
|
||||
typedItem,
|
||||
ComposeCargoItemObservation(item),
|
||||
ResolveManufacturerName(typedItem),
|
||||
item is EquippableItem equippableItem ? FormatItemTier(typedItem, equippableItem) : "",
|
||||
FormatValue,
|
||||
FormatTemperature);
|
||||
}
|
||||
|
||||
private static AetheriaRuntimeCargoItemObservation ComposeCargoItemObservation(ItemInstance item)
|
||||
{
|
||||
var equippableItem = item as EquippableItem;
|
||||
|
|
|
|||
|
|
@ -118,7 +118,29 @@ namespace GameCult.Aetheria.State.Verse
|
|||
public const string SurfaceId = "aetheria.inventory.cargo_item_details";
|
||||
public const string Close = "aetheria.inventory.cargo_item_details.close";
|
||||
|
||||
public static AetheriaRuntimeCargoItemDetailsSurfaceState Compose(
|
||||
public static AetheriaRuntimeSurfaceDocument Build(
|
||||
AetheriaRuntimeCatalogItem typedItem,
|
||||
AetheriaRuntimeCargoItemObservation item,
|
||||
string manufacturer,
|
||||
string tier,
|
||||
Func<float, string> formatValue,
|
||||
Func<float, string> formatTemperature,
|
||||
DateTime updatedAtUtc = default(DateTime),
|
||||
long version = 1)
|
||||
{
|
||||
return Build(
|
||||
ComposeState(
|
||||
typedItem,
|
||||
item,
|
||||
manufacturer,
|
||||
tier,
|
||||
formatValue,
|
||||
formatTemperature,
|
||||
updatedAtUtc),
|
||||
version);
|
||||
}
|
||||
|
||||
private static AetheriaRuntimeCargoItemDetailsSurfaceState ComposeState(
|
||||
AetheriaRuntimeCatalogItem typedItem,
|
||||
AetheriaRuntimeCargoItemObservation item,
|
||||
string manufacturer,
|
||||
|
|
|
|||
Loading…
Reference in a new issue