Project current zone from daemon run

This commit is contained in:
Meta Vens 2026-06-21 17:10:27 +01:00
commit 0a21e44f54
4 changed files with 38 additions and 10 deletions

View file

@ -861,6 +861,19 @@ public class ActionGameManager : MonoBehaviour
.FirstOrDefault(snapshot => snapshot != null && snapshot.ZoneIndex == zoneIndex);
}
public GalaxyZone CurrentDaemonGalaxyZone
{
get
{
var run = ResolveDaemonObserver()?.LastObservedState?.Run;
return run?.CurrentZoneIndex >= 0 &&
ObservedGalaxy?.Zones != null &&
run.CurrentZoneIndex < ObservedGalaxy.Zones.Length
? ObservedGalaxy.Zones[run.CurrentZoneIndex]
: null;
}
}
private static int FactionIndex(Faction faction)
{
return ObservedGalaxy?.Factions == null || faction == null ? -1 : Array.IndexOf(ObservedGalaxy.Factions, faction);
@ -3117,13 +3130,7 @@ public class ActionGameManager : MonoBehaviour
private AetheriaRuntimeZoneSnapshotCommit FindCurrentDaemonZoneSnapshot()
{
var run = ResolveDaemonObserver()?.LastObservedState?.Run;
var zone = run?.CurrentZoneIndex >= 0 &&
ActionGameManager.ObservedGalaxy?.Zones != null &&
run.CurrentZoneIndex < ActionGameManager.ObservedGalaxy.Zones.Length
? ActionGameManager.ObservedGalaxy.Zones[run.CurrentZoneIndex]
: null;
return FindDaemonZoneSnapshot(zone);
return FindDaemonZoneSnapshot(CurrentDaemonGalaxyZone);
}
public void RequestTowToStation()

View file

@ -49,7 +49,8 @@ public class MapRenderer : MonoBehaviour
GravityCamera.gameObject.SetActive(true);
TintCamera.gameObject.SetActive(true);
InfluenceCamera.gameObject.SetActive(true);
Title.text = $"Zone: {GameManager.Zone.GalaxyZone.Name}";
var currentZone = GameManager.CurrentDaemonGalaxyZone;
Title.text = $"Zone: {currentZone?.Name ?? "Unknown"}";
// If hiding minimap asteroids, turn them back on for the map screen
if (!ActionGameManager.RuntimePlayerSettings.GraphicsSettings.ShowAsteroidsInMinimap)

View file

@ -223,11 +223,13 @@ public class SectorRenderer : MonoBehaviour, IBeginDragHandler, IDragHandler, IS
{
_init = true;
SectorCamera.gameObject.SetActive(true);
_position = GameManager.Zone.GalaxyZone.Position;
var currentZone = GameManager.CurrentDaemonGalaxyZone;
_position = currentZone?.Position ?? float2.zero;
_viewSize = .25f;
Map.StartReveal(LinkAnimationDuration, IconAnimationDuration);
Map.MarkPlayerLocation(GameManager.CurrentEntity.Zone.GalaxyZone);
if (currentZone != null)
Map.MarkPlayerLocation(currentZone);
}
private void OnDisable()