Use nav beacon locations for announcements (#26437)
* use nav beacon locations for announcements * :thumbs_up:
This commit is contained in:
@@ -13,6 +13,7 @@ using Robust.Shared.Serialization.Manager;
|
|||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using Robust.Shared.Audio;
|
using Robust.Shared.Audio;
|
||||||
using Robust.Shared.Audio.Systems;
|
using Robust.Shared.Audio.Systems;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Server.Dragon;
|
namespace Content.Server.Dragon;
|
||||||
|
|
||||||
@@ -69,8 +70,9 @@ public sealed class DragonRiftSystem : EntitySystem
|
|||||||
comp.State = DragonRiftState.AlmostFinished;
|
comp.State = DragonRiftState.AlmostFinished;
|
||||||
Dirty(uid, comp);
|
Dirty(uid, comp);
|
||||||
|
|
||||||
var location = xform.LocalPosition;
|
var msg = Loc.GetString("carp-rift-warning",
|
||||||
_chat.DispatchGlobalAnnouncement(Loc.GetString("carp-rift-warning", ("location", location)), playSound: false, colorOverride: Color.Red);
|
("location", FormattedMessage.RemoveMarkup(_navMap.GetNearestBeaconString((uid, xform)))));
|
||||||
|
_chat.DispatchGlobalAnnouncement(msg, playSound: false, colorOverride: Color.Red);
|
||||||
_audio.PlayGlobal("/Audio/Misc/notice1.ogg", Filter.Broadcast(), true);
|
_audio.PlayGlobal("/Audio/Misc/notice1.ogg", Filter.Broadcast(), true);
|
||||||
_navMap.SetBeaconEnabled(uid, true);
|
_navMap.SetBeaconEnabled(uid, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using Content.Server.Body.Systems;
|
|||||||
using Content.Server.Chemistry.Containers.EntitySystems;
|
using Content.Server.Chemistry.Containers.EntitySystems;
|
||||||
using Content.Server.Explosion.Components;
|
using Content.Server.Explosion.Components;
|
||||||
using Content.Server.Flash;
|
using Content.Server.Flash;
|
||||||
|
using Content.Server.Pinpointer;
|
||||||
using Content.Shared.Flash.Components;
|
using Content.Shared.Flash.Components;
|
||||||
using Content.Server.Radio.EntitySystems;
|
using Content.Server.Radio.EntitySystems;
|
||||||
using Content.Shared.Chemistry.Components;
|
using Content.Shared.Chemistry.Components;
|
||||||
@@ -31,6 +32,7 @@ using Robust.Shared.Prototypes;
|
|||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
using Content.Shared.Coordinates;
|
using Content.Shared.Coordinates;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Server.Explosion.EntitySystems
|
namespace Content.Server.Explosion.EntitySystems
|
||||||
{
|
{
|
||||||
@@ -67,6 +69,7 @@ namespace Content.Server.Explosion.EntitySystems
|
|||||||
[Dependency] private readonly BodySystem _body = default!;
|
[Dependency] private readonly BodySystem _body = default!;
|
||||||
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
[Dependency] private readonly SharedAudioSystem _audio = default!;
|
||||||
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
[Dependency] private readonly SharedTransformSystem _transformSystem = default!;
|
||||||
|
[Dependency] private readonly NavMapSystem _navMap = default!;
|
||||||
[Dependency] private readonly RadioSystem _radioSystem = default!;
|
[Dependency] private readonly RadioSystem _radioSystem = default!;
|
||||||
[Dependency] private readonly IRobustRandom _random = default!;
|
[Dependency] private readonly IRobustRandom _random = default!;
|
||||||
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
|
||||||
@@ -185,12 +188,7 @@ namespace Content.Server.Explosion.EntitySystems
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Gets location of the implant
|
// Gets location of the implant
|
||||||
var ownerXform = Transform(uid);
|
var posText = FormattedMessage.RemoveMarkup(_navMap.GetNearestBeaconString(uid));
|
||||||
var pos = ownerXform.MapPosition;
|
|
||||||
var x = (int) pos.X;
|
|
||||||
var y = (int) pos.Y;
|
|
||||||
var posText = $"({x}, {y})";
|
|
||||||
|
|
||||||
var critMessage = Loc.GetString(component.CritMessage, ("user", implanted.ImplantedEntity.Value), ("position", posText));
|
var critMessage = Loc.GetString(component.CritMessage, ("user", implanted.ImplantedEntity.Value), ("position", posText));
|
||||||
var deathMessage = Loc.GetString(component.DeathMessage, ("user", implanted.ImplantedEntity.Value), ("position", posText));
|
var deathMessage = Loc.GetString(component.DeathMessage, ("user", implanted.ImplantedEntity.Value), ("position", posText));
|
||||||
|
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ using Robust.Shared.Map;
|
|||||||
using Robust.Shared.Map.Components;
|
using Robust.Shared.Map.Components;
|
||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Server.Nuke;
|
namespace Content.Server.Nuke;
|
||||||
|
|
||||||
@@ -463,7 +464,8 @@ public sealed class NukeSystem : EntitySystem
|
|||||||
|
|
||||||
// warn a crew
|
// warn a crew
|
||||||
var announcement = Loc.GetString("nuke-component-announcement-armed",
|
var announcement = Loc.GetString("nuke-component-announcement-armed",
|
||||||
("time", (int) component.RemainingTime), ("position", posText));
|
("time", (int) component.RemainingTime),
|
||||||
|
("location", FormattedMessage.RemoveMarkup(_navMap.GetNearestBeaconString((uid, nukeXform)))));
|
||||||
var sender = Loc.GetString("nuke-component-announcement-sender");
|
var sender = Loc.GetString("nuke-component-announcement-sender");
|
||||||
_chatSystem.DispatchStationAnnouncement(stationUid ?? uid, announcement, sender, false, null, Color.Red);
|
_chatSystem.DispatchStationAnnouncement(stationUid ?? uid, announcement, sender, false, null, Color.Red);
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
|
using System.Diagnostics.CodeAnalysis;
|
||||||
using Content.Server.Administration.Logs;
|
using Content.Server.Administration.Logs;
|
||||||
using Content.Server.Station.Systems;
|
using Content.Server.Station.Systems;
|
||||||
using Content.Server.Warps;
|
using Content.Server.Warps;
|
||||||
using Content.Shared.Database;
|
using Content.Shared.Database;
|
||||||
using Content.Shared.Examine;
|
using Content.Shared.Examine;
|
||||||
|
using Content.Shared.Localizations;
|
||||||
using Content.Shared.Pinpointer;
|
using Content.Shared.Pinpointer;
|
||||||
using Content.Shared.Tag;
|
using Content.Shared.Tag;
|
||||||
|
using JetBrains.Annotations;
|
||||||
using Robust.Server.GameObjects;
|
using Robust.Server.GameObjects;
|
||||||
using Robust.Shared.GameStates;
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Map;
|
||||||
using Robust.Shared.Map.Components;
|
using Robust.Shared.Map.Components;
|
||||||
using Robust.Shared.Physics;
|
using Robust.Shared.Physics;
|
||||||
using Robust.Shared.Physics.Components;
|
using Robust.Shared.Physics.Components;
|
||||||
@@ -22,10 +26,15 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||||
[Dependency] private readonly TagSystem _tags = default!;
|
[Dependency] private readonly TagSystem _tags = default!;
|
||||||
[Dependency] private readonly MapSystem _map = default!;
|
[Dependency] private readonly MapSystem _map = default!;
|
||||||
|
[Dependency] private readonly IMapManager _mapManager = default!;
|
||||||
|
[Dependency] private readonly TransformSystem _transform = default!;
|
||||||
|
|
||||||
private EntityQuery<PhysicsComponent> _physicsQuery;
|
private EntityQuery<PhysicsComponent> _physicsQuery;
|
||||||
private EntityQuery<TagComponent> _tagQuery;
|
private EntityQuery<TagComponent> _tagQuery;
|
||||||
|
|
||||||
|
public const float CloseDistance = 15f;
|
||||||
|
public const float FarDistance = 30f;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
base.Initialize();
|
base.Initialize();
|
||||||
@@ -40,6 +49,7 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
SubscribeLocalEvent<NavMapComponent, ComponentGetState>(OnGetState);
|
SubscribeLocalEvent<NavMapComponent, ComponentGetState>(OnGetState);
|
||||||
SubscribeLocalEvent<GridSplitEvent>(OnNavMapSplit);
|
SubscribeLocalEvent<GridSplitEvent>(OnNavMapSplit);
|
||||||
|
|
||||||
|
SubscribeLocalEvent<NavMapBeaconComponent, MapInitEvent>(OnNavMapBeaconMapInit);
|
||||||
SubscribeLocalEvent<NavMapBeaconComponent, ComponentStartup>(OnNavMapBeaconStartup);
|
SubscribeLocalEvent<NavMapBeaconComponent, ComponentStartup>(OnNavMapBeaconStartup);
|
||||||
SubscribeLocalEvent<NavMapBeaconComponent, AnchorStateChangedEvent>(OnNavMapBeaconAnchor);
|
SubscribeLocalEvent<NavMapBeaconComponent, AnchorStateChangedEvent>(OnNavMapBeaconAnchor);
|
||||||
|
|
||||||
@@ -57,6 +67,16 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
RefreshGrid(ev.GridId, comp, Comp<MapGridComponent>(ev.GridId));
|
RefreshGrid(ev.GridId, comp, Comp<MapGridComponent>(ev.GridId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnNavMapBeaconMapInit(EntityUid uid, NavMapBeaconComponent component, MapInitEvent args)
|
||||||
|
{
|
||||||
|
if (component.DefaultText == null || component.Text != null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
component.Text = Loc.GetString(component.DefaultText);
|
||||||
|
Dirty(uid, component);
|
||||||
|
RefreshNavGrid(uid);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnNavMapBeaconStartup(EntityUid uid, NavMapBeaconComponent component, ComponentStartup args)
|
private void OnNavMapBeaconStartup(EntityUid uid, NavMapBeaconComponent component, ComponentStartup args)
|
||||||
{
|
{
|
||||||
RefreshNavGrid(uid);
|
RefreshNavGrid(uid);
|
||||||
@@ -384,4 +404,101 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
|
|
||||||
SetBeaconEnabled(uid, !comp.Enabled, comp);
|
SetBeaconEnabled(uid, !comp.Enabled, comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For a given position, tries to find the nearest configurable beacon that is marked as visible.
|
||||||
|
/// This is used for things like announcements where you want to find the closest "landmark" to something.
|
||||||
|
/// </summary>
|
||||||
|
[PublicAPI]
|
||||||
|
public bool TryGetNearestBeacon(Entity<TransformComponent?> ent,
|
||||||
|
[NotNullWhen(true)] out Entity<NavMapBeaconComponent>? beacon,
|
||||||
|
[NotNullWhen(true)] out MapCoordinates? beaconCoords)
|
||||||
|
{
|
||||||
|
beacon = null;
|
||||||
|
beaconCoords = null;
|
||||||
|
if (!Resolve(ent, ref ent.Comp))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return TryGetNearestBeacon(_transform.GetMapCoordinates(ent, ent.Comp), out beacon, out beaconCoords);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// For a given position, tries to find the nearest configurable beacon that is marked as visible.
|
||||||
|
/// This is used for things like announcements where you want to find the closest "landmark" to something.
|
||||||
|
/// </summary>
|
||||||
|
public bool TryGetNearestBeacon(MapCoordinates coordinates,
|
||||||
|
[NotNullWhen(true)] out Entity<NavMapBeaconComponent>? beacon,
|
||||||
|
[NotNullWhen(true)] out MapCoordinates? beaconCoords)
|
||||||
|
{
|
||||||
|
beacon = null;
|
||||||
|
beaconCoords = null;
|
||||||
|
var minDistance = float.PositiveInfinity;
|
||||||
|
|
||||||
|
var query = EntityQueryEnumerator<ConfigurableNavMapBeaconComponent, NavMapBeaconComponent, TransformComponent>();
|
||||||
|
while (query.MoveNext(out var uid, out _, out var navBeacon, out var xform))
|
||||||
|
{
|
||||||
|
if (!navBeacon.Enabled)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (navBeacon.Text == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (coordinates.MapId != xform.MapID)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
var coords = _transform.GetWorldPosition(xform);
|
||||||
|
var distanceSquared = (coordinates.Position - coords).LengthSquared();
|
||||||
|
if (!float.IsInfinity(minDistance) && distanceSquared >= minDistance)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
minDistance = distanceSquared;
|
||||||
|
beacon = (uid, navBeacon);
|
||||||
|
beaconCoords = new MapCoordinates(coords, xform.MapID);
|
||||||
|
}
|
||||||
|
|
||||||
|
return beacon != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
[PublicAPI]
|
||||||
|
public string GetNearestBeaconString(Entity<TransformComponent?> ent)
|
||||||
|
{
|
||||||
|
if (!Resolve(ent, ref ent.Comp))
|
||||||
|
return Loc.GetString("nav-beacon-pos-no-beacons");
|
||||||
|
|
||||||
|
return GetNearestBeaconString(_transform.GetMapCoordinates(ent, ent.Comp));
|
||||||
|
}
|
||||||
|
|
||||||
|
public string GetNearestBeaconString(MapCoordinates coordinates)
|
||||||
|
{
|
||||||
|
if (!TryGetNearestBeacon(coordinates, out var beacon, out var pos))
|
||||||
|
return Loc.GetString("nav-beacon-pos-no-beacons");
|
||||||
|
|
||||||
|
var gridOffset = Angle.Zero;
|
||||||
|
if (_mapManager.TryFindGridAt(pos.Value, out var grid, out _))
|
||||||
|
gridOffset = Transform(grid).LocalRotation;
|
||||||
|
|
||||||
|
// get the angle between the two positions, adjusted for the grid rotation so that
|
||||||
|
// we properly preserve north in relation to the grid.
|
||||||
|
var dir = (pos.Value.Position - coordinates.Position).ToWorldAngle();
|
||||||
|
var adjustedDir = (dir - gridOffset).GetDir();
|
||||||
|
|
||||||
|
var length = (pos.Value.Position - coordinates.Position).Length();
|
||||||
|
if (length < CloseDistance)
|
||||||
|
{
|
||||||
|
return Loc.GetString("nav-beacon-pos-format",
|
||||||
|
("color", beacon.Value.Comp.Color),
|
||||||
|
("marker", beacon.Value.Comp.Text!));
|
||||||
|
}
|
||||||
|
|
||||||
|
var modifier = length > FarDistance
|
||||||
|
? Loc.GetString("nav-beacon-pos-format-direction-mod-far")
|
||||||
|
: string.Empty;
|
||||||
|
|
||||||
|
// we can null suppress the text being null because TRyGetNearestVisibleStationBeacon always gives us a beacon with not-null text.
|
||||||
|
return Loc.GetString("nav-beacon-pos-format-direction",
|
||||||
|
("modifier", modifier),
|
||||||
|
("direction", ContentLocalizationManager.FormatDirection(adjustedDir).ToLowerInvariant()),
|
||||||
|
("color", beacon.Value.Comp.Color),
|
||||||
|
("marker", beacon.Value.Comp.Text!));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using Content.Server.Communications;
|
|||||||
using Content.Server.DeviceNetwork.Components;
|
using Content.Server.DeviceNetwork.Components;
|
||||||
using Content.Server.DeviceNetwork.Systems;
|
using Content.Server.DeviceNetwork.Systems;
|
||||||
using Content.Server.GameTicking.Events;
|
using Content.Server.GameTicking.Events;
|
||||||
|
using Content.Server.Pinpointer;
|
||||||
using Content.Server.Popups;
|
using Content.Server.Popups;
|
||||||
using Content.Server.RoundEnd;
|
using Content.Server.RoundEnd;
|
||||||
using Content.Server.Screens.Components;
|
using Content.Server.Screens.Components;
|
||||||
@@ -33,6 +34,7 @@ using Robust.Shared.Map.Components;
|
|||||||
using Robust.Shared.Player;
|
using Robust.Shared.Player;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
using Robust.Shared.Timing;
|
using Robust.Shared.Timing;
|
||||||
|
using Robust.Shared.Utility;
|
||||||
|
|
||||||
namespace Content.Server.Shuttles.Systems;
|
namespace Content.Server.Shuttles.Systems;
|
||||||
|
|
||||||
@@ -55,6 +57,7 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem
|
|||||||
[Dependency] private readonly DockingSystem _dock = default!;
|
[Dependency] private readonly DockingSystem _dock = default!;
|
||||||
[Dependency] private readonly EntityManager _entityManager = default!;
|
[Dependency] private readonly EntityManager _entityManager = default!;
|
||||||
[Dependency] private readonly IdCardSystem _idSystem = default!;
|
[Dependency] private readonly IdCardSystem _idSystem = default!;
|
||||||
|
[Dependency] private readonly NavMapSystem _navMap = default!;
|
||||||
[Dependency] private readonly MapLoaderSystem _map = default!;
|
[Dependency] private readonly MapLoaderSystem _map = default!;
|
||||||
[Dependency] private readonly PopupSystem _popup = default!;
|
[Dependency] private readonly PopupSystem _popup = default!;
|
||||||
[Dependency] private readonly RoundEndSystem _roundEnd = default!;
|
[Dependency] private readonly RoundEndSystem _roundEnd = default!;
|
||||||
@@ -307,11 +310,8 @@ public sealed partial class EmergencyShuttleSystem : EntitySystem
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (TryComp<TransformComponent>(targetGrid.Value, out var targetXform))
|
var location = FormattedMessage.RemoveMarkup(_navMap.GetNearestBeaconString((stationShuttle.EmergencyShuttle.Value, xform)));
|
||||||
{
|
_chatSystem.DispatchStationAnnouncement(stationUid, Loc.GetString("emergency-shuttle-nearby", ("direction", location)), playDefaultSound: false);
|
||||||
var angle = _dock.GetAngle(stationShuttle.EmergencyShuttle.Value, xform, targetGrid.Value, targetXform, xformQuery);
|
|
||||||
_chatSystem.DispatchStationAnnouncement(stationUid, Loc.GetString("emergency-shuttle-nearby", ("direction", angle.GetDir())), playDefaultSound: false);
|
|
||||||
}
|
|
||||||
|
|
||||||
_logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle {ToPrettyString(stationUid)} unable to find a valid docking port for {ToPrettyString(stationUid)}");
|
_logger.Add(LogType.EmergencyShuttle, LogImpact.High, $"Emergency shuttle {ToPrettyString(stationUid)} unable to find a valid docking port for {ToPrettyString(stationUid)}");
|
||||||
// TODO: Need filter extensions or something don't blame me.
|
// TODO: Need filter extensions or something don't blame me.
|
||||||
|
|||||||
@@ -119,6 +119,14 @@ namespace Content.Shared.Localizations
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Formats a direction struct as a human-readable string.
|
||||||
|
/// </summary>
|
||||||
|
public static string FormatDirection(Direction dir)
|
||||||
|
{
|
||||||
|
return Loc.GetString($"zzzz-fmt-direction-{dir.ToString()}");
|
||||||
|
}
|
||||||
|
|
||||||
private static ILocValue FormatLoc(LocArgs args)
|
private static ILocValue FormatLoc(LocArgs args)
|
||||||
{
|
{
|
||||||
var id = ((LocValueString) args.Args[0]).Value;
|
var id = ((LocValueString) args.Args[0]).Value;
|
||||||
|
|||||||
@@ -16,6 +16,13 @@ public sealed partial class NavMapBeaconComponent : Component
|
|||||||
[AutoNetworkedField]
|
[AutoNetworkedField]
|
||||||
public string? Text;
|
public string? Text;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A localization string that populates <see cref="Text"/> if it is null at mapinit.
|
||||||
|
/// Used so that mappers can still override Text while mapping.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public LocId? DefaultText;
|
||||||
|
|
||||||
[ViewVariables(VVAccess.ReadWrite), DataField]
|
[ViewVariables(VVAccess.ReadWrite), DataField]
|
||||||
[AutoNetworkedField]
|
[AutoNetworkedField]
|
||||||
public Color Color = Color.Orange;
|
public Color Color = Color.Orange;
|
||||||
|
|||||||
@@ -8,13 +8,6 @@ public abstract class SharedNavMapSystem : EntitySystem
|
|||||||
{
|
{
|
||||||
public const byte ChunkSize = 4;
|
public const byte ChunkSize = 4;
|
||||||
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
base.Initialize();
|
|
||||||
|
|
||||||
SubscribeLocalEvent<NavMapBeaconComponent, MapInitEvent>(OnNavMapBeaconMapInit);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Converts the chunk's tile into a bitflag for the slot.
|
/// Converts the chunk's tile into a bitflag for the slot.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -38,13 +31,6 @@ public abstract class SharedNavMapSystem : EntitySystem
|
|||||||
return new Vector2i(x, y);
|
return new Vector2i(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnNavMapBeaconMapInit(EntityUid uid, NavMapBeaconComponent component, MapInitEvent args)
|
|
||||||
{
|
|
||||||
component.Text ??= string.Empty;
|
|
||||||
component.Text = Loc.GetString(component.Text);
|
|
||||||
Dirty(uid, component);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Serializable, NetSerializable]
|
[Serializable, NetSerializable]
|
||||||
protected sealed class NavMapComponentState : ComponentState
|
protected sealed class NavMapComponentState : ComponentState
|
||||||
{
|
{
|
||||||
|
|||||||
8
Resources/Locale/en-US/_directions.ftl
Normal file
8
Resources/Locale/en-US/_directions.ftl
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
zzzz-fmt-direction-North = North
|
||||||
|
zzzz-fmt-direction-South = South
|
||||||
|
zzzz-fmt-direction-East = East
|
||||||
|
zzzz-fmt-direction-West = West
|
||||||
|
zzzz-fmt-direction-NorthEast = NorthEast
|
||||||
|
zzzz-fmt-direction-SouthEast = SouthEast
|
||||||
|
zzzz-fmt-direction-NorthWest = NorthWest
|
||||||
|
zzzz-fmt-direction-SouthWest = SouthWest
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
carp-rift-warning = A rift is causing an unnaturally large energy flux at {$location}. Stop it at all costs!
|
carp-rift-warning = A rift is causing an unnaturally large energy flux {$location}. Stop it at all costs!
|
||||||
carp-rift-duplicate = Cannot have 2 charging rifts at the same time!
|
carp-rift-duplicate = Cannot have 2 charging rifts at the same time!
|
||||||
carp-rift-examine = It is [color=yellow]{$percentage}%[/color] charged!
|
carp-rift-examine = It is [color=yellow]{$percentage}%[/color] charged!
|
||||||
carp-rift-max = You have reached your maximum amount of rifts
|
carp-rift-max = You have reached your maximum amount of rifts
|
||||||
|
|||||||
@@ -22,5 +22,5 @@ scramble-implant-activated-popup = Your appearance shifts and changes!
|
|||||||
|
|
||||||
## Implant Messages
|
## Implant Messages
|
||||||
|
|
||||||
deathrattle-implant-dead-message = {$user} has died at {$position}.
|
deathrattle-implant-dead-message = {$user} has died {$position}.
|
||||||
deathrattle-implant-critical-message = {$user} life signs critical, immediate assistance required at {$position}.
|
deathrattle-implant-critical-message = {$user} life signs critical, immediate assistance required {$position}.
|
||||||
|
|||||||
@@ -11,3 +11,8 @@ nav-beacon-examine-text = It is [color={$enabled ->
|
|||||||
[true] forestgreen]on
|
[true] forestgreen]on
|
||||||
*[false] crimson]off
|
*[false] crimson]off
|
||||||
}[/color] and the display reads [color={$color}]"{$label}"[/color]
|
}[/color] and the display reads [color={$color}]"{$label}"[/color]
|
||||||
|
|
||||||
|
nav-beacon-pos-no-beacons = in the middle of nowhere
|
||||||
|
nav-beacon-pos-format = [color={$color}]near {$marker}[/color]
|
||||||
|
nav-beacon-pos-format-direction = [color={$color}]{$modifier}{$direction} of {$marker}[/color]
|
||||||
|
nav-beacon-pos-format-direction-mod-far = far {""}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
nuke-component-cant-anchor-floor = The anchoring bolts fail to lock into the floor!
|
nuke-component-cant-anchor-floor = The anchoring bolts fail to lock into the floor!
|
||||||
nuke-component-announcement-sender = Nuclear Fission Explosive
|
nuke-component-announcement-sender = Nuclear Fission Explosive
|
||||||
nuke-component-announcement-armed = Attention! The station's self-destruct mechanism has been engaged at global coordinates {$position}. {$time} seconds until detonation. If this was made in error, the mechanism may still be disarmed.
|
nuke-component-announcement-armed = Attention! The station's self-destruct mechanism has been engaged {$location}. {$time} seconds until detonation. If this was made in error, the mechanism may still be disarmed.
|
||||||
nuke-component-announcement-unarmed = The station's self-destruct was deactivated! Have a nice day!
|
nuke-component-announcement-unarmed = The station's self-destruct was deactivated! Have a nice day!
|
||||||
nuke-component-announcement-send-codes = Attention! Self-destruction codes have been sent to designated fax machines.
|
nuke-component-announcement-send-codes = Attention! Self-destruction codes have been sent to designated fax machines.
|
||||||
nuke-component-doafter-warning = You start fiddling with wires and knobs in order to disarm the nuke.. This may take a while.
|
nuke-component-doafter-warning = You start fiddling with wires and knobs in order to disarm the nuke.. This may take a while.
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ emergency-shuttle-left = The Emergency Shuttle has left the station. Estimate {$
|
|||||||
emergency-shuttle-launch-time = The emergency shuttle will launch in {$consoleAccumulator} seconds.
|
emergency-shuttle-launch-time = The emergency shuttle will launch in {$consoleAccumulator} seconds.
|
||||||
emergency-shuttle-docked = The Emergency Shuttle has docked with the station on the {$direction} side. It will leave in {$time} seconds.
|
emergency-shuttle-docked = The Emergency Shuttle has docked with the station on the {$direction} side. It will leave in {$time} seconds.
|
||||||
emergency-shuttle-good-luck = The Emergency Shuttle is unable to find a station. Good luck.
|
emergency-shuttle-good-luck = The Emergency Shuttle is unable to find a station. Good luck.
|
||||||
emergency-shuttle-nearby = The Emergency Shuttle is unable to find a valid docking port. It has warped in {$direction} of the station.
|
emergency-shuttle-nearby = The Emergency Shuttle is unable to find a valid docking port. It has warped {$direction}.
|
||||||
|
|
||||||
# Emergency shuttle console popup / announcement
|
# Emergency shuttle console popup / announcement
|
||||||
emergency-shuttle-console-no-early-launches = Early launch is disabled
|
emergency-shuttle-console-no-early-launches = Early launch is disabled
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
False: {state: icon}
|
False: {state: icon}
|
||||||
- type: ConfigurableNavMapBeacon
|
- type: ConfigurableNavMapBeacon
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-general
|
defaultText: station-beacon-general
|
||||||
color: "#D4D4D496"
|
color: "#D4D4D496"
|
||||||
- type: WarpPoint
|
- type: WarpPoint
|
||||||
- type: ActivatableUI
|
- type: ActivatableUI
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
suffix: Command
|
suffix: Command
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-command
|
defaultText: station-beacon-command
|
||||||
color: "#FFFF00"
|
color: "#FFFF00"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
suffix: Bridge
|
suffix: Bridge
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-bridge
|
defaultText: station-beacon-bridge
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconCommand
|
parent: DefaultStationBeaconCommand
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
suffix: Vault
|
suffix: Vault
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-vault
|
defaultText: station-beacon-vault
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconCommand
|
parent: DefaultStationBeaconCommand
|
||||||
@@ -143,7 +143,7 @@
|
|||||||
suffix: Captain's Quarters
|
suffix: Captain's Quarters
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-captain
|
defaultText: station-beacon-captain
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconCommand
|
parent: DefaultStationBeaconCommand
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
suffix: HOP's Office
|
suffix: HOP's Office
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-hop
|
defaultText: station-beacon-hop
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
suffix: Security
|
suffix: Security
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-security
|
defaultText: station-beacon-security
|
||||||
color: "#DE3A3A"
|
color: "#DE3A3A"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -168,7 +168,7 @@
|
|||||||
suffix: Brig
|
suffix: Brig
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-brig
|
defaultText: station-beacon-brig
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
suffix: Warden's Office
|
suffix: Warden's Office
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-warden
|
defaultText: station-beacon-warden
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
suffix: HOS’s Room
|
suffix: HOS’s Room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-hos
|
defaultText: station-beacon-hos
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -192,7 +192,7 @@
|
|||||||
suffix: Armory
|
suffix: Armory
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-armory
|
defaultText: station-beacon-armory
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
suffix: Perma Brig
|
suffix: Perma Brig
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-perma-brig
|
defaultText: station-beacon-perma-brig
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -208,7 +208,7 @@
|
|||||||
suffix: Detective's Room
|
suffix: Detective's Room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-detective
|
defaultText: station-beacon-detective
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -216,7 +216,7 @@
|
|||||||
suffix: Courtroom
|
suffix: Courtroom
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-courtroom
|
defaultText: station-beacon-courtroom
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
suffix: Law Office
|
suffix: Law Office
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-law
|
defaultText: station-beacon-law
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSecurity
|
parent: DefaultStationBeaconSecurity
|
||||||
@@ -232,7 +232,7 @@
|
|||||||
suffix: Sec Checkpoint
|
suffix: Sec Checkpoint
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-security-checkpoint
|
defaultText: station-beacon-security-checkpoint
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -240,7 +240,7 @@
|
|||||||
suffix: Medical
|
suffix: Medical
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-medical
|
defaultText: station-beacon-medical
|
||||||
color: "#52B4E9"
|
color: "#52B4E9"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -249,7 +249,7 @@
|
|||||||
suffix: Medbay
|
suffix: Medbay
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-medbay
|
defaultText: station-beacon-medbay
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconMedical
|
parent: DefaultStationBeaconMedical
|
||||||
@@ -257,7 +257,7 @@
|
|||||||
suffix: Chemistry
|
suffix: Chemistry
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-chemistry
|
defaultText: station-beacon-chemistry
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconMedical
|
parent: DefaultStationBeaconMedical
|
||||||
@@ -265,7 +265,7 @@
|
|||||||
suffix: Cryonics
|
suffix: Cryonics
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-cryonics
|
defaultText: station-beacon-cryonics
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconMedical
|
parent: DefaultStationBeaconMedical
|
||||||
@@ -273,7 +273,7 @@
|
|||||||
suffix: CMO's room
|
suffix: CMO's room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-cmo
|
defaultText: station-beacon-cmo
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconMedical
|
parent: DefaultStationBeaconMedical
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
suffix: Morgue
|
suffix: Morgue
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-morgue
|
defaultText: station-beacon-morgue
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconMedical
|
parent: DefaultStationBeaconMedical
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
suffix: Surgery
|
suffix: Surgery
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-surgery
|
defaultText: station-beacon-surgery
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -297,7 +297,7 @@
|
|||||||
suffix: Science
|
suffix: Science
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-science
|
defaultText: station-beacon-science
|
||||||
color: "#D381C9"
|
color: "#D381C9"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -306,7 +306,7 @@
|
|||||||
suffix: Research and Development
|
suffix: Research and Development
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-research-and-development
|
defaultText: station-beacon-research-and-development
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconScience
|
parent: DefaultStationBeaconScience
|
||||||
@@ -314,7 +314,7 @@
|
|||||||
suffix: Research Server Room
|
suffix: Research Server Room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-research-server
|
defaultText: station-beacon-research-server
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconScience
|
parent: DefaultStationBeaconScience
|
||||||
@@ -322,7 +322,7 @@
|
|||||||
suffix: RD's Room
|
suffix: RD's Room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-research-director
|
defaultText: station-beacon-research-director
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconScience
|
parent: DefaultStationBeaconScience
|
||||||
@@ -330,7 +330,7 @@
|
|||||||
suffix: Robotics
|
suffix: Robotics
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-robotics
|
defaultText: station-beacon-robotics
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconScience
|
parent: DefaultStationBeaconScience
|
||||||
@@ -338,7 +338,7 @@
|
|||||||
suffix: Artifact Lab
|
suffix: Artifact Lab
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-artifact-lab
|
defaultText: station-beacon-artifact-lab
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconScience
|
parent: DefaultStationBeaconScience
|
||||||
@@ -346,7 +346,7 @@
|
|||||||
suffix: Anomaly Generator
|
suffix: Anomaly Generator
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-anomaly-gen
|
defaultText: station-beacon-anomaly-gen
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -354,7 +354,7 @@
|
|||||||
suffix: Supply
|
suffix: Supply
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-supply
|
defaultText: station-beacon-supply
|
||||||
color: "#A46106"
|
color: "#A46106"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -363,7 +363,7 @@
|
|||||||
suffix: Cargo Reception
|
suffix: Cargo Reception
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-cargo
|
defaultText: station-beacon-cargo
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSupply
|
parent: DefaultStationBeaconSupply
|
||||||
@@ -371,7 +371,7 @@
|
|||||||
suffix: Cargo Bay
|
suffix: Cargo Bay
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-cargo-bay
|
defaultText: station-beacon-cargo-bay
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSupply
|
parent: DefaultStationBeaconSupply
|
||||||
@@ -379,7 +379,7 @@
|
|||||||
suffix: QM's Room
|
suffix: QM's Room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-qm
|
defaultText: station-beacon-qm
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconSupply
|
parent: DefaultStationBeaconSupply
|
||||||
@@ -387,7 +387,7 @@
|
|||||||
suffix: Salvage
|
suffix: Salvage
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-salvage
|
defaultText: station-beacon-salvage
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -395,7 +395,7 @@
|
|||||||
suffix: Engineering
|
suffix: Engineering
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-engineering
|
defaultText: station-beacon-engineering
|
||||||
color: "#EFB341"
|
color: "#EFB341"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -404,7 +404,7 @@
|
|||||||
suffix: CE's Room
|
suffix: CE's Room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-ce
|
defaultText: station-beacon-ce
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -412,7 +412,7 @@
|
|||||||
suffix: AME
|
suffix: AME
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-ame
|
defaultText: station-beacon-ame
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -420,7 +420,7 @@
|
|||||||
suffix: Solars
|
suffix: Solars
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-solars
|
defaultText: station-beacon-solars
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -428,7 +428,7 @@
|
|||||||
suffix: Grav Gen
|
suffix: Grav Gen
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-gravgen
|
defaultText: station-beacon-gravgen
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -436,7 +436,7 @@
|
|||||||
suffix: PA Control
|
suffix: PA Control
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-pa
|
defaultText: station-beacon-pa
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -444,7 +444,7 @@
|
|||||||
suffix: SMES Power Bank
|
suffix: SMES Power Bank
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-smes
|
defaultText: station-beacon-smes
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -452,7 +452,7 @@
|
|||||||
suffix: Telecoms
|
suffix: Telecoms
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-telecoms
|
defaultText: station-beacon-telecoms
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -460,7 +460,7 @@
|
|||||||
suffix: Atmospherics
|
suffix: Atmospherics
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-atmos
|
defaultText: station-beacon-atmos
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -468,7 +468,7 @@
|
|||||||
suffix: TEG
|
suffix: TEG
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-teg
|
defaultText: station-beacon-teg
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconEngineering
|
parent: DefaultStationBeaconEngineering
|
||||||
@@ -476,7 +476,7 @@
|
|||||||
suffix: Tech Vault
|
suffix: Tech Vault
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-tech-vault
|
defaultText: station-beacon-tech-vault
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -484,7 +484,7 @@
|
|||||||
suffix: Service
|
suffix: Service
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-service
|
defaultText: station-beacon-service
|
||||||
color: "#9FED58"
|
color: "#9FED58"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -493,7 +493,7 @@
|
|||||||
suffix: Kitchen
|
suffix: Kitchen
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-kitchen
|
defaultText: station-beacon-kitchen
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconService
|
parent: DefaultStationBeaconService
|
||||||
@@ -501,7 +501,7 @@
|
|||||||
suffix: Bar
|
suffix: Bar
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-bar
|
defaultText: station-beacon-bar
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconService
|
parent: DefaultStationBeaconService
|
||||||
@@ -509,7 +509,7 @@
|
|||||||
suffix: Botany
|
suffix: Botany
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-botany
|
defaultText: station-beacon-botany
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconService
|
parent: DefaultStationBeaconService
|
||||||
@@ -517,7 +517,7 @@
|
|||||||
suffix: Janitor's Closet
|
suffix: Janitor's Closet
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-janitor
|
defaultText: station-beacon-janitor
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -525,7 +525,7 @@
|
|||||||
suffix: AI
|
suffix: AI
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-ai
|
defaultText: station-beacon-ai
|
||||||
color: "#2ed2fd"
|
color: "#2ed2fd"
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
@@ -534,7 +534,7 @@
|
|||||||
suffix: AI Satellite
|
suffix: AI Satellite
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-ai-sat
|
defaultText: station-beacon-ai-sat
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeaconAI
|
parent: DefaultStationBeaconAI
|
||||||
@@ -542,7 +542,7 @@
|
|||||||
suffix: AI Core
|
suffix: AI Core
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-ai-core
|
defaultText: station-beacon-ai-core
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -550,7 +550,7 @@
|
|||||||
suffix: Arrivals
|
suffix: Arrivals
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-arrivals
|
defaultText: station-beacon-arrivals
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -558,7 +558,7 @@
|
|||||||
suffix: Evac
|
suffix: Evac
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-evac
|
defaultText: station-beacon-evac
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -566,7 +566,7 @@
|
|||||||
suffix: EVA Storage
|
suffix: EVA Storage
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-eva-storage
|
defaultText: station-beacon-eva-storage
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -574,7 +574,7 @@
|
|||||||
suffix: Chapel
|
suffix: Chapel
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-chapel
|
defaultText: station-beacon-chapel
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -582,7 +582,7 @@
|
|||||||
suffix: Library
|
suffix: Library
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-library
|
defaultText: station-beacon-library
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -590,7 +590,7 @@
|
|||||||
suffix: Theater
|
suffix: Theater
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-theater
|
defaultText: station-beacon-theater
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -598,7 +598,7 @@
|
|||||||
suffix: Dorms
|
suffix: Dorms
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-dorms
|
defaultText: station-beacon-dorms
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -606,7 +606,7 @@
|
|||||||
suffix: Tool Room
|
suffix: Tool Room
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-tools
|
defaultText: station-beacon-tools
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -614,7 +614,7 @@
|
|||||||
suffix: Disposals
|
suffix: Disposals
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-disposals
|
defaultText: station-beacon-disposals
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -622,7 +622,7 @@
|
|||||||
suffix: Cryosleep
|
suffix: Cryosleep
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-cryosleep
|
defaultText: station-beacon-cryosleep
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
parent: DefaultStationBeacon
|
parent: DefaultStationBeacon
|
||||||
@@ -630,4 +630,4 @@
|
|||||||
suffix: Escape Pod
|
suffix: Escape Pod
|
||||||
components:
|
components:
|
||||||
- type: NavMapBeacon
|
- type: NavMapBeacon
|
||||||
text: station-beacon-escape-pod
|
defaultText: station-beacon-escape-pod
|
||||||
|
|||||||
Reference in New Issue
Block a user