diff --git a/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs b/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs index 8af5edaf31..9a819b257b 100644 --- a/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs +++ b/Content.IntegrationTests/Tests/Construction/Interaction/ComputerContruction.cs @@ -39,7 +39,7 @@ public sealed class ComputerConstruction : InteractionTest await StartDeconstruction(ComputerId); // Initial interaction turns id computer into generic computer - await InteractUsing(Screw); + await InteractUsing(Pry); AssertPrototype(ComputerFrame); // Perform deconstruction steps @@ -69,7 +69,7 @@ public sealed class ComputerConstruction : InteractionTest await SpawnTarget(ComputerId); // Initial interaction turns id computer into generic computer - await InteractUsing(Screw); + await InteractUsing(Pry); AssertPrototype(ComputerFrame); // Perform partial deconstruction steps diff --git a/Resources/Locale/en-US/wires/wire-names.ftl b/Resources/Locale/en-US/wires/wire-names.ftl index 1ac2ae8912..16ae068eaa 100644 --- a/Resources/Locale/en-US/wires/wire-names.ftl +++ b/Resources/Locale/en-US/wires/wire-names.ftl @@ -40,6 +40,7 @@ wires-board-name-fatextractor = FatExtractor wires-board-name-flatpacker = Flatpacker wires-board-name-spaceheater = Space Heater wires-board-name-jukebox = Jukebox +wires-board-name-computer = Computer # names that get displayed in the wire hacking hud & admin logs. diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml index 204e06c860..9baca8b4b6 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/base_structurecomputers.yml @@ -30,6 +30,8 @@ state: generic - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Appearance - type: GenericVisualizer visuals: @@ -40,6 +42,10 @@ computerLayerKeys: True: { visible: true, shader: unshaded } False: { visible: true, shader: shaded } + enum.WiresVisuals.MaintenancePanelState: + enum.WiresVisualLayers.MaintenancePanel: + True: { visible: false } + False: { visible: true } - type: LitOnPowered - type: PointLight radius: 1.5 @@ -61,3 +67,26 @@ - type: LightningTarget priority: 1 - type: RequireProjectileTarget + - type: Electrified + enabled: false + usesApcPower: true + - type: WiresPanel + - type: WiresVisuals + - type: Wires + boardName: wires-board-name-computer + layoutId: Computer +# +# This is overwritten by children, so needs to be defined there +# - type: UserInterface +# interfaces: +# enum.WiresUiKey.Key: +# type: WiresBoundUserInterface + +- type: entity + parent: BaseComputer + id: BaseComputerAiAccess + components: + - type: StationAiWhitelist + - type: Wires + boardName: wires-board-name-computer + layoutId: ComputerAi diff --git a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml index f9fd10152f..4cd596e9b4 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/Computers/computers.yml @@ -1,10 +1,9 @@ - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerAlert name: atmospheric alerts computer description: Used to access the station's atmospheric automated alert system. components: - - type: StationAiWhitelist - type: Computer board: AlertsComputerCircuitboard - type: Sprite @@ -17,6 +16,8 @@ state: alert-0 - map: ["computerLayerKeys"] state: atmos_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: GenericVisualizer visuals: enum.ComputerVisuals.Powered: @@ -25,7 +26,7 @@ False: { visible: false } computerLayerKeys: True: { visible: true, shader: unshaded } - False: { visible: true, shader: shaded } + False: { visible: true, shader: shaded } enum.AtmosAlertsComputerVisuals.ComputerLayerScreen: computerLayerScreen: 0: { state: alert-0 } @@ -33,6 +34,10 @@ 2: { state: alert-1 } 3: { state: alert-2 } 4: { state: alert-2 } + enum.WiresVisuals.MaintenancePanelState: + enum.WiresVisualLayers.MaintenancePanel: + True: { visible: false } + False: { visible: true } - type: AtmosAlertsComputer - type: ActivatableUI singleUser: true @@ -41,6 +46,8 @@ interfaces: enum.AtmosAlertsComputerUiKey.Key: type: AtmosAlertsComputerBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: entity parent: BaseComputer @@ -58,6 +65,8 @@ interfaces: enum.EmergencyConsoleUiKey.Key: type: EmergencyConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: PointLight radius: 1.5 energy: 1.6 @@ -79,6 +88,8 @@ interfaces: enum.ShuttleConsoleUiKey.Key: type: ShuttleConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: RadarConsole - type: WorldLoader radius: 256 @@ -121,6 +132,8 @@ state: shuttle - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Computer board: ShuttleConsoleCircuitboard @@ -140,6 +153,8 @@ state: syndishuttle - map: ["computerLayerKeys"] state: syndie_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Tag tags: - Syndicate @@ -170,6 +185,8 @@ state: shuttle - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: DroneConsole components: - type: CargoShuttle @@ -185,12 +202,11 @@ stealGroup: CargoShuttleConsoleCircuitboard - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerIFF name: IFF computer description: Allows you to control the IFF characteristics of this vessel. components: - - type: StationAiWhitelist - type: IFFConsole - type: Sprite layers: @@ -203,12 +219,16 @@ state: helm - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: ActivatableUI key: enum.IFFConsoleUiKey.Key - type: UserInterface interfaces: enum.IFFConsoleUiKey.Key: type: IFFConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: ComputerIFFCircuitboard @@ -229,16 +249,17 @@ interfaces: enum.IFFConsoleUiKey.Key: type: IFFConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: ComputerIFFSyndicateCircuitboard - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerPowerMonitoring name: power monitoring computer description: It monitors power levels across the station. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -249,6 +270,8 @@ state: power_monitor - map: ["computerLayerKeys"] state: power_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: PointLight radius: 1.5 energy: 1.6 @@ -270,14 +293,15 @@ interfaces: enum.PowerMonitoringConsoleUiKey.Key: type: PowerMonitoringConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerMedicalRecords name: medical records computer description: This can be used to check medical records. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -288,6 +312,8 @@ state: medcomp - map: ["computerLayerKeys"] state: med_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: PointLight radius: 1.5 energy: 1.6 @@ -296,17 +322,18 @@ board: MedicalRecordsComputerCircuitboard - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerCriminalRecords name: criminal records computer description: This can be used to check criminal records. Only security can modify them. components: - - type: StationAiWhitelist - type: CriminalRecordsConsole - type: UserInterface interfaces: enum.CriminalRecordsConsoleKey.Key: type: CriminalRecordsConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: ActivatableUI key: enum.CriminalRecordsConsoleKey.Key - type: Sprite @@ -319,6 +346,8 @@ state: explosive - map: ["computerLayerKeys"] state: security_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: PointLight radius: 1.5 energy: 1.6 @@ -332,17 +361,18 @@ - CriminalRecords - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerStationRecords name: station records computer description: This can be used to check station records. components: - - type: StationAiWhitelist - type: GeneralStationRecordConsole - type: UserInterface interfaces: enum.GeneralStationRecordConsoleKey.Key: type: GeneralStationRecordConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: ActivatableUI key: enum.GeneralStationRecordConsoleKey.Key - type: PointLight @@ -356,12 +386,11 @@ - Forensics - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerCrewMonitoring name: crew monitoring console description: Used to monitor active health sensors built into most of the crew's uniforms. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -372,6 +401,8 @@ state: crew - map: ["computerLayerKeys"] state: med_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: PointLight radius: 1.5 energy: 1.6 @@ -384,6 +415,8 @@ interfaces: enum.CrewMonitoringUIKey.Key: type: CrewMonitoringBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: CrewMonitoringConsole - type: DeviceNetwork deviceNetId: Wireless @@ -392,12 +425,11 @@ range: 1200 - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerResearchAndDevelopment name: R&D computer description: A computer used to interface with R&D tools. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -408,6 +440,8 @@ state: rdcomp - map: ["computerLayerKeys"] state: rd_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: ResearchClient - type: ResearchConsole - type: ActiveRadio @@ -422,6 +456,8 @@ type: ResearchConsoleBoundUserInterface enum.ResearchClientUiKey.Key: type: ResearchClientBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: ApcPowerReceiver powerLoad: 1000 - type: Computer @@ -437,12 +473,11 @@ - Science - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerAnalysisConsole name: analysis console description: A computer used to interface with the artifact analyzer. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -453,6 +488,8 @@ state: artifact - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: ResearchClient - type: AnalysisConsole reportEntityId: PaperArtifactAnalyzer @@ -471,6 +508,8 @@ type: AnalysisConsoleBoundUserInterface enum.ResearchClientUiKey.Key: type: ResearchClientBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: ApcPowerReceiver powerLoad: 1000 - type: Computer @@ -484,12 +523,11 @@ - Xenoarchaeology - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerId name: ID card computer description: Terminal for programming Nanotrasen employee ID cards to access parts of the station. components: - - type: StationAiWhitelist - type: IdCardConsole privilegedIdSlot: name: id-card-console-privileged-id @@ -515,6 +553,8 @@ interfaces: enum.IdCardConsoleUiKey.Key: type: IdCardConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: CrewManifestViewer ownerKey: enum.IdCardConsoleUiKey.Key - type: Sprite @@ -527,6 +567,8 @@ state: id - map: ["computerLayerKeys"] state: id_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Computer board: IDComputerCircuitboard - type: PointLight @@ -544,12 +586,11 @@ IdCardConsole-targetId: !type:ContainerSlot - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: computerBodyScanner name: body scanner computer description: A body scanner. components: - - type: StationAiWhitelist - type: ApcPowerReceiver powerLoad: 500 - type: Computer @@ -560,12 +601,11 @@ color: "#1f8c28" - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerComms name: communications computer description: A computer used to make station wide announcements via keyboard, set the appropriate alert level, and call the emergency shuttle. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -576,6 +616,8 @@ state: comm - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: AccessReader access: [[ "Command" ]] - type: CommunicationsConsole @@ -588,6 +630,8 @@ interfaces: enum.CommunicationsConsoleUiKey.Key: type: CommunicationsConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: CommsComputerCircuitboard - type: PointLight @@ -614,6 +658,8 @@ state: comm_syndie - map: ["computerLayerKeys"] state: syndie_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: AccessReader access: [[ "NuclearOperative" ]] - type: CommunicationsConsole @@ -630,12 +676,11 @@ color: "#f71713" - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerSolarControl name: solar control computer description: A controller for solar panel arrays. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -646,6 +691,8 @@ state: solar_screen - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: SolarControlConsole - type: ActivatableUI key: enum.SolarControlConsoleUiKey.Key @@ -653,6 +700,8 @@ interfaces: enum.SolarControlConsoleUiKey.Key: type: SolarControlConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: SolarControlComputerCircuitboard - type: PointLight @@ -661,12 +710,11 @@ color: "#e6e227" - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerRadar name: mass scanner computer description: A computer for detecting nearby bodies, displaying them by position and mass. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -677,6 +725,8 @@ state: solar_screen - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: RadarConsole - type: ActivatableUI key: enum.RadarConsoleUiKey.Key @@ -684,6 +734,8 @@ interfaces: enum.RadarConsoleUiKey.Key: type: RadarConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: RadarConsoleCircuitboard - type: PointLight @@ -693,11 +745,10 @@ - type: entity id: ComputerCargoShuttle - parent: BaseComputer + parent: BaseComputerAiAccess name: cargo shuttle computer description: Used to order the shuttle. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -708,6 +759,8 @@ state: supply - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: CargoShuttleConsole - type: ActivatableUI key: enum.CargoConsoleUiKey.Shuttle @@ -715,6 +768,8 @@ interfaces: enum.CargoConsoleUiKey.Shuttle: type: CargoShuttleConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: CargoShuttleComputerCircuitboard - type: PointLight @@ -729,11 +784,10 @@ - type: entity id: ComputerCargoOrders - parent: BaseComputer + parent: BaseComputerAiAccess name: cargo request computer description: Used to order supplies and approve requests. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -744,6 +798,8 @@ state: request - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: CargoOrderConsole - type: BankClient - type: ActiveRadio @@ -755,6 +811,8 @@ interfaces: enum.CargoConsoleUiKey.Orders: type: CargoOrderConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: CargoRequestComputerCircuitboard - type: PointLight @@ -778,11 +836,10 @@ - type: entity id: ComputerCargoBounty - parent: BaseComputer + parent: BaseComputerAiAccess name: cargo bounty computer description: Used to manage currently active bounties. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -793,6 +850,8 @@ state: bounty - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: CargoBountyConsole - type: ActivatableUI key: enum.CargoConsoleUiKey.Bounty @@ -800,6 +859,8 @@ interfaces: enum.CargoConsoleUiKey.Bounty: type: CargoBountyConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: CargoBountyComputerCircuitboard - type: PointLight @@ -814,12 +875,11 @@ - Cargo - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerCloningConsole name: cloning console computer description: The centerpiece of the cloning system, medicine's greatest accomplishment. It has lots of ports and wires. components: - - type: StationAiWhitelist - type: CloningConsole - type: DeviceList - type: DeviceNetwork @@ -834,6 +894,8 @@ state: dna - map: ["computerLayerKeys"] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: ApcPowerReceiver powerLoad: 3100 #We want this to fail first so I transferred most of the scanner and pod's power here. (3500 in total) - type: Computer @@ -853,6 +915,8 @@ interfaces: enum.CloningConsoleUiKey.Key: type: CloningConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Speech speechVerb: Robotic speechSounds: Pai @@ -865,11 +929,10 @@ - type: entity id: ComputerSalvageExpedition - parent: BaseComputer + parent: BaseComputerAiAccess name: salvage expeditions computer description: Used to accept salvage missions, if you're tough enough. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -880,6 +943,8 @@ state: mining - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Appearance - type: GenericVisualizer visuals: @@ -890,6 +955,10 @@ computerLayerKeys: True: { visible: true, shader: unshaded } False: { visible: true } + enum.WiresVisuals.MaintenancePanelState: + enum.WiresVisualLayers.MaintenancePanel: + True: { visible: false } + False: { visible: true } - type: SalvageExpeditionConsole - type: ActivatableUI key: enum.SalvageConsoleUiKey.Expedition @@ -898,6 +967,8 @@ interfaces: enum.SalvageConsoleUiKey.Expedition: type: SalvageExpeditionConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: SalvageExpeditionsComputerCircuitboard - type: PointLight @@ -925,6 +996,8 @@ state: cameras - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Computer board: SurveillanceCameraMonitorCircuitboard - type: DeviceNetwork @@ -943,6 +1016,8 @@ interfaces: enum.SurveillanceCameraMonitorUiKey.Key: type: SurveillanceCameraMonitorBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: entity parent: BaseComputer @@ -960,6 +1035,8 @@ state: cameras - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Computer board: SurveillanceWirelessCameraMonitorCircuitboard - type: DeviceNetwork @@ -980,14 +1057,15 @@ interfaces: enum.SurveillanceCameraMonitorUiKey.Key: type: SurveillanceCameraMonitorBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: entity id: ComputerPalletConsole - parent: BaseComputer + parent: BaseComputerAiAccess name: cargo sale computer description: Used to sell goods loaded onto cargo pallets. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -998,6 +1076,8 @@ state: request - map: ["computerLayerKeys"] state: tech_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Anchorable flags: - Anchorable @@ -1008,6 +1088,8 @@ interfaces: enum.CargoPalletConsoleUiKey.Sale: type: CargoPalletConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: Computer board: CargoSaleComputerCircuitboard - type: PointLight @@ -1019,12 +1101,11 @@ - Cargo - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerMassMedia name: news manager console description: Write your message to the world! components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -1035,6 +1116,8 @@ state: service - map: ["computerLayerKeys"] state: service_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: Computer board: ComputerMassMediaCircuitboard - type: DeviceNetworkRequiresPower @@ -1050,6 +1133,8 @@ interfaces: enum.NewsWriterUiKey.Key: type: NewsWriterBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: entity parent: BaseComputer @@ -1070,6 +1155,8 @@ state: sensors - map: ["computerLayerKeys"] state: atmos_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: PointLight radius: 1.5 energy: 1.6 @@ -1083,6 +1170,8 @@ interfaces: enum.SensorMonitoringConsoleUiKey.Key: type: SensorMonitoringConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: DeviceNetwork deviceNetId: AtmosDevices receiveFrequencyId: AtmosMonitor @@ -1095,12 +1184,11 @@ - type: AtmosDevice - type: entity - parent: BaseComputer + parent: BaseComputerAiAccess id: ComputerRoboticsControl name: robotics control console description: Used to remotely monitor, disable and destroy the station's cyborgs. components: - - type: StationAiWhitelist - type: Sprite layers: - map: ["computerLayerBody"] @@ -1111,6 +1199,8 @@ state: robot - map: ["computerLayerKeys"] state: rd_key + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: RoboticsConsole - type: ActiveRadio channels: @@ -1121,6 +1211,8 @@ interfaces: enum.RoboticsConsoleUiKey.Key: type: RoboticsConsoleBoundUserInterface + enum.WiresUiKey.Key: + type: WiresBoundUserInterface - type: ApcPowerReceiver powerLoad: 1000 - type: DeviceNetwork @@ -1150,6 +1242,8 @@ state: aiupload - map: [ "computerLayerKeys" ] state: generic_keys + - map: [ "enum.WiresVisualLayers.MaintenancePanel" ] + state: generic_panel_open - type: ApcPowerReceiver powerLoad: 1000 - type: Computer diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/machines/computer.yml b/Resources/Prototypes/Recipes/Construction/Graphs/machines/computer.yml index 4792bb216f..b3c9cac926 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/machines/computer.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/machines/computer.yml @@ -117,15 +117,15 @@ amount: 2 steps: - tool: Prying + doAfter: 1 - node: computer entity: !type:BoardNodeEntity { container: board } edges: - to: monitorUnsecured - conditions: - - !type:AllWiresCut {} steps: - - tool: Screwing + - tool: Prying + doAfter: 1 - node: monitorBroken entity: ComputerBroken diff --git a/Resources/Prototypes/Wires/layouts.yml b/Resources/Prototypes/Wires/layouts.yml index 7b42ef8b75..955bae0104 100644 --- a/Resources/Prototypes/Wires/layouts.yml +++ b/Resources/Prototypes/Wires/layouts.yml @@ -156,22 +156,35 @@ id: TrainingDefusable dummyWires: 0 wires: - - !type:ActivateWireAction - - !type:BoltWireAction - - !type:DelayWireAction - - !type:ProceedWireAction - - !type:BoomWireAction - + - !type:ActivateWireAction + - !type:BoltWireAction + - !type:DelayWireAction + - !type:ProceedWireAction + - !type:BoomWireAction + - type: wireLayout id: Jukebox dummyWires: 2 wires: - - !type:PowerWireAction - - !type:AiInteractWireAction - + - !type:PowerWireAction + - !type:AiInteractWireAction + - type: wireLayout id: AnomalyGenerator dummyWires: 2 wires: - - !type:PowerWireAction - - !type:AiInteractWireAction + - !type:PowerWireAction + - !type:AiInteractWireAction + +- type: wireLayout + id: Computer + dummyWires: 3 + wires: + - !type:PowerWireAction + +- type: wireLayout + id: ComputerAi + dummyWires: 2 + wires: + - !type:PowerWireAction + - !type:AiInteractWireAction diff --git a/Resources/Textures/Structures/Machines/computers.rsi/generic_panel_open.png b/Resources/Textures/Structures/Machines/computers.rsi/generic_panel_open.png new file mode 100644 index 0000000000..ac7f9f6641 Binary files /dev/null and b/Resources/Textures/Structures/Machines/computers.rsi/generic_panel_open.png differ diff --git a/Resources/Textures/Structures/Machines/computers.rsi/meta.json b/Resources/Textures/Structures/Machines/computers.rsi/meta.json index b6741b195d..5355f379ab 100644 --- a/Resources/Textures/Structures/Machines/computers.rsi/meta.json +++ b/Resources/Textures/Structures/Machines/computers.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bd6873fd4dd6a61d7e46f1d75cd4d90f64c40894. comm_syndie made by Veritius, based on comm.", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/bd6873fd4dd6a61d7e46f1d75cd4d90f64c40894. comm_syndie made by Veritius, based on comm. generic_panel_open made by Errant, commit https://github.com/space-wizards/space-station-14/pull/32273.", "size": { "x": 32, "y": 32 @@ -1013,6 +1013,10 @@ "name": "generic_keys", "directions": 4 }, + { + "name": "generic_panel_open", + "directions": 4 + }, { "name": "generic_keyboard", "directions": 4