Various Crew Monitor Fixes/Tweaks (#6139)
* Various Crew Monitor Fixes/Tweaks * comment * comment * Increased wireless ranges
This commit is contained in:
parent
29b64c1f7e
commit
ee18b71805
|
|
@ -1,5 +1,6 @@
|
|||
using Content.Client.Pinpointer.UI;
|
||||
using Robust.Client.Graphics;
|
||||
using Robust.Client.Player; // DeltaV
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
using Robust.Shared.Timing;
|
||||
|
||||
|
|
@ -7,6 +8,9 @@ namespace Content.Client.Medical.CrewMonitoring;
|
|||
|
||||
public sealed partial class CrewMonitoringNavMapControl : NavMapControl
|
||||
{
|
||||
[Dependency] private IPlayerManager _playerManager = default!; // DeltaV
|
||||
private readonly SharedTransformSystem _xform; // DeltaV
|
||||
|
||||
public NetEntity? Focus;
|
||||
public Dictionary<NetEntity, string> LocalizedNames = new();
|
||||
|
||||
|
|
@ -15,6 +19,9 @@ public sealed partial class CrewMonitoringNavMapControl : NavMapControl
|
|||
|
||||
public CrewMonitoringNavMapControl() : base()
|
||||
{
|
||||
IoCManager.InjectDependencies(this); // DeltaV - Gotta inject!
|
||||
_xform = EntManager.System<SharedTransformSystem>(); // DeltaV - Gotta inject!
|
||||
|
||||
WallColor = new Color(192, 122, 196);
|
||||
TileColor = new(71, 42, 72);
|
||||
BackgroundColor = Color.FromSrgb(TileColor.WithAlpha(BackgroundOpacity));
|
||||
|
|
@ -77,4 +84,27 @@ public sealed partial class CrewMonitoringNavMapControl : NavMapControl
|
|||
_trackedEntityLabel.Text = string.Empty;
|
||||
_trackedEntityPanel.Visible = false;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DeltaV - Do some things before the base NavMap Draw and also force the redraw of the map
|
||||
/// after if the MapUid was null when the CrewMonitor UI was opened.
|
||||
/// </summary>
|
||||
/// <param name="handle"></param>
|
||||
protected override void Draw(DrawingHandleScreen handle)
|
||||
{
|
||||
// MapUid will not have a value if the crew monitor UI was activated off-grid.
|
||||
var forceMapUpdate = false;
|
||||
if (!MapUid.HasValue && _playerManager.LocalEntity is { } player)
|
||||
{
|
||||
MapUid = _xform.GetGrid(player);
|
||||
forceMapUpdate = true;
|
||||
}
|
||||
|
||||
base.Draw(handle);
|
||||
|
||||
// We need to call this after Draw() because UpdateNavMap has functions that uses variables
|
||||
// set in Draw()
|
||||
if (forceMapUpdate)
|
||||
UpdateNavMap();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,7 +69,16 @@ public sealed partial class CrewMonitoringWindow : FancyWindow
|
|||
base.FrameUpdate(args);
|
||||
|
||||
// Begin DeltaV - handle navmap visibility based on current position
|
||||
if (_station.GetOwningStation(ShuttleMap.Owner) is not null)
|
||||
var ent = ShuttleMap.Owner;
|
||||
|
||||
// If an entity is being tracked, use them as the focus, since they may be off-station
|
||||
// and we want to use the nav map if they are.
|
||||
if (_trackedEntity is { } trackedEntity)
|
||||
ent = _entManager.GetEntity(trackedEntity);
|
||||
|
||||
// We need to make sure the entity is valid because for some reason, it *could* be an
|
||||
// invalid entity and GetOwningStation will throw an exception.
|
||||
if (ent.HasValue && ent.Value.IsValid() && _station.GetOwningStation(ent) is not null)
|
||||
{
|
||||
NavMap.Visible = true;
|
||||
ShuttleMap.Visible = false;
|
||||
|
|
@ -343,6 +352,14 @@ public sealed partial class CrewMonitoringWindow : FancyWindow
|
|||
if (_trackedEntity == sensor.SuitSensorUid)
|
||||
{
|
||||
_trackedEntity = null;
|
||||
// BEGIN DeltaV - center on crew monitor user if deselecting
|
||||
// This fixes some weird bug where if you deselect a tracked entity, it will
|
||||
// just not draw the map at all in some cases.
|
||||
if (ShuttleMap.Owner is { } handheld &&
|
||||
_transformSystem.TryGetMapOrGridCoordinates(handheld, out var userCoords) &&
|
||||
userCoords is { } coords)
|
||||
NavMap.CenterToCoordinates(coords);
|
||||
// END DeltaV
|
||||
}
|
||||
|
||||
else
|
||||
|
|
|
|||
|
|
@ -114,8 +114,8 @@
|
|||
receiveFrequencyId: NTNet # DeltaV - NTNet
|
||||
transmitFrequencyId: ShuttleTimer
|
||||
- type: WirelessNetworkConnection
|
||||
range: 500
|
||||
- type: StationLimitedNetwork
|
||||
range: 10000 # DeltaV
|
||||
#- type: StationLimitedNetwork # DeltaV - Off-station coordinates
|
||||
- type: Thieving
|
||||
stripTimeReduction: 9999
|
||||
stealthy: true
|
||||
|
|
|
|||
|
|
@ -25,6 +25,5 @@
|
|||
deviceNetId: Wireless
|
||||
receiveFrequencyId: NTNet # DeltaV - NTNet
|
||||
- type: WirelessNetworkConnection
|
||||
range: 500
|
||||
- type: StationLimitedNetwork
|
||||
range: 3600
|
||||
- type: Appearance
|
||||
|
|
|
|||
Loading…
Reference in New Issue