From bec8d7a7d472ac944b6cf3d266745ffc1460fb5f Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Mon, 9 Dec 2024 20:39:46 +0300 Subject: [PATCH] Ghost z-levels move actions + mapping z-levels combine command (#654) * some setup * fast ghost zlevels-moving * zlevel combine command for mapping --- Content.Server/Ghost/GhostSystem.cs | 18 ++-- .../Commands/CP14SetTimeEntryCommand.cs | 1 - .../PortalAutoLink/CP14AutoLinkComponent.cs | 16 --- .../PortalAutoLink/CP14AutoLinkSystem.cs | 44 -------- .../Commands/CP14CombileMapsIntoZLevels.cs | 94 ++++++++++++++++++ .../Components/CP14StationZLevelsComponent.cs | 7 +- .../CP14ZLevelAutoPortalComponent.cs | 4 +- .../CP14StationZLevelsSystem.Actions.cs | 41 ++++++++ .../CP14StationZLevelsSystem.Portals.cs | 50 ++++++++++ .../EntitySystems/CP14StationZLevelsSystem.cs | 51 ++-------- Content.Shared/Ghost/GhostComponent.cs | 14 +++ Content.Shared/_CP14/ZLevel/ZLevelActions.cs | 17 ++++ .../Entities/Mobs/Player/admin_ghost.yml | 94 +++++++++--------- .../_CP14/Entities/Actions/zLevels.yml | 17 ++++ .../_CP14/Actions/zLevel.rsi/down.png | Bin 0 -> 447 bytes .../_CP14/Actions/zLevel.rsi/meta.json | 17 ++++ .../Textures/_CP14/Actions/zLevel.rsi/up.png | Bin 0 -> 384 bytes 17 files changed, 320 insertions(+), 165 deletions(-) delete mode 100644 Content.Server/_CP14/PortalAutoLink/CP14AutoLinkComponent.cs delete mode 100644 Content.Server/_CP14/PortalAutoLink/CP14AutoLinkSystem.cs create mode 100644 Content.Server/_CP14/ZLevels/Commands/CP14CombileMapsIntoZLevels.cs rename Content.Server/_CP14/{StationDungeonMap => ZLevels}/Components/CP14StationZLevelsComponent.cs (70%) rename Content.Server/_CP14/{StationDungeonMap => ZLevels}/Components/CP14ZLevelAutoPortalComponent.cs (85%) create mode 100644 Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Actions.cs create mode 100644 Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Portals.cs rename Content.Server/_CP14/{StationDungeonMap => ZLevels}/EntitySystems/CP14StationZLevelsSystem.cs (66%) create mode 100644 Content.Shared/_CP14/ZLevel/ZLevelActions.cs create mode 100644 Resources/Prototypes/_CP14/Entities/Actions/zLevels.yml create mode 100644 Resources/Textures/_CP14/Actions/zLevel.rsi/down.png create mode 100644 Resources/Textures/_CP14/Actions/zLevel.rsi/meta.json create mode 100644 Resources/Textures/_CP14/Actions/zLevel.rsi/up.png diff --git a/Content.Server/Ghost/GhostSystem.cs b/Content.Server/Ghost/GhostSystem.cs index 85fec0d7d1..bd03e36a92 100644 --- a/Content.Server/Ghost/GhostSystem.cs +++ b/Content.Server/Ghost/GhostSystem.cs @@ -213,18 +213,22 @@ namespace Content.Server.Ghost private void OnMapInit(EntityUid uid, GhostComponent component, MapInitEvent args) { - if (_actions.AddAction(uid, ref component.BooActionEntity, out var act, component.BooAction) - && act.UseDelay != null) - { - var start = _gameTiming.CurTime; - var end = start + act.UseDelay.Value; - _actions.SetCooldown(component.BooActionEntity.Value, start, end); - } + //if (_actions.AddAction(uid, ref component.BooActionEntity, out var act, component.BooAction) + // && act.UseDelay != null) + //{ + // var start = _gameTiming.CurTime; + // var end = start + act.UseDelay.Value; + // _actions.SetCooldown(component.BooActionEntity.Value, start, end); + //} _actions.AddAction(uid, ref component.ToggleGhostHearingActionEntity, component.ToggleGhostHearingAction); _actions.AddAction(uid, ref component.ToggleLightingActionEntity, component.ToggleLightingAction); _actions.AddAction(uid, ref component.ToggleFoVActionEntity, component.ToggleFoVAction); _actions.AddAction(uid, ref component.ToggleGhostsActionEntity, component.ToggleGhostsAction); + //CP14 + _actions.AddAction(uid, ref component.CP14ZLevelUpActionEntity, component.CP14ZLevelUpAction); + _actions.AddAction(uid, ref component.CP14ZLevelDownActionEntity, component.CP14ZLevelDownAction); + //CP14 end } private void OnGhostExamine(EntityUid uid, GhostComponent component, ExaminedEvent args) diff --git a/Content.Server/_CP14/DayCycle/Commands/CP14SetTimeEntryCommand.cs b/Content.Server/_CP14/DayCycle/Commands/CP14SetTimeEntryCommand.cs index c7239901bb..9cf8bc5f0b 100644 --- a/Content.Server/_CP14/DayCycle/Commands/CP14SetTimeEntryCommand.cs +++ b/Content.Server/_CP14/DayCycle/Commands/CP14SetTimeEntryCommand.cs @@ -1,5 +1,4 @@ using Content.Server.Administration; -using Content.Shared._CP14.DayCycle; using Content.Shared.Administration; using Robust.Shared.Console; using CP14DayCycleComponent = Content.Shared._CP14.DayCycle.Components.CP14DayCycleComponent; diff --git a/Content.Server/_CP14/PortalAutoLink/CP14AutoLinkComponent.cs b/Content.Server/_CP14/PortalAutoLink/CP14AutoLinkComponent.cs deleted file mode 100644 index 4e211f848f..0000000000 --- a/Content.Server/_CP14/PortalAutoLink/CP14AutoLinkComponent.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Robust.Shared.Map; - -namespace Content.Server._CP14.PortalAutoLink; - -/// -/// allows you to automatically link entities to each other, through key matching searches -/// -[RegisterComponent, Access(typeof(CP14AutoLinkSystem))] -public sealed partial class CP14AutoLinkComponent : Component -{ - /// - /// a key that is used to search for another autolinked entity installed in the worlds - /// - [DataField] - public string? AutoLinkKey = "Hello"; -} diff --git a/Content.Server/_CP14/PortalAutoLink/CP14AutoLinkSystem.cs b/Content.Server/_CP14/PortalAutoLink/CP14AutoLinkSystem.cs deleted file mode 100644 index 060c98f1ce..0000000000 --- a/Content.Server/_CP14/PortalAutoLink/CP14AutoLinkSystem.cs +++ /dev/null @@ -1,44 +0,0 @@ -using Content.Shared.Interaction; -using Content.Shared.Teleportation.Systems; - -namespace Content.Server._CP14.PortalAutoLink; - -public sealed partial class CP14AutoLinkSystem : EntitySystem -{ - [Dependency] private readonly LinkedEntitySystem _link = default!; - [Dependency] private readonly IEntityManager _entityManager = default!; - - public override void Initialize() - { - base.Initialize(); - - SubscribeLocalEvent(OnMapInit); - } - - private void OnMapInit(Entity autolink, ref MapInitEvent args) - { - TryAutoLink(autolink, out var otherLink); - } - public bool TryAutoLink(Entity autolink, out EntityUid? linkedEnt) - { - linkedEnt = null; - - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var otherAutolink)) - { - if (autolink.Comp == otherAutolink) - continue; - - if (autolink.Comp.AutoLinkKey == otherAutolink.AutoLinkKey) - { - if (_link.TryLink(autolink, uid, false)) - { - RemComp(uid); - RemComp(autolink); - return true; - } - } - } - return false; - } -} diff --git a/Content.Server/_CP14/ZLevels/Commands/CP14CombileMapsIntoZLevels.cs b/Content.Server/_CP14/ZLevels/Commands/CP14CombileMapsIntoZLevels.cs new file mode 100644 index 0000000000..e0b5ab1394 --- /dev/null +++ b/Content.Server/_CP14/ZLevels/Commands/CP14CombileMapsIntoZLevels.cs @@ -0,0 +1,94 @@ +using System.Linq; +using Content.Server._CP14.ZLevels.Components; +using Content.Server.Administration; +using Content.Shared.Administration; +using Robust.Shared.Console; +using Robust.Shared.Map; + +namespace Content.Server._CP14.ZLevels.Commands; + +[AdminCommand(AdminFlags.VarEdit)] +public sealed class CP14CombineMapsIntoZLevelsCommand : LocalizedCommands +{ + [Dependency] private readonly IEntityManager _entities = default!; + [Dependency] private readonly IMapManager _map = default!; + + private const string Name = "cp14-combineMapsIntoZLevels"; + public override string Command => Name; + public override string Description => "Connects a number of maps into a common network of z-levels. Does not work if one of the maps is already in the z-level network"; + public override string Help => $"{Name} ... (from ground to sky)"; + + public override void Execute(IConsoleShell shell, string argStr, string[] args) + { + if (args.Length == 1) + { + shell.WriteError("Not enough maps to form a network of levels"); + return; + } + + List maps = new(); + foreach (var arg in args) + { + if (!int.TryParse(arg, out var mapIdInt)) + { + shell.WriteError($"Cannot parse `{arg}` into mapId"); + return; + } + + var mapId = new MapId(mapIdInt); + + if (mapId == MapId.Nullspace) + { + shell.WriteError($"Cannot parse NullSpace"); + return; + } + + if (!_map.MapExists(mapId)) + { + shell.WriteError($"Map {mapId} dont exist"); + return; + } + + //if (!_mapSystem.TryGetMap(mapId, out var mapUid)) + //{ + // shell.WriteError($"Map {mapId} dont exist"); + // return; + //} + + if (maps.Contains(mapId)) + { + shell.WriteError($"Duplication maps: {mapId}"); + return; + } + + maps.Add(mapId); + } + + //Check maps already in zLevel links + var query = _entities.EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var zLevelComp)) + { + foreach (var findMap in maps) + { + if (zLevelComp.LevelEntities.ContainsKey(findMap)) + { + shell.WriteError($"{findMap} already in z-level network! Z-Network Entity: {uid}"); + return; + } + } + } + + //Ok, all check passed, we create new z-level network + var zLevelEnt = _entities.Spawn(); + _entities.EnsureComponent(zLevelEnt, out var newZLevelComp); + + var count = 0; + foreach (var map in maps) + { + newZLevelComp.LevelEntities.Add(map, count); + count++; + } + + shell.WriteLine($"Successfully created z-level network! Z-Network entity: {zLevelEnt}"); + } +} diff --git a/Content.Server/_CP14/StationDungeonMap/Components/CP14StationZLevelsComponent.cs b/Content.Server/_CP14/ZLevels/Components/CP14StationZLevelsComponent.cs similarity index 70% rename from Content.Server/_CP14/StationDungeonMap/Components/CP14StationZLevelsComponent.cs rename to Content.Server/_CP14/ZLevels/Components/CP14StationZLevelsComponent.cs index de408cd316..c984834707 100644 --- a/Content.Server/_CP14/StationDungeonMap/Components/CP14StationZLevelsComponent.cs +++ b/Content.Server/_CP14/ZLevels/Components/CP14StationZLevelsComponent.cs @@ -1,13 +1,14 @@ -using Content.Server._CP14.StationDungeonMap.EntitySystems; +using Content.Server._CP14.ZLevels.Commands; +using Content.Server._CP14.ZLevels.EntitySystems; using Robust.Shared.Map; using Robust.Shared.Utility; -namespace Content.Server._CP14.StationDungeonMap.Components; +namespace Content.Server._CP14.ZLevels.Components; /// /// Initializes the z-level system by creating a series of linked maps /// -[RegisterComponent, Access(typeof(CP14StationZLevelsSystem))] +[RegisterComponent, Access(typeof(CP14StationZLevelsSystem), typeof(CP14CombineMapsIntoZLevelsCommand))] public sealed partial class CP14StationZLevelsComponent : Component { [DataField(required: true)] diff --git a/Content.Server/_CP14/StationDungeonMap/Components/CP14ZLevelAutoPortalComponent.cs b/Content.Server/_CP14/ZLevels/Components/CP14ZLevelAutoPortalComponent.cs similarity index 85% rename from Content.Server/_CP14/StationDungeonMap/Components/CP14ZLevelAutoPortalComponent.cs rename to Content.Server/_CP14/ZLevels/Components/CP14ZLevelAutoPortalComponent.cs index 6d6469d628..791121c52f 100644 --- a/Content.Server/_CP14/StationDungeonMap/Components/CP14ZLevelAutoPortalComponent.cs +++ b/Content.Server/_CP14/ZLevels/Components/CP14ZLevelAutoPortalComponent.cs @@ -1,7 +1,7 @@ -using Content.Server._CP14.StationDungeonMap.EntitySystems; +using Content.Server._CP14.ZLevels.EntitySystems; using Robust.Shared.Prototypes; -namespace Content.Server._CP14.StationDungeonMap.Components; +namespace Content.Server._CP14.ZLevels.Components; /// /// automatically creates a linked portal at a different relative z-level, and then the component is removed diff --git a/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Actions.cs b/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Actions.cs new file mode 100644 index 0000000000..dd80ada075 --- /dev/null +++ b/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Actions.cs @@ -0,0 +1,41 @@ +using System.Numerics; +using Content.Shared._CP14.ZLevel; +using Content.Shared.Ghost; +using Robust.Shared.Map; + +namespace Content.Server._CP14.ZLevels.EntitySystems; + +public sealed partial class CP14StationZLevelsSystem +{ + private void InitActions() + { + SubscribeLocalEvent(OnZLevelUp); + SubscribeLocalEvent(OnZLevelDown); + } + + private void OnZLevelDown(Entity ent, ref CP14ZLevelActionDown args) + { + ZLevelMove(ent, -1); + } + + private void OnZLevelUp(Entity ent, ref CP14ZLevelActionUp args) + { + ZLevelMove(ent, 1); + } + + private void ZLevelMove(EntityUid ent, int offset) + { + var xform = Transform(ent); + var map = xform.MapUid; + + if (map is null) + return; + + var targetMap = GetMapOffset(map.Value, offset); + + if (targetMap is null) + return; + + _transform.SetMapCoordinates(ent, new MapCoordinates(_transform.GetWorldPosition(ent), targetMap.Value)); + } +} diff --git a/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Portals.cs b/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Portals.cs new file mode 100644 index 0000000000..78e83fa1e9 --- /dev/null +++ b/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.Portals.cs @@ -0,0 +1,50 @@ +using Content.Server._CP14.ZLevels.Components; +using Content.Server.GameTicking.Events; +using Content.Shared.Teleportation.Systems; +using Robust.Shared.Map; + +namespace Content.Server._CP14.ZLevels.EntitySystems; + +public sealed partial class CP14StationZLevelsSystem +{ + [Dependency] private readonly LinkedEntitySystem _linkedEntity = default!; + private void InitializePortals() + { + SubscribeLocalEvent(OnRoundStart); + SubscribeLocalEvent(OnPortalMapInit); + } + + private void OnRoundStart(RoundStartingEvent ev) + { + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var portal)) + { + InitPortal((uid, portal)); + } + } + + private void OnPortalMapInit(Entity autoPortal, ref MapInitEvent args) + { + InitPortal(autoPortal); + } + + private void InitPortal(Entity autoPortal) + { + var mapId = Transform(autoPortal).MapUid; + if (mapId is null) + return; + + var offsetMap = GetMapOffset(mapId.Value, autoPortal.Comp.ZLevelOffset); + + if (offsetMap is null) + return; + + var currentWorldPos = _transform.GetWorldPosition(autoPortal); + var targetMapPos = new MapCoordinates(currentWorldPos, offsetMap.Value); + + var otherSidePortal = Spawn(autoPortal.Comp.OtherSideProto, targetMapPos); + + if (_linkedEntity.TryLink(autoPortal, otherSidePortal, true)) + RemComp(autoPortal); + } +} diff --git a/Content.Server/_CP14/StationDungeonMap/EntitySystems/CP14StationZLevelsSystem.cs b/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.cs similarity index 66% rename from Content.Server/_CP14/StationDungeonMap/EntitySystems/CP14StationZLevelsSystem.cs rename to Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.cs index ae7c1ae11b..b8531b9f9b 100644 --- a/Content.Server/_CP14/StationDungeonMap/EntitySystems/CP14StationZLevelsSystem.cs +++ b/Content.Server/_CP14/ZLevels/EntitySystems/CP14StationZLevelsSystem.cs @@ -1,17 +1,14 @@ -using Content.Server._CP14.StationDungeonMap.Components; -using Content.Server.GameTicking.Events; +using Content.Server._CP14.ZLevels.Components; using Content.Server.Station.Components; using Content.Server.Station.Events; using Content.Server.Station.Systems; using Content.Shared.Maps; using Content.Shared.Station.Components; -using Content.Shared.Teleportation.Systems; using Robust.Server.GameObjects; using Robust.Server.Maps; using Robust.Shared.Map; -using Robust.Shared.Random; -namespace Content.Server._CP14.StationDungeonMap.EntitySystems; +namespace Content.Server._CP14.ZLevels.EntitySystems; public sealed partial class CP14StationZLevelsSystem : EntitySystem { @@ -20,29 +17,18 @@ public sealed partial class CP14StationZLevelsSystem : EntitySystem [Dependency] private readonly MapLoaderSystem _mapLoader = default!; [Dependency] private readonly TransformSystem _transform = default!; [Dependency] private readonly ITileDefinitionManager _tileDefManager = default!; - [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly TileSystem _tile = default!; [Dependency] private readonly SharedMapSystem _maps = default!; - [Dependency] private readonly LinkedEntitySystem _linkedEntity = default!; public override void Initialize() { base.Initialize(); + InitializePortals(); + InitActions(); - SubscribeLocalEvent(OnPortalMapInit); - SubscribeLocalEvent(OnRoundStart); SubscribeLocalEvent(OnStationPostInit); } - private void OnRoundStart(RoundStartingEvent ev) - { - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var portal)) - { - InitPortal((uid, portal)); - } - } - private void OnStationPostInit(Entity ent, ref StationPostInitEvent args) { if (ent.Comp.Initialized) @@ -98,35 +84,10 @@ public sealed partial class CP14StationZLevelsSystem : EntitySystem } } - private void OnPortalMapInit(Entity autoPortal, ref MapInitEvent args) - { - InitPortal(autoPortal); - } - - private void InitPortal(Entity autoPortal) - { - var mapId = Transform(autoPortal).MapUid; - if (mapId is null) - return; - - var offsetMap = GetMapOffset(mapId.Value, autoPortal.Comp.ZLevelOffset); - - if (offsetMap is null) - return; - - var currentWorldPos = _transform.GetWorldPosition(autoPortal); - var targetMapPos = new MapCoordinates(currentWorldPos, offsetMap.Value); - - var otherSidePortal = Spawn(autoPortal.Comp.OtherSideProto, targetMapPos); - - if (_linkedEntity.TryLink(autoPortal, otherSidePortal, true)) - RemComp(autoPortal); - } - public MapId? GetMapOffset(EntityUid mapUid, int offset) { - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var zLevel, out _)) + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var zLevel)) { if (!zLevel.LevelEntities.TryGetValue(Transform(mapUid).MapID, out var currentLevel)) continue; diff --git a/Content.Shared/Ghost/GhostComponent.cs b/Content.Shared/Ghost/GhostComponent.cs index 96e9b717b9..43f32ef87b 100644 --- a/Content.Shared/Ghost/GhostComponent.cs +++ b/Content.Shared/Ghost/GhostComponent.cs @@ -39,6 +39,20 @@ public sealed partial class GhostComponent : Component [DataField, AutoNetworkedField] public EntityUid? BooActionEntity; + //CP14 Ghost abilities + [DataField] + public EntProtoId CP14ZLevelUpAction = "CP14ActionZLevelUp"; + + [DataField, AutoNetworkedField] + public EntityUid? CP14ZLevelUpActionEntity; + + [DataField] + public EntProtoId CP14ZLevelDownAction = "CP14ActionZLevelDown"; + + [DataField, AutoNetworkedField] + public EntityUid? CP14ZLevelDownActionEntity; + //CP14 Ghost entities end + // End actions [ViewVariables(VVAccess.ReadWrite), DataField] diff --git a/Content.Shared/_CP14/ZLevel/ZLevelActions.cs b/Content.Shared/_CP14/ZLevel/ZLevelActions.cs new file mode 100644 index 0000000000..041ed47f50 --- /dev/null +++ b/Content.Shared/_CP14/ZLevel/ZLevelActions.cs @@ -0,0 +1,17 @@ +using Content.Shared.Actions; + +namespace Content.Shared._CP14.ZLevel; + +/// +/// Should be relayed upon using the action. +/// +public sealed partial class CP14ZLevelActionUp : InstantActionEvent +{ +} + +/// +/// Should be relayed upon using the action. +/// +public sealed partial class CP14ZLevelActionDown : InstantActionEvent +{ +} diff --git a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml index 0a40e64fd7..7d55cbbd44 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/admin_ghost.yml @@ -34,53 +34,53 @@ - NuclearOperative - SyndicateAgent - CentralCommand - - type: UserInterface - interfaces: - enum.SolarControlConsoleUiKey.Key: - type: SolarControlConsoleBoundUserInterface - enum.CommunicationsConsoleUiKey.Key: - type: CommunicationsConsoleBoundUserInterface - enum.RadarConsoleUiKey.Key: - type: RadarConsoleBoundUserInterface - enum.CargoConsoleUiKey.Orders: - type: CargoOrderConsoleBoundUserInterface - enum.CrewMonitoringUIKey.Key: - type: CrewMonitoringBoundUserInterface - enum.GeneralStationRecordConsoleKey.Key: - # who the fuck named this bruh - type: GeneralStationRecordConsoleBoundUserInterface - - type: IntrinsicUI - uis: - enum.SolarControlConsoleUiKey.Key: - toggleAction: ActionAGhostShowSolar - enum.CommunicationsConsoleUiKey.Key: - toggleAction: ActionAGhostShowCommunications - enum.RadarConsoleUiKey.Key: - toggleAction: ActionAGhostShowRadar - enum.CargoConsoleUiKey.Orders: - toggleAction: ActionAGhostShowCargo - enum.CrewMonitoringUIKey.Key: - toggleAction: ActionAGhostShowCrewMonitoring - enum.GeneralStationRecordConsoleKey.Key: - toggleAction: ActionAGhostShowStationRecords - - type: SolarControlConsole # look ma i AM the computer! - - type: CommunicationsConsole - title: comms-console-announcement-title-centcom - color: "#228b22" - - type: RadarConsole - followEntity: true - - type: CargoOrderConsole - - type: BankClient - - type: CrewMonitoringConsole - - type: GeneralStationRecordConsole - canDeleteEntries: true - - type: DeviceNetwork - deviceNetId: Wireless - receiveFrequencyId: CrewMonitor - transmitFrequencyId: ShuttleTimer - - type: WirelessNetworkConnection - range: 500 - - type: StationLimitedNetwork + #- type: UserInterface + # interfaces: + # enum.SolarControlConsoleUiKey.Key: + # type: SolarControlConsoleBoundUserInterface + # enum.CommunicationsConsoleUiKey.Key: + # type: CommunicationsConsoleBoundUserInterface + # enum.RadarConsoleUiKey.Key: + # type: RadarConsoleBoundUserInterface + # enum.CargoConsoleUiKey.Orders: + # type: CargoOrderConsoleBoundUserInterface + # enum.CrewMonitoringUIKey.Key: + # type: CrewMonitoringBoundUserInterface + # enum.GeneralStationRecordConsoleKey.Key: + # # who the fuck named this bruh + # type: GeneralStationRecordConsoleBoundUserInterface + #- type: IntrinsicUI + # uis: + # enum.SolarControlConsoleUiKey.Key: + # toggleAction: ActionAGhostShowSolar + # enum.CommunicationsConsoleUiKey.Key: + # toggleAction: ActionAGhostShowCommunications + # enum.RadarConsoleUiKey.Key: + # toggleAction: ActionAGhostShowRadar + # enum.CargoConsoleUiKey.Orders: + # toggleAction: ActionAGhostShowCargo + # enum.CrewMonitoringUIKey.Key: + # toggleAction: ActionAGhostShowCrewMonitoring + # enum.GeneralStationRecordConsoleKey.Key: + # toggleAction: ActionAGhostShowStationRecords + #- type: SolarControlConsole # look ma i AM the computer! + #- type: CommunicationsConsole + # title: comms-console-announcement-title-centcom + # color: "#228b22" + #- type: RadarConsole + # followEntity: true + #- type: CargoOrderConsole + #- type: BankClient + #- type: CrewMonitoringConsole + #- type: GeneralStationRecordConsole + # canDeleteEntries: true + #- type: DeviceNetwork + # deviceNetId: Wireless + # receiveFrequencyId: CrewMonitor + # transmitFrequencyId: ShuttleTimer + #- type: WirelessNetworkConnection + # range: 500 + #- type: StationLimitedNetwork - type: Thieving stripTimeReduction: 9999 stealthy: true diff --git a/Resources/Prototypes/_CP14/Entities/Actions/zLevels.yml b/Resources/Prototypes/_CP14/Entities/Actions/zLevels.yml new file mode 100644 index 0000000000..0bbfee1e02 --- /dev/null +++ b/Resources/Prototypes/_CP14/Entities/Actions/zLevels.yml @@ -0,0 +1,17 @@ +- type: entity + id: CP14ActionZLevelUp + name: Move up + description: Move up one Z-Level + components: + - type: InstantAction + icon: _CP14/Actions/zLevel.rsi/up.png + event: !type:CP14ZLevelActionUp + +- type: entity + id: CP14ActionZLevelDown + name: Move down + description: Move down one Z-Level + components: + - type: InstantAction + icon: _CP14/Actions/zLevel.rsi/down.png + event: !type:CP14ZLevelActionDown \ No newline at end of file diff --git a/Resources/Textures/_CP14/Actions/zLevel.rsi/down.png b/Resources/Textures/_CP14/Actions/zLevel.rsi/down.png new file mode 100644 index 0000000000000000000000000000000000000000..e53a32fed370d88d37e1e0f63770ec20e35ef09c GIT binary patch literal 447 zcmV;w0YLtVP)Px$c}YY;R9J=Wma%QaFc3vQ1CJmtV7rh8ND;)X3r&zN8z>{V&oBcmXV4iF%aNB(z5@<;&>+pH7G@vECkaOYh3i09I-pB62? zURvBCkz9xyF2G;e3@`)C05ib91B{kpZq2vZ*c@Z!dCewTYjZ(r z?*U4&D&9|dnfXQR8q;N9OdJ5zWx0J?b_3tlS#dp7nBUPM2%5pu{ufuUs}AL`$W pC2-wv>c#`y*_z}Sa*m#9zHcw&FfXwDAD#dJ002ovPDHLkV1gAyz4ibA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_CP14/Actions/zLevel.rsi/meta.json b/Resources/Textures/_CP14/Actions/zLevel.rsi/meta.json new file mode 100644 index 0000000000..6dd9714094 --- /dev/null +++ b/Resources/Textures/_CP14/Actions/zLevel.rsi/meta.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CLA", + "copyright": "Created by TheShuEd", + "states": [ + { + "name": "down" + }, + { + "name": "up" + } + ] +} diff --git a/Resources/Textures/_CP14/Actions/zLevel.rsi/up.png b/Resources/Textures/_CP14/Actions/zLevel.rsi/up.png new file mode 100644 index 0000000000000000000000000000000000000000..186ffc908f95a416ab7eda10b2e2ac6ebd4f1636 GIT binary patch literal 384 zcmV-`0e}99P)Px$I!Q!9R9J;$WFQl$C~N*l=HIz{osnF#$g(_c_3Qs}t6%^B@#Dw;4X?iaM|Tjh zfMi#zC~N+=>NtcVHp`cnVaKO`3?-JvB!>h^im_QvsUwJ1h|h9L96^*KVk{@u5d;;G zVmUdEz$;0P<)k_SrvxRIli~=hg4D2_SVv$8P}6c^9Dy?gu!)nB4Y2`iA;3bcLQ;!b zV#@(0QVgX97VN@v0Lg7aV$@NkO^C}fWW!0RA1H1QpjW9dH8AmY2fs4R z^5tbn+x!`?K6JZq*M=2#aNm*JCR}&$D?zn56CupC$i9Tt^W^q|umP+g0J8+$a^#S} z7Thp^OPpv2V6&Wofq~&zg&katP6h6$LDr{J0TIKM2yuo00|UY*=#GIULS!|#0NMQl eYGgxV$^!t8GWR=1hkGXg0000