Fix shuttle arrival visualizer (#35772)

* Fix shuttle arrival visualizer

It was at a fixed spot but if the target is rotating it wasn't handled.

* hew

* Fixes
This commit is contained in:
metalgearsloth
2025-04-15 00:34:18 +10:00
committed by GitHub
parent 595b1f5073
commit dfa5ccf625
4 changed files with 18 additions and 6 deletions

View File

@@ -365,8 +365,6 @@ public sealed partial class ShuttleSystem
_audio.SetGridAudio(audio);
component.StartupStream = audio?.Entity;
// TODO: Play previs here for docking arrival.
// Make sure the map is setup before we leave to avoid pop-in (e.g. parallax).
EnsureFTLMap();
return true;
@@ -450,7 +448,8 @@ public sealed partial class ShuttleSystem
if (entity.Comp1.VisualizerProto != null)
{
comp.VisualizerEntity = SpawnAtPosition(entity.Comp1.VisualizerProto, entity.Comp1.TargetCoordinates);
comp.VisualizerEntity = SpawnAttachedTo(entity.Comp1.VisualizerProto, entity.Comp1.TargetCoordinates);
DebugTools.Assert(Transform(comp.VisualizerEntity.Value).ParentUid == entity.Comp1.TargetCoordinates.EntityId);
var visuals = Comp<FtlVisualizerComponent>(comp.VisualizerEntity.Value);
visuals.Grid = entity.Owner;
Dirty(comp.VisualizerEntity.Value, visuals);
@@ -756,7 +755,7 @@ public sealed partial class ShuttleSystem
// Set position
var mapCoordinates = _transform.ToMapCoordinates(config.Coordinates);
var mapUid = _mapSystem.GetMap(mapCoordinates.MapId);
_transform.SetCoordinates(shuttle.Owner, shuttle.Comp, new EntityCoordinates(mapUid, mapCoordinates.Position), rotation: config.Angle);
_transform.SetCoordinates(shuttle.Owner, shuttle.Comp, new EntityCoordinates(mapUid, mapCoordinates.Position), rotation: config.Angle + _transform.GetWorldRotation(config.Coordinates.EntityId));
// Connect everything
foreach (var (dockAUid, dockBUid, dockA, dockB) in config.Docks)