Station beacons (#23136)
* Station beacons * crate * remove navmap from warp points * ack * oh damn * okay emisser
This commit is contained in:
@@ -0,0 +1,35 @@
|
|||||||
|
using Content.Shared.Pinpointer;
|
||||||
|
using JetBrains.Annotations;
|
||||||
|
|
||||||
|
namespace Content.Client.Pinpointer.UI;
|
||||||
|
|
||||||
|
[UsedImplicitly]
|
||||||
|
public sealed class NavMapBeaconBoundUserInterface : BoundUserInterface
|
||||||
|
{
|
||||||
|
[ViewVariables]
|
||||||
|
private NavMapBeaconWindow? _window;
|
||||||
|
|
||||||
|
public NavMapBeaconBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Open()
|
||||||
|
{
|
||||||
|
base.Open();
|
||||||
|
|
||||||
|
_window = new NavMapBeaconWindow(Owner);
|
||||||
|
_window.OpenCentered();
|
||||||
|
_window.OnClose += Close;
|
||||||
|
|
||||||
|
_window.OnApplyButtonPressed += (label, enabled, color) =>
|
||||||
|
{
|
||||||
|
SendMessage(new NavMapBeaconConfigureBuiMessage(label, enabled, color));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
base.Dispose(disposing);
|
||||||
|
_window?.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
17
Content.Client/Pinpointer/UI/NavMapBeaconWindow.xaml
Normal file
17
Content.Client/Pinpointer/UI/NavMapBeaconWindow.xaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<controls:FancyWindow xmlns="https://spacestation14.io"
|
||||||
|
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
|
||||||
|
Title="{Loc 'nav-beacon-window-title'}"
|
||||||
|
MinSize="250 230"
|
||||||
|
SetSize="320 230">
|
||||||
|
<BoxContainer Orientation="Vertical" Margin="5">
|
||||||
|
<BoxContainer Orientation="Horizontal">
|
||||||
|
<Label Text="{Loc 'nav-beacon-text-label'}" Margin="0 0 5 0"/>
|
||||||
|
<LineEdit Name="LabelLineEdit" HorizontalExpand="True"/>
|
||||||
|
<Button Name="VisibleButton" ToggleMode="True" Text="{Loc 'nav-beacon-toggle-visible'}" Margin="10 0 0 0" MinWidth="100"/>
|
||||||
|
</BoxContainer>
|
||||||
|
<ColorSelectorSliders Name="ColorSelector" Margin="0 5 0 10"/>
|
||||||
|
<BoxContainer HorizontalAlignment="Right" VerticalAlignment="Bottom" VerticalExpand="True">
|
||||||
|
<Button Name="ApplyButton" Text="{Loc 'nav-beacon-button-apply'}" HorizontalAlignment="Right"/>
|
||||||
|
</BoxContainer>
|
||||||
|
</BoxContainer>
|
||||||
|
</controls:FancyWindow>
|
||||||
78
Content.Client/Pinpointer/UI/NavMapBeaconWindow.xaml.cs
Normal file
78
Content.Client/Pinpointer/UI/NavMapBeaconWindow.xaml.cs
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
using Content.Client.UserInterface.Controls;
|
||||||
|
using Content.Shared.Pinpointer;
|
||||||
|
using Content.Shared.Preferences;
|
||||||
|
using Robust.Client.AutoGenerated;
|
||||||
|
using Robust.Client.UserInterface.Controls;
|
||||||
|
using Robust.Client.UserInterface.XAML;
|
||||||
|
|
||||||
|
namespace Content.Client.Pinpointer.UI;
|
||||||
|
|
||||||
|
[GenerateTypedNameReferences]
|
||||||
|
public sealed partial class NavMapBeaconWindow : FancyWindow
|
||||||
|
{
|
||||||
|
[Dependency] private readonly IEntityManager _entityManager = default!;
|
||||||
|
|
||||||
|
private string? _defaultLabel;
|
||||||
|
private bool _defaultEnabled;
|
||||||
|
private Color _defaultColor;
|
||||||
|
|
||||||
|
public event Action<string?, bool, Color>? OnApplyButtonPressed;
|
||||||
|
|
||||||
|
public NavMapBeaconWindow(EntityUid beaconEntity)
|
||||||
|
{
|
||||||
|
RobustXamlLoader.Load(this);
|
||||||
|
IoCManager.InjectDependencies(this);
|
||||||
|
|
||||||
|
if (!_entityManager.TryGetComponent<NavMapBeaconComponent>(beaconEntity, out var navMap))
|
||||||
|
return;
|
||||||
|
_defaultLabel = navMap.Text;
|
||||||
|
_defaultEnabled = navMap.Enabled;
|
||||||
|
_defaultColor = navMap.Color;
|
||||||
|
|
||||||
|
UpdateVisibleButton(navMap.Enabled);
|
||||||
|
VisibleButton.OnPressed += args => UpdateVisibleButton(args.Button.Pressed);
|
||||||
|
|
||||||
|
LabelLineEdit.Text = navMap.Text ?? string.Empty;
|
||||||
|
LabelLineEdit.OnTextChanged += OnTextChanged;
|
||||||
|
|
||||||
|
ColorSelector.Color = navMap.Color;
|
||||||
|
ColorSelector.OnColorChanged += _ => TryEnableApplyButton();
|
||||||
|
|
||||||
|
TryEnableApplyButton();
|
||||||
|
ApplyButton.OnPressed += OnApplyPressed;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateVisibleButton(bool value)
|
||||||
|
{
|
||||||
|
VisibleButton.Pressed = value;
|
||||||
|
VisibleButton.Text = Loc.GetString(value
|
||||||
|
? "nav-beacon-toggle-visible"
|
||||||
|
: "nav-beacon-toggle-invisible");
|
||||||
|
|
||||||
|
TryEnableApplyButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnTextChanged(LineEdit.LineEditEventArgs obj)
|
||||||
|
{
|
||||||
|
if (obj.Text.Length > HumanoidCharacterProfile.MaxNameLength)
|
||||||
|
obj.Control.Text = obj.Text.Substring(0, HumanoidCharacterProfile.MaxNameLength);
|
||||||
|
|
||||||
|
TryEnableApplyButton();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void TryEnableApplyButton()
|
||||||
|
{
|
||||||
|
ApplyButton.Disabled = LabelLineEdit.Text == (_defaultLabel ?? string.Empty) &&
|
||||||
|
VisibleButton.Pressed == _defaultEnabled &&
|
||||||
|
ColorSelector.Color == _defaultColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnApplyPressed(BaseButton.ButtonEventArgs obj)
|
||||||
|
{
|
||||||
|
_defaultLabel = LabelLineEdit.Text == string.Empty ? null : LabelLineEdit.Text;
|
||||||
|
_defaultEnabled = VisibleButton.Pressed;
|
||||||
|
_defaultColor = ColorSelector.Color;
|
||||||
|
OnApplyButtonPressed?.Invoke(_defaultLabel, _defaultEnabled, _defaultColor);
|
||||||
|
TryEnableApplyButton();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
|
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.Examine;
|
||||||
using Content.Shared.Pinpointer;
|
using Content.Shared.Pinpointer;
|
||||||
using Content.Shared.Tag;
|
using Content.Shared.Tag;
|
||||||
using Robust.Shared.GameStates;
|
using Robust.Shared.GameStates;
|
||||||
@@ -14,6 +17,8 @@ namespace Content.Server.Pinpointer;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class NavMapSystem : SharedNavMapSystem
|
public sealed class NavMapSystem : SharedNavMapSystem
|
||||||
{
|
{
|
||||||
|
[Dependency] private readonly IAdminLogManager _adminLog = default!;
|
||||||
|
[Dependency] private readonly SharedAppearanceSystem _appearance = default!;
|
||||||
[Dependency] private readonly TagSystem _tags = default!;
|
[Dependency] private readonly TagSystem _tags = default!;
|
||||||
|
|
||||||
private EntityQuery<PhysicsComponent> _physicsQuery;
|
private EntityQuery<PhysicsComponent> _physicsQuery;
|
||||||
@@ -35,6 +40,10 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
|
|
||||||
SubscribeLocalEvent<NavMapBeaconComponent, ComponentStartup>(OnNavMapBeaconStartup);
|
SubscribeLocalEvent<NavMapBeaconComponent, ComponentStartup>(OnNavMapBeaconStartup);
|
||||||
SubscribeLocalEvent<NavMapBeaconComponent, AnchorStateChangedEvent>(OnNavMapBeaconAnchor);
|
SubscribeLocalEvent<NavMapBeaconComponent, AnchorStateChangedEvent>(OnNavMapBeaconAnchor);
|
||||||
|
|
||||||
|
SubscribeLocalEvent<ConfigurableNavMapBeaconComponent, NavMapBeaconConfigureBuiMessage>(OnConfigureMessage);
|
||||||
|
SubscribeLocalEvent<ConfigurableNavMapBeaconComponent, MapInitEvent>(OnConfigurableMapInit);
|
||||||
|
SubscribeLocalEvent<ConfigurableNavMapBeaconComponent, ExaminedEvent>(OnConfigurableExamined);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnStationInit(StationGridAddedEvent ev)
|
private void OnStationInit(StationGridAddedEvent ev)
|
||||||
@@ -50,9 +59,69 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
|
|
||||||
private void OnNavMapBeaconAnchor(EntityUid uid, NavMapBeaconComponent component, ref AnchorStateChangedEvent args)
|
private void OnNavMapBeaconAnchor(EntityUid uid, NavMapBeaconComponent component, ref AnchorStateChangedEvent args)
|
||||||
{
|
{
|
||||||
|
UpdateBeaconEnabledVisuals((uid, component));
|
||||||
RefreshNavGrid(uid);
|
RefreshNavGrid(uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnConfigureMessage(Entity<ConfigurableNavMapBeaconComponent> ent, ref NavMapBeaconConfigureBuiMessage args)
|
||||||
|
{
|
||||||
|
if (args.Session.AttachedEntity is not { } user)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!TryComp<NavMapBeaconComponent>(ent, out var navMap))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (navMap.Text == args.Text &&
|
||||||
|
navMap.Color == args.Color &&
|
||||||
|
navMap.Enabled == args.Enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
_adminLog.Add(LogType.Action, LogImpact.Medium,
|
||||||
|
$"{ToPrettyString(user):player} configured NavMapBeacon \'{ToPrettyString(ent):entity}\' with text \'{args.Text}\', color {args.Color.ToHexNoAlpha()}, and {(args.Enabled ? "enabled" : "disabled")} it.");
|
||||||
|
|
||||||
|
if (TryComp<WarpPointComponent>(ent, out var warpPoint))
|
||||||
|
{
|
||||||
|
warpPoint.Location = args.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
navMap.Text = args.Text;
|
||||||
|
navMap.Color = args.Color;
|
||||||
|
navMap.Enabled = args.Enabled;
|
||||||
|
UpdateBeaconEnabledVisuals((ent, navMap));
|
||||||
|
Dirty(ent, navMap);
|
||||||
|
RefreshNavGrid(ent);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnConfigurableMapInit(Entity<ConfigurableNavMapBeaconComponent> ent, ref MapInitEvent args)
|
||||||
|
{
|
||||||
|
if (!TryComp<NavMapBeaconComponent>(ent, out var navMap))
|
||||||
|
return;
|
||||||
|
|
||||||
|
// We set this on mapinit just in case the text was edited via VV or something.
|
||||||
|
if (TryComp<WarpPointComponent>(ent, out var warpPoint))
|
||||||
|
{
|
||||||
|
warpPoint.Location = navMap.Text;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateBeaconEnabledVisuals((ent, navMap));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnConfigurableExamined(Entity<ConfigurableNavMapBeaconComponent> ent, ref ExaminedEvent args)
|
||||||
|
{
|
||||||
|
if (!args.IsInDetailsRange || !TryComp<NavMapBeaconComponent>(ent, out var navMap))
|
||||||
|
return;
|
||||||
|
|
||||||
|
args.PushMarkup(Loc.GetString("nav-beacon-examine-text",
|
||||||
|
("enabled", navMap.Enabled),
|
||||||
|
("color", navMap.Color.ToHexNoAlpha()),
|
||||||
|
("label", navMap.Text ?? string.Empty)));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateBeaconEnabledVisuals(Entity<NavMapBeaconComponent> ent)
|
||||||
|
{
|
||||||
|
_appearance.SetData(ent, NavMapBeaconVisuals.Enabled, ent.Comp.Enabled && Transform(ent).Anchored);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Refreshes the grid for the corresponding beacon.
|
/// Refreshes the grid for the corresponding beacon.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -61,7 +130,7 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
{
|
{
|
||||||
var xform = Transform(uid);
|
var xform = Transform(uid);
|
||||||
|
|
||||||
if (!CanBeacon(uid, xform) || !TryComp<NavMapComponent>(xform.GridUid, out var navMap))
|
if (!TryComp<NavMapComponent>(xform.GridUid, out var navMap))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Dirty(xform.GridUid.Value, navMap);
|
Dirty(xform.GridUid.Value, navMap);
|
||||||
@@ -244,6 +313,8 @@ public sealed class NavMapSystem : SharedNavMapSystem
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
comp.Enabled = enabled;
|
comp.Enabled = enabled;
|
||||||
|
UpdateBeaconEnabledVisuals((uid, comp));
|
||||||
|
Dirty(uid, comp);
|
||||||
|
|
||||||
RefreshNavGrid(uid);
|
RefreshNavGrid(uid);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
using Robust.Shared.Serialization;
|
||||||
|
|
||||||
|
namespace Content.Shared.Pinpointer;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// This is used for a <see cref="NavMapBeaconComponent"/> that can be configured with a UI.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, NetworkedComponent]
|
||||||
|
[Access(typeof(SharedNavMapSystem))]
|
||||||
|
public sealed partial class ConfigurableNavMapBeaconComponent : Component
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public sealed class NavMapBeaconConfigureBuiMessage : BoundUserInterfaceMessage
|
||||||
|
{
|
||||||
|
public string? Text;
|
||||||
|
public bool Enabled;
|
||||||
|
public Color Color;
|
||||||
|
|
||||||
|
public NavMapBeaconConfigureBuiMessage(string? text, bool enabled, Color color)
|
||||||
|
{
|
||||||
|
Text = text;
|
||||||
|
Enabled = enabled;
|
||||||
|
Color = color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public enum NavMapBeaconUiKey : byte
|
||||||
|
{
|
||||||
|
Key
|
||||||
|
}
|
||||||
|
|
||||||
|
[Serializable, NetSerializable]
|
||||||
|
public enum NavMapBeaconVisuals : byte
|
||||||
|
{
|
||||||
|
Enabled
|
||||||
|
}
|
||||||
@@ -1,23 +1,29 @@
|
|||||||
|
using Robust.Shared.GameStates;
|
||||||
|
|
||||||
namespace Content.Shared.Pinpointer;
|
namespace Content.Shared.Pinpointer;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Will show a marker on a NavMap.
|
/// Will show a marker on a NavMap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[RegisterComponent, Access(typeof(SharedNavMapSystem))]
|
[RegisterComponent, NetworkedComponent, Access(typeof(SharedNavMapSystem))]
|
||||||
|
[AutoGenerateComponentState]
|
||||||
public sealed partial class NavMapBeaconComponent : Component
|
public sealed partial class NavMapBeaconComponent : Component
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Defaults to entity name if nothing found.
|
/// Defaults to entity name if nothing found.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ViewVariables(VVAccess.ReadWrite), DataField]
|
[ViewVariables(VVAccess.ReadWrite), DataField]
|
||||||
|
[AutoNetworkedField]
|
||||||
public string? Text;
|
public string? Text;
|
||||||
|
|
||||||
[ViewVariables(VVAccess.ReadWrite), DataField]
|
[ViewVariables(VVAccess.ReadWrite), DataField]
|
||||||
|
[AutoNetworkedField]
|
||||||
public Color Color = Color.Orange;
|
public Color Color = Color.Orange;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Only enabled beacons can be seen on a station map.
|
/// Only enabled beacons can be seen on a station map.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ViewVariables(VVAccess.ReadWrite), DataField]
|
[ViewVariables(VVAccess.ReadWrite), DataField]
|
||||||
|
[AutoNetworkedField]
|
||||||
public bool Enabled = true;
|
public bool Enabled = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,11 @@
|
|||||||
station-map-window-title = Station map
|
station-map-window-title = Station map
|
||||||
|
|
||||||
|
nav-beacon-window-title = Station Beacon
|
||||||
|
nav-beacon-toggle-visible = Visible
|
||||||
|
nav-beacon-toggle-invisible = Invisible
|
||||||
|
nav-beacon-text-label = Label:
|
||||||
|
nav-beacon-button-apply = Apply
|
||||||
|
nav-beacon-examine-text = It is [color={$enabled ->
|
||||||
|
[true] forestgreen]on
|
||||||
|
*[false] crimson]off
|
||||||
|
}[/color] and the display reads [color={$color}]"{$label}"[/color]
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ ent-CrateEngineeringCableBulk = Bulk cable crate
|
|||||||
ent-CrateEngineeringElectricalSupplies = Electrical Supplies Crate
|
ent-CrateEngineeringElectricalSupplies = Electrical Supplies Crate
|
||||||
.desc = NT is not responsible for any workplace infighting relating to the insulated gloves included within these crates.
|
.desc = NT is not responsible for any workplace infighting relating to the insulated gloves included within these crates.
|
||||||
|
|
||||||
|
ent-CrateEngineeringStationBeaconBundle = Station Beacon Bundle
|
||||||
|
.desc = A crate containing 5 station beacon assemblies for modifying the station map.
|
||||||
|
|
||||||
ent-CrateEngineeringJetpack = Jetpack crate
|
ent-CrateEngineeringJetpack = Jetpack crate
|
||||||
.desc = Two jetpacks for those who don't know how to use fire extinguishers.
|
.desc = Two jetpacks for those who don't know how to use fire extinguishers.
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,16 @@
|
|||||||
category: Engineering
|
category: Engineering
|
||||||
group: market
|
group: market
|
||||||
|
|
||||||
|
- type: cargoProduct
|
||||||
|
id: StationBeaconBundle
|
||||||
|
icon:
|
||||||
|
sprite: Objects/Devices/station_beacon.rsi
|
||||||
|
state: icon
|
||||||
|
product: CrateEngineeringStationBeaconBundle
|
||||||
|
cost: 500
|
||||||
|
category: Engineering
|
||||||
|
group: market
|
||||||
|
|
||||||
- type: cargoProduct
|
- type: cargoProduct
|
||||||
id: EngineeringJetpack
|
id: EngineeringJetpack
|
||||||
icon:
|
icon:
|
||||||
|
|||||||
@@ -88,6 +88,15 @@
|
|||||||
- id: ClothingHandsGlovesColorYellow
|
- id: ClothingHandsGlovesColorYellow
|
||||||
amount: 2
|
amount: 2
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
id: CrateEngineeringStationBeaconBundle
|
||||||
|
parent: CratePlastic
|
||||||
|
components:
|
||||||
|
- type: StorageFill
|
||||||
|
contents:
|
||||||
|
- id: StationBeaconPart
|
||||||
|
amount: 5
|
||||||
|
|
||||||
- type: entity
|
- type: entity
|
||||||
id: CrateEngineeringJetpack
|
id: CrateEngineeringJetpack
|
||||||
parent: CrateGenericSteel
|
parent: CrateGenericSteel
|
||||||
|
|||||||
@@ -30,103 +30,3 @@
|
|||||||
- state: pink
|
- state: pink
|
||||||
- sprite: Objects/Weapons/Bombs/spidercharge.rsi
|
- sprite: Objects/Weapons/Bombs/spidercharge.rsi
|
||||||
state: icon
|
state: icon
|
||||||
|
|
||||||
# Departments
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconBar
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (bar)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: bar
|
|
||||||
color: "#791500"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: bar
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconCargo
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (cargo)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: cargo
|
|
||||||
color: "#A46106"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: cargo
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconCommand
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (command)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: command
|
|
||||||
color: "#334E6D"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: command
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconEngineering
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (engineering)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: engineering
|
|
||||||
color: "#EFB341"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: engineering
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconMedical
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (medical)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: medical
|
|
||||||
color: "#52B4E9"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: medical
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconNeutral
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (neutral)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: neutral
|
|
||||||
color: "#D4D4D4"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: neutral
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconScience
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (science)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: science
|
|
||||||
color: "#D381C9"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: science
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconSecurity
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (security)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: security
|
|
||||||
color: "#DE3A3A"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: security
|
|
||||||
|
|
||||||
- type: entity
|
|
||||||
id: WarpPointBeaconService
|
|
||||||
parent: WarpPointBeacon
|
|
||||||
name: warp point (service)
|
|
||||||
components:
|
|
||||||
- type: NavMapBeacon
|
|
||||||
text: service
|
|
||||||
color: "#9FED58"
|
|
||||||
- type: WarpPoint
|
|
||||||
location: service
|
|
||||||
|
|||||||
553
Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml
Normal file
553
Resources/Prototypes/Entities/Objects/Devices/station_beacon.yml
Normal file
@@ -0,0 +1,553 @@
|
|||||||
|
- type: entity
|
||||||
|
parent: BaseItem
|
||||||
|
id: DefaultStationBeacon
|
||||||
|
name: station beacon
|
||||||
|
description: A small device that transmits information to station maps. Can be configured.
|
||||||
|
placement:
|
||||||
|
mode: SnapgridCenter
|
||||||
|
suffix: General
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Devices/station_beacon.rsi
|
||||||
|
drawdepth: BelowFloor
|
||||||
|
layers:
|
||||||
|
- state: blink
|
||||||
|
map: ["base"]
|
||||||
|
- type: Appearance
|
||||||
|
- type: GenericVisualizer
|
||||||
|
visuals:
|
||||||
|
enum.NavMapBeaconVisuals.Enabled:
|
||||||
|
base:
|
||||||
|
True: {state: blink}
|
||||||
|
False: {state: icon}
|
||||||
|
- type: ConfigurableNavMapBeacon
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: general
|
||||||
|
color: "#D4D4D496"
|
||||||
|
- type: WarpPoint
|
||||||
|
- type: ActivatableUI
|
||||||
|
key: enum.NavMapBeaconUiKey.Key
|
||||||
|
singleUser: true
|
||||||
|
- type: UserInterface
|
||||||
|
interfaces:
|
||||||
|
- key: enum.NavMapBeaconUiKey.Key
|
||||||
|
type: NavMapBeaconBoundUserInterface
|
||||||
|
- type: Item
|
||||||
|
size: Small
|
||||||
|
- type: SubFloorHide
|
||||||
|
- type: Anchorable
|
||||||
|
- type: Construction
|
||||||
|
graph: StationBeaconPart
|
||||||
|
node: complete
|
||||||
|
- type: CollideOnAnchor
|
||||||
|
- type: Physics
|
||||||
|
canCollide: false
|
||||||
|
bodyType: static
|
||||||
|
- type: Transform
|
||||||
|
anchored: true
|
||||||
|
- type: Damageable
|
||||||
|
damageContainer: Inorganic
|
||||||
|
damageModifierSet: Metallic
|
||||||
|
- type: Destructible
|
||||||
|
thresholds:
|
||||||
|
- trigger: # for nukes
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 200
|
||||||
|
behaviors:
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Destruction"]
|
||||||
|
- trigger:
|
||||||
|
!type:DamageTrigger
|
||||||
|
damage: 100
|
||||||
|
behaviors:
|
||||||
|
- !type:PlaySoundBehavior
|
||||||
|
sound:
|
||||||
|
path: /Audio/Effects/metalbreak.ogg
|
||||||
|
params:
|
||||||
|
volume: -8
|
||||||
|
- !type:SpawnEntitiesBehavior
|
||||||
|
spawn:
|
||||||
|
SheetSteel1:
|
||||||
|
min: 1
|
||||||
|
max: 1
|
||||||
|
offset: 0
|
||||||
|
- !type:DoActsBehavior
|
||||||
|
acts: ["Breakage"]
|
||||||
|
- type: StaticPrice
|
||||||
|
price: 25
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconUnanchored
|
||||||
|
suffix: General, Unanchored
|
||||||
|
placement:
|
||||||
|
mode: PlaceFree
|
||||||
|
components:
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Devices/station_beacon.rsi
|
||||||
|
layers:
|
||||||
|
- state: icon
|
||||||
|
map: ["base"]
|
||||||
|
- type: Physics
|
||||||
|
canCollide: true
|
||||||
|
bodyType: dynamic
|
||||||
|
- type: Transform
|
||||||
|
anchored: false
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: BaseItem
|
||||||
|
id: StationBeaconPart
|
||||||
|
name: station beacon assembly
|
||||||
|
description: A flatpack used for constructing a station beacon.
|
||||||
|
components:
|
||||||
|
- type: Item
|
||||||
|
size: Small
|
||||||
|
sprite: Objects/Devices/station_beacon.rsi
|
||||||
|
- type: Sprite
|
||||||
|
sprite: Objects/Devices/station_beacon.rsi
|
||||||
|
state: assembly
|
||||||
|
- type: Construction
|
||||||
|
graph: StationBeaconPart
|
||||||
|
node: start
|
||||||
|
defaultTarget: complete
|
||||||
|
|
||||||
|
# Prototypes for various default beacon configurations.
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconCommand
|
||||||
|
suffix: Command
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: command
|
||||||
|
color: "#334E6D"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconCommand
|
||||||
|
id: DefaultStationBeaconBridge
|
||||||
|
suffix: Bridge
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: bridge
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconCommand
|
||||||
|
id: DefaultStationBeaconVault
|
||||||
|
suffix: Vault
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: vault
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconCommand
|
||||||
|
id: DefaultStationBeaconCaptainsQuarters
|
||||||
|
suffix: Captain's Quarters
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: captain's quarters
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconCommand
|
||||||
|
id: DefaultStationBeaconHOPOffice
|
||||||
|
suffix: HOP's Office
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: head of personnel’s office
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconSecurity
|
||||||
|
suffix: Security
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: security
|
||||||
|
color: "#DE3A3A"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconBrig
|
||||||
|
suffix: Brig
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: brig
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconWardensOffice
|
||||||
|
suffix: Warden's Office
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: warden's office
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconHOSRoom
|
||||||
|
suffix: HOS’s Room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: head of security’s room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconArmory
|
||||||
|
suffix: Armory
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: armory
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconPermaBrig
|
||||||
|
suffix: Perma Brig
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: perma brig
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconDetectiveRoom
|
||||||
|
suffix: Detective's Room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: detective's room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconCourtroom
|
||||||
|
suffix: Courtroom
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: courtroom
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSecurity
|
||||||
|
id: DefaultStationBeaconLawOffice
|
||||||
|
suffix: Law Office
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: law office
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconMedical
|
||||||
|
suffix: Medical
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: medical
|
||||||
|
color: "#52B4E9"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconMedical
|
||||||
|
id: DefaultStationBeaconMedbay
|
||||||
|
suffix: Medbay
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: medbay
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconMedical
|
||||||
|
id: DefaultStationBeaconChemistry
|
||||||
|
suffix: Chemistry
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: chemistry
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconMedical
|
||||||
|
id: DefaultStationBeaconCryonics
|
||||||
|
suffix: Cryonics
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: cryonics
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconMedical
|
||||||
|
id: DefaultStationBeaconCMORoom
|
||||||
|
suffix: CMO's room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: chief medical officer’s room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconMedical
|
||||||
|
id: DefaultStationBeaconMorgue
|
||||||
|
suffix: Morgue
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: morgue
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconScience
|
||||||
|
suffix: Science
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: science
|
||||||
|
color: "#D381C9"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconScience
|
||||||
|
id: DefaultStationBeaconRND
|
||||||
|
suffix: RND
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: research & development
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconScience
|
||||||
|
id: DefaultStationBeaconServerRoom
|
||||||
|
suffix: Server Room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: server room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconScience
|
||||||
|
id: DefaultStationBeaconRDRoom
|
||||||
|
suffix: RD's Room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: research director's room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconScience
|
||||||
|
id: DefaultStationBeaconRobotics
|
||||||
|
suffix: Robotics
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: robotics
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconScience
|
||||||
|
id: DefaultStationBeaconArtifactLab
|
||||||
|
suffix: Artifact Lab
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: artifact lab
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconScience
|
||||||
|
id: DefaultStationBeaconAnomalyGenerator
|
||||||
|
suffix: Anomaly Generator
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: anomaly generator
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconSupply
|
||||||
|
suffix: Supply
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: supply
|
||||||
|
color: "#A46106"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSupply
|
||||||
|
id: DefaultStationBeaconCargoReception
|
||||||
|
suffix: Cargo Reception
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: cargo reception
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSupply
|
||||||
|
id: DefaultStationBeaconCargoBay
|
||||||
|
suffix: Cargo Bay
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: cargo bay
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSupply
|
||||||
|
id: DefaultStationBeaconQMRoom
|
||||||
|
suffix: QM's Room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: quartermaster's room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconSupply
|
||||||
|
id: DefaultStationBeaconSalvage
|
||||||
|
suffix: Salvage
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: salvage
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconEngineering
|
||||||
|
suffix: Engineering
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: engineering
|
||||||
|
color: "#EFB341"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconCERoom
|
||||||
|
suffix: CE's Room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: chief engineer's room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconAME
|
||||||
|
suffix: AME
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: AME
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconSolars
|
||||||
|
suffix: Solars
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: solars
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconSingularity
|
||||||
|
suffix: Singularity
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: singularity engine
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconPowerBank
|
||||||
|
suffix: Power Bank
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: SMES power bank
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconTelecoms
|
||||||
|
suffix: Telecoms
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: telecoms
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconAtmospherics
|
||||||
|
suffix: Atmospherics
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: atmospherics
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconTEG
|
||||||
|
suffix: TEG
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: TEG
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconTeslaEngine
|
||||||
|
suffix: Tesla Engine
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: tesla engine
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconEngineering
|
||||||
|
id: DefaultStationBeaconTechVault
|
||||||
|
suffix: Tech Vault
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: tech vault
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconService
|
||||||
|
suffix: Service
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: service
|
||||||
|
color: "#9FED58"
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconService
|
||||||
|
id: DefaultStationBeaconKitchen
|
||||||
|
suffix: Kitchen
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: kitchen
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconService
|
||||||
|
id: DefaultStationBeaconBar
|
||||||
|
suffix: Bar
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: bar
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconService
|
||||||
|
id: DefaultStationBeaconBotany
|
||||||
|
suffix: Botany
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: botany
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeaconService
|
||||||
|
id: DefaultStationBeaconJanitorsCloset
|
||||||
|
suffix: Janitor's Closet
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: janitor's closet
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconArrivals
|
||||||
|
suffix: Arrivals
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: arrivals
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconEVAStorage
|
||||||
|
suffix: EVA Storage
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: EVA storage
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconChapel
|
||||||
|
suffix: Chapel
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: chapel
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconLibrary
|
||||||
|
suffix: Library
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: library
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconToolRoom
|
||||||
|
suffix: Tool Room
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: tool room
|
||||||
|
|
||||||
|
- type: entity
|
||||||
|
parent: DefaultStationBeacon
|
||||||
|
id: DefaultStationBeaconDisposals
|
||||||
|
suffix: Disposals
|
||||||
|
components:
|
||||||
|
- type: NavMapBeacon
|
||||||
|
text: disposals
|
||||||
|
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
- type: constructionGraph
|
||||||
|
id: StationBeaconPart
|
||||||
|
start: start
|
||||||
|
graph:
|
||||||
|
- node: start
|
||||||
|
edges:
|
||||||
|
- to: complete
|
||||||
|
steps:
|
||||||
|
- tool: Pulsing
|
||||||
|
completed:
|
||||||
|
- !type:PlaySound
|
||||||
|
sound: /Audio/Effects/unwrap.ogg
|
||||||
|
|
||||||
|
- node: complete
|
||||||
|
entity: DefaultStationBeaconUnanchored
|
||||||
|
edges:
|
||||||
|
- to: start
|
||||||
|
steps:
|
||||||
|
- tool: Welding
|
||||||
|
doAfter: 1
|
||||||
|
completed:
|
||||||
|
- !type:SpawnPrototype
|
||||||
|
prototype: SheetSteel1
|
||||||
|
amount: 1
|
||||||
|
- !type:DeleteEntity
|
||||||
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 474 B |
BIN
Resources/Textures/Objects/Devices/station_beacon.rsi/blink.png
Normal file
BIN
Resources/Textures/Objects/Devices/station_beacon.rsi/blink.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 373 B |
BIN
Resources/Textures/Objects/Devices/station_beacon.rsi/icon.png
Normal file
BIN
Resources/Textures/Objects/Devices/station_beacon.rsi/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 302 B |
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"license": "CC0-1.0",
|
||||||
|
"copyright": "Created by EmoGarbage404 (github) for SS14, based on beacon design from /tg/",
|
||||||
|
"size": {
|
||||||
|
"x": 32,
|
||||||
|
"y": 32
|
||||||
|
},
|
||||||
|
"states": [
|
||||||
|
{
|
||||||
|
"name": "icon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "blink",
|
||||||
|
"delays": [
|
||||||
|
[
|
||||||
|
2.0,
|
||||||
|
0.1
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "assembly"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -108,3 +108,14 @@ ReagentContainerMilkOat: DrinkOatMilkCarton
|
|||||||
|
|
||||||
# 2023-12-20
|
# 2023-12-20
|
||||||
MiasmaCanister: AmmoniaCanister
|
MiasmaCanister: AmmoniaCanister
|
||||||
|
|
||||||
|
# 2023-12-28
|
||||||
|
WarpPointBeaconBar: null
|
||||||
|
WarpPointBeaconCargo: null
|
||||||
|
WarpPointBeaconCommand: null
|
||||||
|
WarpPointBeaconEngineering: null
|
||||||
|
WarpPointBeaconMedical: null
|
||||||
|
WarpPointBeaconNeutral: null
|
||||||
|
WarpPointBeaconScience: null
|
||||||
|
WarpPointBeaconSecurity: null
|
||||||
|
WarpPointBeaconService: null
|
||||||
|
|||||||
Reference in New Issue
Block a user