diff --git a/Resources/Locale/ru-RU/white/structures/wallmounts.ftl b/Resources/Locale/ru-RU/white/structures/wallmounts.ftl new file mode 100644 index 0000000000..3d70ab1702 --- /dev/null +++ b/Resources/Locale/ru-RU/white/structures/wallmounts.ftl @@ -0,0 +1,2 @@ +ent-ComputerWall = настенная консоль + .desc = Форма для сборки настенной консоли \ No newline at end of file diff --git a/Resources/Prototypes/White/Construction/Wallmount/graphs.yml b/Resources/Prototypes/White/Construction/Wallmount/graphs.yml new file mode 100644 index 0000000000..29252ced77 --- /dev/null +++ b/Resources/Prototypes/White/Construction/Wallmount/graphs.yml @@ -0,0 +1,144 @@ +- type: constructionGraph + id: ComputerWall + start: start + graph: + - node: start + edges: + - to: frameUnsecured + completed: + - !type:SetAnchor + value: true + steps: + - material: Steel + amount: 5 + + - node: frameUnsecured + entity: ComputerWallFrame + actions: + - !type:AppearanceChange + edges: + - to: boardUnsecured + conditions: + - !type:EntityAnchored { } + steps: + - tag: WallMountConsoleElectronics + store: board + name: любую плату настенной консоли + icon: + sprite: "Objects/Misc/module.rsi" + state: "id_mod" + + - to: start + conditions: + - !type:EntityAnchored + anchored: false + completed: + - !type:SpawnPrototype + prototype: SheetSteel1 + amount: 5 + - !type:DeleteEntity { } + steps: + - tool: Welding + doAfter: 2 + + - node: boardUnsecured + entity: ComputerWallFrame + actions: + - !type:AppearanceChange + edges: + - to: missingWires + conditions: + - !type:EntityAnchored { } + steps: + - tool: Screwing + + - to: frameUnsecured + conditions: + - !type:EntityAnchored { } + completed: + - !type:EmptyAllContainers { } + steps: + - tool: Prying + + - node: missingWires + entity: ComputerWallFrame + actions: + - !type:AppearanceChange + edges: + - to: monitorMissing + conditions: + - !type:EntityAnchored { } + steps: + - material: Cable + amount: 5 + + - to: boardUnsecured + conditions: + - !type:EntityAnchored { } + steps: + - tool: Screwing + + - node: monitorMissing + entity: ComputerWallFrame + actions: + - !type:SetAnchor { } + - !type:AppearanceChange + edges: + - to: monitorUnsecured + conditions: + - !type:EntityAnchored { } + steps: + - material: Glass + amount: 2 + + - to: missingWires + conditions: + - !type:EntityAnchored { } + completed: + - !type:SpawnPrototype + prototype: CableApcStack1 + amount: 5 + steps: + - tool: Cutting + + - node: monitorUnsecured + entity: ComputerWallFrame + actions: + - !type:AppearanceChange + edges: + - to: computer + conditions: + - !type:EntityAnchored { } + steps: + - tool: Screwing + + - to: monitorMissing + conditions: + - !type:EntityAnchored { } + completed: + - !type:SpawnPrototype + prototype: SheetGlass1 + amount: 2 + steps: + - tool: Prying + + - node: computer + entity: !type:BoardNodeEntity { container: board } + edges: + - to: monitorUnsecured + steps: + - tool: Screwing + + - node: monitorBroken + entity: ComputerWallBroken + edges: + - to: monitorMissing + conditions: + - !type:EntityAnchored { } + completed: + - !type:SpawnPrototype + prototype: ShardGlass + amount: 2 + steps: + - tool: Prying + doAfter: 2 diff --git a/Resources/Prototypes/White/Construction/Wallmount/structures.yml b/Resources/Prototypes/White/Construction/Wallmount/structures.yml new file mode 100644 index 0000000000..a2e064494c --- /dev/null +++ b/Resources/Prototypes/White/Construction/Wallmount/structures.yml @@ -0,0 +1,17 @@ +- type: construction + name: wall mount console + id: ComputerWall + graph: ComputerWall + startNode: start + targetNode: computer + category: construction-category-machines + description: Форма для сборки настенной консоли + placementMode: SnapgridCenter + objectType: Structure + canRotate: true + canBuildInImpassable: true + icon: + sprite: White/Structures/Machines/wall_consoles.rsi + state: comp_wall_0 + conditions: + - !type:WallmountCondition {} \ No newline at end of file diff --git a/Resources/Prototypes/White/Entities/Objects/Devices/Circuitboards/wallmount_consoles.yml b/Resources/Prototypes/White/Entities/Objects/Devices/Circuitboards/wallmount_consoles.yml new file mode 100644 index 0000000000..8646398838 --- /dev/null +++ b/Resources/Prototypes/White/Entities/Objects/Devices/Circuitboards/wallmount_consoles.yml @@ -0,0 +1,70 @@ +# board +- type: entity + parent: BaseComputerCircuitboard + id: SalvageConsoleWallMountCircuitboard + name: плата настенной консоли экспедиций + description: Плата для создания настенной консоли экспедиций. + components: + - type: Sprite + state: cpu_supply + - type: ComputerBoard + prototype: SalvageConsoleWallMount + - type: Tag + tags: + - WallMountConsoleElectronics + +- type: entity + parent: BaseComputerCircuitboard + id: MediaConsoleWallMountCircuitboard + name: плата настенной консоли СМИ + description: Плата для создания настенной консоли СМИ. + components: + - type: Sprite + state: cpu_service + - type: ComputerBoard + prototype: MassMediaConsoleWallMount + - type: Tag + tags: + - WallMountConsoleElectronics + +- type: entity + parent: BaseComputerCircuitboard + id: OrdersConsoleWallMountCircuitboard + name: плата настенной консоли заказа грузов + description: Плата для создания настенной консоли заказа грузов. + components: + - type: Sprite + state: cpu_supply + - type: ComputerBoard + prototype: OrdersConsoleWallMount + - type: Tag + tags: + - WallMountConsoleElectronics + +- type: entity + parent: BaseComputerCircuitboard + id: RadarConsoleWallMountCircuitboard + name: плата настенной консоли сканера массы + description: Плата для создания настенной консоли сканера массы. + components: + - type: Sprite + state: cpu_supply + - type: ComputerBoard + prototype: RadarConsoleWallMount + - type: Tag + tags: + - WallMountConsoleElectronics + +- type: entity + parent: BaseComputerCircuitboard + id: PowerConsoleWallMountCircuitboard + name: плата настенной консоли контроля питания + description: Плата для создания настенной консоли контроля питания. + components: + - type: Sprite + state: cpu_engineering + - type: ComputerBoard + prototype: PowerConsoleWallMount + - type: Tag + tags: + - WallMountConsoleElectronics diff --git a/Resources/Prototypes/White/Entities/Structures/Wallmounts/consoles.yml b/Resources/Prototypes/White/Entities/Structures/Wallmounts/consoles.yml new file mode 100644 index 0000000000..5f598b19cd --- /dev/null +++ b/Resources/Prototypes/White/Entities/Structures/Wallmounts/consoles.yml @@ -0,0 +1,377 @@ +# Base structure +- type: entity + id: BaseStructureWallMountConsole + parent: BaseStructure + abstract: true + components: + - type: Physics + bodyType: Static + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.35,0.25,0.35" + density: 190 + mask: + - MachineMask + layer: + - MachineLayer + - type: InteractionOutline + - type: Rotatable + - type: WallMount + arc: 360 + - type: Construction + graph: ComputerWall + node: frameUnsecured + - type: Transform + anchored: true + - type: Sprite + drawdepth: Objects + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Metallic + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: GlassBreak + - !type:ChangeConstructionNodeBehavior + node: monitorBroken + - !type:DoActsBehavior + acts: [ "Destruction" ] + +# Base console +- type: entity + parent: BaseStructureWallMountConsole + id: BaseWallConsole + name: настенная консоль + placement: + mode: SnapgridCenter + components: + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Effects/glass_hit.ogg" + - type: Construction + graph: ComputerWall + node: computer + containers: + - board + - type: Computer + - type: ApcPowerReceiver + powerLoad: 200 + - type: ExtensionCableReceiver + - type: ActivatableUIRequiresPower + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + layers: + - map: [ "computerLayerBody" ] + state: comp_wall_0 + - map: [ "computerLayerScreen" ] + state: no_board_layer + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ComputerVisuals.Powered: + computerLayerScreen: + True: { visible: true, shader: unshaded } + False: { visible: false } + computerLayerKeys: + True: { visible: true, shader: unshaded } + False: { visible: true, shader: shaded } + - type: LitOnPowered + - type: PointLight + radius: 1.5 + energy: 1.6 + enabled: false + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + offset: "0, 0.4" # shine from the top, not bottom of the computer + castShadows: false + - type: EmitSoundOnUIOpen + sound: + collection: Keyboard + - type: ContainerContainer + containers: + board: !type:Container + ents: [ ] + +# Broken +- type: entity + parent: BaseStructureWallMountConsole + id: ComputerWallBroken + name: разбитая настенная консоль + description: Эта консоль видала лучшие времена. + components: + - type: Construction + graph: ComputerWall + node: monitorBroken + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + state: comp_wall_broken + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 100 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/metalbreak.ogg + - !type:SpawnEntitiesBehavior + spawn: + SheetSteel1: + min: 1 + max: 1 + - !type:DoActsBehavior + acts: [ "Destruction" ] + +# Frame +- type: entity + id: ComputerWallFrame + parent: BaseStructureWallMountConsole + name: рамка настенной консоли + description: Рамка для сборки настенной консоли. + components: + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + layers: + - state: comp_wall_frame_1 + map: [ "enum.ConstructionVisuals.Layer" ] + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ConstructionVisuals.Key: + enum.ConstructionVisuals.Layer: + frameUnsecured: { state: comp_wall_frame_0 } + boardUnsecured: { state: comp_wall_frame_0_1 } + missingWires: { state: comp_wall_frame_1 } + monitorMissing: { state: comp_wall_frame_1_2 } + monitorUnsecured: { state: comp_wall_frame_2 } + +# Salvage console +- type: entity + id: SalvageConsoleWallMount + parent: BaseWallConsole + name: настенная консоль экспедиций + description: Настенная версия консоли экспедиций. + components: + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + layers: + - map: [ "computerLayerBody" ] + state: comp_wall_0 + - map: [ "computerLayerScreen" ] + state: miner_layer + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ComputerVisuals.Powered: + computerLayerScreen: + True: { visible: true, shader: unshaded } + False: { visible: false } + computerLayerKeys: + True: { visible: true, shader: unshaded } + False: { visible: true } + - type: SalvageExpeditionConsole + - type: ActivatableUI + key: enum.SalvageConsoleUiKey.Expedition + - type: ActivatableUIRequiresPower + - type: UserInterface + interfaces: + - key: enum.SalvageConsoleUiKey.Expedition + type: SalvageExpeditionConsoleBoundUserInterface + - type: Construction + board: SalvageConsoleWallMountCircuitboard + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#b89f25" + - type: AccessReader + access: [ [ "Salvage" ] ] + +# Order console +- type: entity + id: OrdersConsoleWallMount + parent: BaseWallConsole + name: настенная консоль заказа грузов + description: Настенная консоли заказа грузов. + components: + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + layers: + - map: [ "computerLayerBody" ] + state: comp_wall_0 + - map: [ "computerLayerScreen" ] + state: request_layer + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ComputerVisuals.Powered: + computerLayerScreen: + True: { visible: true, shader: unshaded } + False: { visible: false } + computerLayerKeys: + True: { visible: true, shader: unshaded } + False: { visible: true } + - type: CargoOrderConsole + - type: ActivatableUI + key: enum.CargoConsoleUiKey.Orders + - type: UserInterface + interfaces: + - key: enum.CargoConsoleUiKey.Orders + type: CargoOrderConsoleBoundUserInterface + - type: Computer + board: OrdersConsoleWallMountCircuitboard + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#b89f25" + - type: AccessReader + access: [ [ "Cargo" ] ] + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: BasicDevice + - type: WirelessNetworkConnection + range: 200 + - type: DeviceLinkSource + range: 200 + ports: + - OrderSender + - type: GuideHelp + guides: + - Cargo + +# MassMedia console +- type: entity + id: MassMediaConsoleWallMount + parent: BaseWallConsole + name: настенная консоль СМИ + description: Настенная версия новостной консоли. + components: + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + layers: + - map: [ "computerLayerBody" ] + state: comp_wall_0 + - map: [ "computerLayerScreen" ] + state: service_layer + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ComputerVisuals.Powered: + computerLayerScreen: + True: { visible: true, shader: unshaded } + False: { visible: false } + computerLayerKeys: + True: { visible: true, shader: unshaded } + False: { visible: true } + - type: Computer + board: MediaConsoleWallMountCircuitboard + - type: DeviceNetworkRequiresPower + - type: NewsWrite + - type: AccessReader + access: [ [ "Command" ] ] + - type: ActivatableUI + key: enum.NewsWriteUiKey.Key + - type: ActivatableUIRequiresVision + - type: Transform + anchored: true + - type: UserInterface + interfaces: + - key: enum.NewsWriteUiKey.Key + type: NewsWriteBoundUserInterface + +# Radar console +- type: entity + id: RadarConsoleWallMount + parent: BaseWallConsole + name: настенный сканер масс + description: Настенная версия консоли сканера массы. + components: + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + layers: + - map: [ "computerLayerBody" ] + state: comp_wall_0 + - map: [ "computerLayerScreen" ] + state: scanner_layer + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ComputerVisuals.Powered: + computerLayerScreen: + True: { visible: true, shader: unshaded } + False: { visible: false } + computerLayerKeys: + True: { visible: true, shader: unshaded } + False: { visible: true } + - type: RadarConsole + - type: ActivatableUI + key: enum.RadarConsoleUiKey.Key + - type: UserInterface + interfaces: + - key: enum.RadarConsoleUiKey.Key + type: RadarConsoleBoundUserInterface + - type: Computer + board: RadarConsoleWallMountCircuitboard + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#e6e227" + +# Power console +- type: entity + id: PowerConsoleWallMount + parent: BaseWallConsole + name: настенная консоль контроля питания + description: Настенная версия консоли контроля питания. + components: + - type: Sprite + sprite: White/Structures/Machines/wall_consoles.rsi + layers: + - map: [ "computerLayerBody" ] + state: comp_wall_0 + - map: [ "computerLayerScreen" ] + state: energy_layer + - type: Appearance + - type: GenericVisualizer + visuals: + enum.ComputerVisuals.Powered: + computerLayerScreen: + True: { visible: true, shader: unshaded } + False: { visible: false } + computerLayerKeys: + True: { visible: true, shader: unshaded } + False: { visible: true } + - type: PointLight + radius: 1.5 + energy: 1.6 + color: "#c9c042" + - type: Computer + board: PowerConsoleWallMountCircuitboard + - type: PowerMonitoringConsole + - type: NodeContainer + examinable: true + nodes: + hv: + !type:CableDeviceNode + nodeGroupID: HVPower + - type: ActivatableUI + key: enum.PowerMonitoringConsoleUiKey.Key + - type: UserInterface + interfaces: + - key: enum.PowerMonitoringConsoleUiKey.Key + type: PowerMonitoringConsoleBoundUserInterface diff --git a/Resources/Prototypes/White/tags.yml b/Resources/Prototypes/White/tags.yml index ca8ed97f0e..9f9dc74ea5 100644 --- a/Resources/Prototypes/White/tags.yml +++ b/Resources/Prototypes/White/tags.yml @@ -39,3 +39,6 @@ - type: Tag id: DeleteWithWindows + +- type: Tag + id: WallMountConsoleElectronics diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/artifact_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/artifact_layer.png new file mode 100644 index 0000000000..2239ef0a88 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/artifact_layer.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_0.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_0.png new file mode 100644 index 0000000000..0892a15b6a Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_0.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_broken.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_broken.png new file mode 100644 index 0000000000..4d77a18c05 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_broken.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_0.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_0.png new file mode 100644 index 0000000000..d2723e9b0e Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_0.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_0_1.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_0_1.png new file mode 100644 index 0000000000..d2723e9b0e Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_0_1.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_1.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_1.png new file mode 100644 index 0000000000..aab0b1c19d Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_1.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_1_2.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_1_2.png new file mode 100644 index 0000000000..aab0b1c19d Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_1_2.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_2.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_2.png new file mode 100644 index 0000000000..648e81b8e7 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/comp_wall_frame_2.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/energy_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/energy_layer.png new file mode 100644 index 0000000000..c0f4ad9a38 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/energy_layer.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/meta.json b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/meta.json new file mode 100644 index 0000000000..a1c534889a --- /dev/null +++ b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/meta.json @@ -0,0 +1,104 @@ +{ + "version": 1, + "license": "CC0-1.0", + "copyright": "Made by Valentyi for WhiteDream", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "comp_wall_0" + }, + { + "name": "comp_wall_broken" + }, + { + "name": "comp_wall_frame_2" + }, + { + "name": "comp_wall_frame_1_2" + }, + { + "name": "comp_wall_frame_1" + }, + { + "name": "comp_wall_frame_0_1" + }, + { + "name": "comp_wall_frame_0" + }, + { + "name": "miner_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + }, + { + "name": "scanner_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + }, + { + "name": "energy_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + }, + { + "name": "no_board_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + }, + { + "name": "request_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + }, + { + "name": "service_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + }, + { + "name": "research_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + }, + { + "name": "artifact_layer", + "delays": [ + [ + 2.0, + 2.0 + ] + ] + } + ] +} diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/miner_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/miner_layer.png new file mode 100644 index 0000000000..c0e83a7624 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/miner_layer.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/no_board_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/no_board_layer.png new file mode 100644 index 0000000000..6516228235 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/no_board_layer.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/request_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/request_layer.png new file mode 100644 index 0000000000..c8795bfea6 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/request_layer.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/research_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/research_layer.png new file mode 100644 index 0000000000..c8a66c4204 Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/research_layer.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/scanner_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/scanner_layer.png new file mode 100644 index 0000000000..14907addfc Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/scanner_layer.png differ diff --git a/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/service_layer.png b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/service_layer.png new file mode 100644 index 0000000000..9daa2b0cbd Binary files /dev/null and b/Resources/Textures/White/Structures/Machines/wall_consoles.rsi/service_layer.png differ