Add named current typed state accessors
This commit is contained in:
parent
67c1b3d689
commit
06a3f8dab2
4 changed files with 170 additions and 19 deletions
|
|
@ -7621,12 +7621,11 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
"ActionBarSlot.cs"));
|
||||
var requiredActionBarSymbols = new[]
|
||||
{
|
||||
"public abstract class ActionBarBinding : IDisposable",
|
||||
"CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog",
|
||||
"public abstract class ActionBarBinding",
|
||||
"AetheriaUnityRuntimeClientProvider",
|
||||
".ReactiveCatalogSnapshot(\"unity-action-bar\")",
|
||||
"_catalog?.Current?.FindItem(item, x => x.ItemKey)",
|
||||
"binding?.Dispose()",
|
||||
".RuntimeState()",
|
||||
".CurrentCatalog()",
|
||||
".FindItem(item, x => x.ItemKey)",
|
||||
"private void OnDestroy()"
|
||||
};
|
||||
var missingActionBarSymbols = requiredActionBarSymbols
|
||||
|
|
@ -7640,11 +7639,16 @@ static void RequireUnitySharedDocumentAccessorErgonomics(string root)
|
|||
}
|
||||
|
||||
if (actionBarSlot.Contains("AetheriaRuntimeCatalogSession _catalog", StringComparison.Ordinal) ||
|
||||
actionBarSlot.Contains("CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog", StringComparison.Ordinal) ||
|
||||
actionBarSlot.Contains(".ReactiveCatalogSnapshot(\"unity-action-bar\")", StringComparison.Ordinal) ||
|
||||
actionBarSlot.Contains("_catalog?.Current?.FindItem", StringComparison.Ordinal) ||
|
||||
actionBarSlot.Contains("binding?.Dispose()", StringComparison.Ordinal) ||
|
||||
actionBarSlot.Contains("public virtual void Dispose()", StringComparison.Ordinal) ||
|
||||
actionBarSlot.Contains("Client.State.ObserveCatalog()", StringComparison.Ordinal) ||
|
||||
actionBarSlot.Contains("Client.State.ReactiveCatalogSnapshot()", StringComparison.Ordinal))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"ActionBarSlot still routes through client/session catalog plumbing instead of its managed reactive typed catalog document.");
|
||||
"ActionBarSlot still routes through client/session/reactive catalog plumbing instead of reading the named current catalog from typed client state.");
|
||||
}
|
||||
|
||||
var schematicDisplay = File.ReadAllText(Path.Combine(
|
||||
|
|
@ -8408,55 +8412,79 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
"public CultMeshDocumentHandle<AetheriaRuntimeVerseAuthorityPolicyDocument> AuthorityPolicy { get; }",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeVerseAuthorityPolicyDocument> ReactiveAuthorityPolicy()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeDaemonFrameDocument> DaemonFrame { get; }",
|
||||
"public AetheriaRuntimeDaemonFrameDocument CurrentDaemonFrame()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument> ReactiveDaemonFrame()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeDaemonSoaViewDocument> DaemonSoaView { get; }",
|
||||
"public AetheriaRuntimeDaemonSoaViewDocument CurrentDaemonSoaView()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeDaemonSoaViewDocument> ReactiveDaemonSoaView()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeZoneRenderDocument> ZoneRender { get; }",
|
||||
"public AetheriaRuntimeZoneRenderDocument CurrentZoneRender()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeZoneRenderDocument> ReactiveZoneRender()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeLoadoutTemplatesDocument> LoadoutTemplates { get; }",
|
||||
"public AetheriaRuntimeLoadoutTemplatesDocument CurrentLoadoutTemplates()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeLoadoutTemplatesDocument> ReactiveLoadoutTemplates()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeSectorMapDocument> SectorMap { get; }",
|
||||
"public AetheriaRuntimeSectorMapDocument CurrentSectorMap()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeSectorMapDocument> ReactiveSectorMap()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeCurrentZoneDocument> CurrentZone { get; }",
|
||||
"public AetheriaRuntimeCurrentZoneDocument CurrentZoneState()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeCurrentZoneDocument> ReactiveCurrentZone()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeZoneContactsDocument> ZoneContacts { get; }",
|
||||
"public AetheriaRuntimeZoneContactsDocument CurrentZoneContacts()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeZoneContactsDocument> ReactiveZoneContacts()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeVerseHostSettingsDocument> VerseHostSettings { get; }",
|
||||
"public AetheriaRuntimeVerseHostSettingsDocument CurrentVerseHostSettings()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeVerseHostSettingsDocument> ReactiveVerseHostSettings()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeCurrentDockingDocument> CurrentDocking { get; }",
|
||||
"public AetheriaRuntimeCurrentDockingDocument CurrentDockingState()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeCurrentDockingDocument> ReactiveCurrentDocking()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeCurrentEntityDocument> CurrentEntity { get; }",
|
||||
"public AetheriaRuntimeCurrentEntityDocument CurrentEntityState()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeCurrentEntityDocument> ReactiveCurrentEntity()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeStationRefitDocument> StationRefit { get; }",
|
||||
"public AetheriaRuntimeStationRefitDocument CurrentStationRefit()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeStationRefitDocument> ReactiveStationRefit()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeCatalogSnapshot> Catalog { get; }",
|
||||
"public AetheriaRuntimeCatalogSnapshot CurrentCatalog()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> ReactiveCatalogSnapshot()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimePlayerSettingsDocument> PlayerSettings { get; }",
|
||||
"public AetheriaRuntimePlayerSettingsDocument CurrentPlayerSettings()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimePlayerSettingsDocument> ReactivePlayerSettingsDocument()",
|
||||
"public static bool TryResolveEveSurface(",
|
||||
"public CultMeshDocumentHandle<global::Aetheria.State.Documents.EveSurfaceState>? EveSurfaceDocument(",
|
||||
"public CultMeshReactiveDocument<global::Aetheria.State.Documents.EveSurfaceState>? ReactiveEveSurface(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeRtsViewportDocument> RtsViewport(",
|
||||
"public AetheriaRuntimeRtsViewportDocument CurrentRtsViewport(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeRtsViewportDocument> ReactiveRtsViewport(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeObjectsViewportDocument> ObjectsViewport(",
|
||||
"public AetheriaRuntimeObjectsViewportDocument CurrentObjectsViewport(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeObjectsViewportDocument> ReactiveObjectsViewport(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeGravityViewportDocument> GravityViewport(",
|
||||
"public AetheriaRuntimeGravityViewportDocument CurrentGravityViewport(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeGravityViewportDocument> ReactiveGravityViewport(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeRenderSplatsViewportDocument> RenderSplatsViewport(",
|
||||
"public AetheriaRuntimeRenderSplatsViewportDocument CurrentRenderSplatsViewport(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeRenderSplatsViewportDocument> ReactiveRenderSplatsViewport(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeZoneDetailsDocument> ZoneDetails(",
|
||||
"public AetheriaRuntimeZoneDetailsDocument CurrentZoneDetails(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeZoneDetailsDocument> ReactiveZoneDetails(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeSelectedObjectDocument> SelectedObject(",
|
||||
"public AetheriaRuntimeSelectedObjectDocument CurrentSelectedObject(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeSelectedObjectDocument> ReactiveSelectedObject(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeInventoryDocument> Inventory(",
|
||||
"public AetheriaRuntimeInventoryDocument CurrentInventory(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeInventoryDocument> ReactiveInventory(",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeStarbridgeScenarioDocument> StarbridgeScenario { get; }",
|
||||
"public AetheriaRuntimeStarbridgeScenarioDocument CurrentStarbridgeScenario()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeStarbridgeScenarioDocument> ReactiveStarbridgeScenario()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeStarbridgeSessionDocument> StarbridgeSession { get; }",
|
||||
"public AetheriaRuntimeStarbridgeSessionDocument CurrentStarbridgeSession()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeStarbridgeSessionDocument> ReactiveStarbridgeSession()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeStarbridgeSessionSummaryDocument> StarbridgeSummary { get; }",
|
||||
"public AetheriaRuntimeStarbridgeSessionSummaryDocument CurrentStarbridgeSummary()",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeStarbridgeSessionSummaryDocument> ReactiveStarbridgeSummary()",
|
||||
"public CultMeshDocumentHandle<AetheriaRuntimeStarbridgePlayerSeatDocument> StarbridgePlayerSeat(",
|
||||
"public AetheriaRuntimeStarbridgePlayerSeatDocument CurrentStarbridgePlayerSeat(",
|
||||
"public CultMeshReactiveDocument<AetheriaRuntimeStarbridgePlayerSeatDocument> ReactiveStarbridgePlayerSeat("
|
||||
};
|
||||
var missingClientSymbols = requiredClientSymbols
|
||||
|
|
@ -8471,6 +8499,7 @@ static void RequireAetheriaManagedStateAccessorsCoverDomainDocuments(string root
|
|||
|
||||
if (clientState.Contains("public Task<TDocument> LatestAsync<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public TDocument Latest<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public TDocument Current<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public CultMeshDocumentHandle<TDocument> Document<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("public CultMeshReactiveDocument<TDocument> Reactive<TDocument>", StringComparison.Ordinal) ||
|
||||
clientState.Contains("TryGetDocument<TDocument>", StringComparison.Ordinal) ||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using GameCult.Aetheria.State.Verse;
|
||||
using GameCult.Mesh;
|
||||
using TMPro;
|
||||
using UniRx.Triggers;
|
||||
using UnityEngine;
|
||||
|
|
@ -28,7 +27,6 @@ public class ActionBarSlot : MonoBehaviour
|
|||
if (ReferenceEquals(binding, value))
|
||||
return;
|
||||
|
||||
binding?.Dispose();
|
||||
binding = value;
|
||||
if (binding == null)
|
||||
{
|
||||
|
|
@ -52,13 +50,12 @@ public class ActionBarSlot : MonoBehaviour
|
|||
|
||||
}
|
||||
|
||||
public abstract class ActionBarBinding : IDisposable
|
||||
public abstract class ActionBarBinding
|
||||
{
|
||||
public Entity Entity { get; }
|
||||
private readonly Func<AetheriaControl> _resolveControl;
|
||||
protected ActionBarSlot Slot { get; }
|
||||
protected GameSettings Settings { get; }
|
||||
private CultMeshReactiveDocument<AetheriaRuntimeCatalogSnapshot> _catalog;
|
||||
public abstract void Activate();
|
||||
public abstract void Deactivate();
|
||||
public abstract void Update();
|
||||
|
|
@ -100,9 +97,10 @@ public abstract class ActionBarBinding : IDisposable
|
|||
{
|
||||
try
|
||||
{
|
||||
_catalog ??= AetheriaUnityRuntimeClientProvider
|
||||
.ReactiveCatalogSnapshot("unity-action-bar");
|
||||
return _catalog?.Current?.FindItem(item, x => x.ItemKey);
|
||||
return AetheriaUnityRuntimeClientProvider
|
||||
.RuntimeState()
|
||||
.CurrentCatalog()
|
||||
.FindItem(item, x => x.ItemKey);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
@ -110,12 +108,6 @@ public abstract class ActionBarBinding : IDisposable
|
|||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void Dispose()
|
||||
{
|
||||
_catalog?.Dispose();
|
||||
_catalog = null;
|
||||
}
|
||||
}
|
||||
|
||||
public class ActionBarConsumableBinding : ActionBarBinding
|
||||
|
|
|
|||
|
|
@ -188,6 +188,11 @@ public class DaemonRuntimeDocumentTests
|
|||
MaxX = 100,
|
||||
MaxY = 100
|
||||
};
|
||||
var currentCatalog = client.State.CurrentCatalog();
|
||||
var currentPlayerSettings = client.State.CurrentPlayerSettings();
|
||||
var currentFrame = client.State.CurrentDaemonFrame();
|
||||
var currentEntityState = client.State.CurrentEntityState();
|
||||
var currentObjectsViewport = client.State.CurrentObjectsViewport(viewport);
|
||||
var objectsViewport = ReadLatest(client.State.ObjectsViewport(viewport));
|
||||
var zoneDetails = ReadLatest(client.State.ZoneDetails(0));
|
||||
var inventory = ReadLatest(client.State.Inventory(0));
|
||||
|
|
@ -288,6 +293,11 @@ public class DaemonRuntimeDocumentTests
|
|||
Assert.AreEqual(AetheriaRuntimeCatalogSnapshot.SchemaId, client.State.Catalog.Sources.Last().SchemaId);
|
||||
Assert.GreaterOrEqual(catalog.Items.Count, 0);
|
||||
Assert.AreEqual(AetheriaRuntimePlayerSettingsDocument.SchemaId, playerSettings.Schema);
|
||||
Assert.AreSame(catalog, currentCatalog);
|
||||
Assert.AreEqual(playerSettings.Schema, currentPlayerSettings.Schema);
|
||||
Assert.AreEqual(latestFrame.FrameId, currentFrame.FrameId);
|
||||
Assert.AreEqual(currentEntity.EntityKey, currentEntityState.EntityKey);
|
||||
Assert.AreEqual(objectsViewport.Schema, currentObjectsViewport.Schema);
|
||||
Assert.AreSame(catalog, catalogReactive.Current);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonSchemas.Frame, daemonFrameReactive.Current.Schema);
|
||||
Assert.AreEqual(AetheriaRuntimeDaemonSchemas.SoaView, daemonSoaViewReactive.Current.Schema);
|
||||
|
|
|
|||
|
|
@ -126,12 +126,32 @@ namespace GameCult.Aetheria.State.Verse
|
|||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeDaemonFrameDocument> DaemonFrame { get; }
|
||||
|
||||
public AetheriaRuntimeDaemonFrameDocument CurrentDaemonFrame()
|
||||
{
|
||||
return DaemonFrame.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeDaemonSoaViewDocument> DaemonSoaView { get; }
|
||||
|
||||
public AetheriaRuntimeDaemonSoaViewDocument CurrentDaemonSoaView()
|
||||
{
|
||||
return DaemonSoaView.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeCatalogSnapshot> Catalog { get; }
|
||||
|
||||
public AetheriaRuntimeCatalogSnapshot CurrentCatalog()
|
||||
{
|
||||
return Catalog.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeLoadoutTemplatesDocument> LoadoutTemplates { get; }
|
||||
|
||||
public AetheriaRuntimeLoadoutTemplatesDocument CurrentLoadoutTemplates()
|
||||
{
|
||||
return LoadoutTemplates.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<global::Aetheria.State.Documents.EveSurfaceState> GameSurface { get; }
|
||||
|
||||
public CultMeshDocumentHandle<global::Aetheria.State.Documents.EveSurfaceState> GameTuiSurface { get; }
|
||||
|
|
@ -142,16 +162,46 @@ namespace GameCult.Aetheria.State.Verse
|
|||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimePlayerSettingsDocument> PlayerSettings { get; }
|
||||
|
||||
public AetheriaRuntimePlayerSettingsDocument CurrentPlayerSettings()
|
||||
{
|
||||
return PlayerSettings.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeVerseHostSettingsDocument> VerseHostSettings { get; }
|
||||
|
||||
public AetheriaRuntimeVerseHostSettingsDocument CurrentVerseHostSettings()
|
||||
{
|
||||
return VerseHostSettings.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeCurrentZoneDocument> CurrentZone { get; }
|
||||
|
||||
public AetheriaRuntimeCurrentZoneDocument CurrentZoneState()
|
||||
{
|
||||
return CurrentZone.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeCurrentEntityDocument> CurrentEntity { get; }
|
||||
|
||||
public AetheriaRuntimeCurrentEntityDocument CurrentEntityState()
|
||||
{
|
||||
return CurrentEntity.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeCurrentDockingDocument> CurrentDocking { get; }
|
||||
|
||||
public AetheriaRuntimeCurrentDockingDocument CurrentDockingState()
|
||||
{
|
||||
return CurrentDocking.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeStarbridgeScenarioDocument> StarbridgeScenario { get; }
|
||||
|
||||
public AetheriaRuntimeStarbridgeScenarioDocument CurrentStarbridgeScenario()
|
||||
{
|
||||
return StarbridgeScenario.Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeStarbridgeScenarioDocument> ReactiveStarbridgeScenario()
|
||||
{
|
||||
return StarbridgeScenario.Reactive();
|
||||
|
|
@ -159,6 +209,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeStarbridgeSessionDocument> StarbridgeSession { get; }
|
||||
|
||||
public AetheriaRuntimeStarbridgeSessionDocument CurrentStarbridgeSession()
|
||||
{
|
||||
return StarbridgeSession.Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeStarbridgeSessionDocument> ReactiveStarbridgeSession()
|
||||
{
|
||||
return StarbridgeSession.Reactive();
|
||||
|
|
@ -166,6 +221,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeStarbridgeSessionSummaryDocument> StarbridgeSummary { get; }
|
||||
|
||||
public AetheriaRuntimeStarbridgeSessionSummaryDocument CurrentStarbridgeSummary()
|
||||
{
|
||||
return StarbridgeSummary.Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeStarbridgeSessionSummaryDocument> ReactiveStarbridgeSummary()
|
||||
{
|
||||
return StarbridgeSummary.Reactive();
|
||||
|
|
@ -173,12 +233,32 @@ namespace GameCult.Aetheria.State.Verse
|
|||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeZoneContactsDocument> ZoneContacts { get; }
|
||||
|
||||
public AetheriaRuntimeZoneContactsDocument CurrentZoneContacts()
|
||||
{
|
||||
return ZoneContacts.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeStationRefitDocument> StationRefit { get; }
|
||||
|
||||
public AetheriaRuntimeStationRefitDocument CurrentStationRefit()
|
||||
{
|
||||
return StationRefit.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeSectorMapDocument> SectorMap { get; }
|
||||
|
||||
public AetheriaRuntimeSectorMapDocument CurrentSectorMap()
|
||||
{
|
||||
return SectorMap.Latest();
|
||||
}
|
||||
|
||||
public CultMeshDocumentHandle<AetheriaRuntimeZoneRenderDocument> ZoneRender { get; }
|
||||
|
||||
public AetheriaRuntimeZoneRenderDocument CurrentZoneRender()
|
||||
{
|
||||
return ZoneRender.Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeDaemonFrameDocument> ReactiveDaemonFrame()
|
||||
{
|
||||
return DaemonFrame.Reactive();
|
||||
|
|
@ -304,6 +384,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _mapViewport(viewport ?? new AetheriaRuntimeRtsViewportBounds());
|
||||
}
|
||||
|
||||
public AetheriaRuntimeRtsViewportDocument CurrentRtsViewport(AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
return RtsViewport(viewport).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeRtsViewportDocument> ReactiveRtsViewport(
|
||||
AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
|
|
@ -316,6 +401,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _objectsViewport(viewport ?? new AetheriaRuntimeRtsViewportBounds());
|
||||
}
|
||||
|
||||
public AetheriaRuntimeObjectsViewportDocument CurrentObjectsViewport(AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
return ObjectsViewport(viewport).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeObjectsViewportDocument> ReactiveObjectsViewport(
|
||||
AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
|
|
@ -328,6 +418,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _gravityViewport(viewport ?? new AetheriaRuntimeRtsViewportBounds());
|
||||
}
|
||||
|
||||
public AetheriaRuntimeGravityViewportDocument CurrentGravityViewport(AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
return GravityViewport(viewport).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeGravityViewportDocument> ReactiveGravityViewport(
|
||||
AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
|
|
@ -340,6 +435,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _renderSplatsViewport(viewport ?? new AetheriaRuntimeRtsViewportBounds());
|
||||
}
|
||||
|
||||
public AetheriaRuntimeRenderSplatsViewportDocument CurrentRenderSplatsViewport(AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
return RenderSplatsViewport(viewport).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeRenderSplatsViewportDocument> ReactiveRenderSplatsViewport(
|
||||
AetheriaRuntimeRtsViewportBounds viewport)
|
||||
{
|
||||
|
|
@ -354,6 +454,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _zoneDetails(zoneIndex);
|
||||
}
|
||||
|
||||
public AetheriaRuntimeZoneDetailsDocument CurrentZoneDetails(int zoneIndex)
|
||||
{
|
||||
return ZoneDetails(zoneIndex).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeZoneDetailsDocument> ReactiveZoneDetails(int zoneIndex)
|
||||
{
|
||||
return ZoneDetails(zoneIndex).Reactive();
|
||||
|
|
@ -367,6 +472,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _selectedObject(zoneIndex);
|
||||
}
|
||||
|
||||
public AetheriaRuntimeSelectedObjectDocument CurrentSelectedObject(int zoneIndex)
|
||||
{
|
||||
return SelectedObject(zoneIndex).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeSelectedObjectDocument> ReactiveSelectedObject(int zoneIndex)
|
||||
{
|
||||
return SelectedObject(zoneIndex).Reactive();
|
||||
|
|
@ -380,6 +490,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _inventory(entityIndex);
|
||||
}
|
||||
|
||||
public AetheriaRuntimeInventoryDocument CurrentInventory(int entityIndex)
|
||||
{
|
||||
return Inventory(entityIndex).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeInventoryDocument> ReactiveInventory(int entityIndex)
|
||||
{
|
||||
return Inventory(entityIndex).Reactive();
|
||||
|
|
@ -393,6 +508,11 @@ namespace GameCult.Aetheria.State.Verse
|
|||
return _starbridgePlayerSeat(seatId);
|
||||
}
|
||||
|
||||
public AetheriaRuntimeStarbridgePlayerSeatDocument CurrentStarbridgePlayerSeat(string seatId)
|
||||
{
|
||||
return StarbridgePlayerSeat(seatId).Latest();
|
||||
}
|
||||
|
||||
public CultMeshReactiveDocument<AetheriaRuntimeStarbridgePlayerSeatDocument> ReactiveStarbridgePlayerSeat(
|
||||
string seatId)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue