Surveillance cameras (#8246)
* cameras but i didn't feel like git stashing them * Adds more functionality server-side for surveillance cameras * rider moment * Adds skeleton for SurveillanceCameraMonitorBoundUi on client * whoops * makes surveillance camera monitor UI more defined * removes tree from SurveillanceCameraMonitorWindow * surveillance camera active flag, other routing things * actually sets how SurveillanceCameraMonitorSystem sends camera info to clients * adds entity yaml, changes field * adds the camera/monitor entities, makes the UI open * SurveillanceCameraRouters (not implemented fully) * subnets for cameras, server-side * it works! * fixes rotation in cameras * whoops restores surveillance cameras to ignored components makes it so that switching cameras now lerps the other camera * makes the UI work * makes it so that cameras actually refresh now * cleanup * adds camera.rsi * cleans up prototypes a bit * adds camera subnet frequencies, cameras in subnets * adds surveillance camera router subnets * might fix testing errors * adds the circuit board to the surveillance camera monitor * fixes up the camera monitor (the detective will get his tv soon) * adds heartbeat, ensures subnet data is passed into cameras to send * fixes up a few things * whoops * changes to UI internals * fixes subnet selection issue * localized strings for UI * changes 'test' id to 'camera' for cameras * whoops * missing s * camera static! * adds a delay to camera switching * adjusts a few things in camera timing * adds setup for cameras/routers, localization for frequency names * adds setup ui for routers, makes subnet names in monitor window follow frequency name in prototype * localization, some cleanup * ui adjustments * adds surveillance camera visuals * fixes a bug when closing the UI for monitors * adds disconnect message to UI * adds construction graph to cameras * adds the camera to the construction menu * fixes network selection for setup, tweak to assembly * adds surveillance camera router construction, fixes up surveillance camera wire cutting * adds disconnect button to monitor UI * switches around the status text * tweaks monitor UI * makes the address actually show * might make tests pass * UI adjustments, hard name limit * ok, that didn't work * adds wireless cameras * makes the television work/look nicer * adds tripod cameras in addition to mobile cameras * makes wireless cameras constructable * fixes up those prototypes * reorganization in C#, small cleanup * ensures that power changes deactivate some devices * adds a component to the television, comments out a function * actually, never mind, i forgot that wireless cameras existed/are creatable for a second * tweaks to router construction, removes SubnetTest from prototypes * removes it from frequencies too * Apply suggestions from code review Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> * type serializers into components * setup window opens centered, enum is now byte * replaces active monitor list with ActiveSurveillanceCameraMonitorComponent * adds paused/deleted entity checks, changes how verbs are given * removes EntitySystem.Get<T>() references * fixes bug related to selecting network from setup, alphabet-orders network listing in setup * rider moment * adds minwidth to surveillance camera setup window * addresses reviews * should fix the issue with camera visuals not updating properly * addresses some reviews * addresses further review * addresses reviews related to RSIs * never needed a key there anyways * changes a few things with routers to ensure that they're active * whoops * ensurecomp over addcomp * whoops Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
@@ -3,6 +3,18 @@ device-frequency-prototype-name-atmos = Atmospheric Devices
|
||||
device-frequency-prototype-name-suit-sensors = Suit Sensors
|
||||
device-frequency-prototype-name-lights = Smart Lights
|
||||
|
||||
## camera frequencies
|
||||
device-frequency-prototype-name-surveillance-camera-test = Subnet Test
|
||||
device-frequency-prototype-name-surveillance-camera-engineering = Engineering Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-security = Security Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-science = Science Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-supply = Supply Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-command = Command Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-service = Service Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-medical = Medical Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-general = General Cameras
|
||||
device-frequency-prototype-name-surveillance-camera-entertainment = Entertainment Cameras
|
||||
|
||||
# prefixes for randomly generated device addresses
|
||||
device-address-prefix-vent = Vnt-
|
||||
device-address-prefix-scrubber = Scr-
|
||||
device-address-prefix-scrubber = Scr-
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
surveillance-camera-monitor-ui-window = Camera monitor
|
||||
surveillance-camera-monitor-ui-refresh-cameras = Refresh cameras
|
||||
surveillance-camera-monitor-ui-refresh-subnets = Refresh subnets
|
||||
surveillance-camera-monitor-ui-disconnect = Disconnect
|
||||
surveillance-camera-monitor-ui-status = {$status} {$address}
|
||||
surveillance-camera-monitor-ui-status-connecting = Connecting:
|
||||
surveillance-camera-monitor-ui-status-connected = Connected:
|
||||
surveillance-camera-monitor-ui-status-disconnected = Disconnected
|
||||
surveillance-camera-monitor-ui-no-subnets = No Subnets
|
||||
|
||||
surveillance-camera-setup = Setup
|
||||
surveillance-camera-setup-ui-set = Set
|
||||
@@ -277,6 +277,10 @@
|
||||
- OreProcessorMachineCircuitboard
|
||||
- CircuitImprinterMachineCircuitboard
|
||||
- UniformPrinterMachineCircuitboard
|
||||
- SurveillanceCameraRouterCircuitboard
|
||||
- SurveillanceCameraWirelessRouterCircuitboard
|
||||
- SurveillanceWirelessCameraMovableCircuitboard
|
||||
- SurveillanceWirelessCameraAnchoredCircuitboard
|
||||
- AirAlarmElectronics
|
||||
- FireAlarmElectronics
|
||||
|
||||
|
||||
@@ -1,3 +1,53 @@
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCamera
|
||||
name: device-frequency-prototype-name-surveillance-camera
|
||||
frequency: 1926 # i only have so many of these, y'know?
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraEngineering
|
||||
name: device-frequency-prototype-name-surveillance-camera-engineering
|
||||
frequency: 1931
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraSecurity
|
||||
name: device-frequency-prototype-name-surveillance-camera-security
|
||||
frequency: 1932
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraScience
|
||||
name: device-frequency-prototype-name-surveillance-camera-science
|
||||
frequency: 1933
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraSupply
|
||||
name: device-frequency-prototype-name-surveillance-camera-supply
|
||||
frequency: 1934
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraCommand
|
||||
name: device-frequency-prototype-name-surveillance-camera-command
|
||||
frequency: 1935
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraService
|
||||
name: device-frequency-prototype-name-surveillance-camera-service
|
||||
frequency: 1936
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraMedical
|
||||
name: device-frequency-prototype-name-surveillance-camera-medical
|
||||
frequency: 1937
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraGeneral
|
||||
name: device-frequency-prototype-name-surveillance-camera-general
|
||||
frequency: 1938
|
||||
|
||||
- type: deviceFrequency
|
||||
id: SurveillanceCameraEntertainment
|
||||
name: device-frequency-prototype-name-surveillance-camera-entertainment
|
||||
frequency: 1939
|
||||
|
||||
- type: deviceFrequency
|
||||
id: AtmosMonitor
|
||||
name: device-frequency-prototype-name-atmos
|
||||
|
||||
@@ -396,3 +396,56 @@
|
||||
materialRequirements:
|
||||
Glass: 2
|
||||
Cable: 2
|
||||
|
||||
- type: entity
|
||||
id: SurveillanceCameraRouterCircuitboard
|
||||
parent: BaseMachineCircuitboard
|
||||
name: Surveillance camera router board
|
||||
description: A machine printed circuit board for a surveillance camera router
|
||||
components:
|
||||
- type: MachineBoard
|
||||
prototype: SurveillanceCameraRouterConstructed
|
||||
requirements:
|
||||
Capacitor: 4
|
||||
|
||||
- type: entity
|
||||
id: SurveillanceCameraWirelessRouterCircuitboard
|
||||
parent: BaseMachineCircuitboard
|
||||
name: Surveillance camera wireless router board
|
||||
description: A machine printed circuit board for a surveillance camera wireless router
|
||||
components:
|
||||
- type: MachineBoard
|
||||
prototype: SurveillanceCameraWirelessRouterConstructed
|
||||
requirements:
|
||||
Laser: 1
|
||||
Capacitor: 4
|
||||
|
||||
- type: entity
|
||||
id: SurveillanceWirelessCameraMovableCircuitboard
|
||||
parent: BaseMachineCircuitboard
|
||||
name: movable wireless camera board
|
||||
description: A machine printed circuit board for a movable wireless camera
|
||||
components:
|
||||
- type: MachineBoard
|
||||
prototype: SurveillanceWirelessCameraMovableConstructed
|
||||
requirements:
|
||||
Laser: 1
|
||||
Capacitor: 4
|
||||
materialRequirements:
|
||||
Glass: 2
|
||||
Cable: 2
|
||||
|
||||
- type: entity
|
||||
id: SurveillanceWirelessCameraAnchoredCircuitboard
|
||||
parent: BaseMachineCircuitboard
|
||||
name: wireless camera board
|
||||
description: A machine printed circuit board for a wireless camera
|
||||
components:
|
||||
- type: MachineBoard
|
||||
prototype: SurveillanceWirelessCameraAnchoredConstructed
|
||||
requirements:
|
||||
Laser: 1
|
||||
Capacitor: 4
|
||||
materialRequirements:
|
||||
Glass: 2
|
||||
Cable: 2
|
||||
|
||||
@@ -66,6 +66,24 @@
|
||||
- type: ComputerBoard
|
||||
prototype: ComputerSupplyRequest
|
||||
|
||||
- type: entity
|
||||
parent: BaseComputerCircuitboard
|
||||
id: SurveillanceCameraMonitorCircuitboard
|
||||
name: surveillance camera monitor board
|
||||
description: A computer printed circuit board for a surveillance camera monitor
|
||||
components:
|
||||
- type: ComputerBoard
|
||||
prototype: ComputerSurveillanceCameraMonitor
|
||||
|
||||
- type: entity
|
||||
parent: BaseComputerCircuitboard
|
||||
id: SurveillanceWirelessCameraMonitorCircuitboard
|
||||
name: surveillance wireless camera monitor board
|
||||
description: A computer printed circuit board for a surveillance wireless camera monitor
|
||||
components:
|
||||
- type: ComputerBoard
|
||||
prototype: ComputerSurveillanceWirelessCameraMonitor
|
||||
|
||||
- type: entity
|
||||
parent: BaseComputerCircuitboard
|
||||
id: PowerMonitoringComputerCircuitboard
|
||||
|
||||
@@ -399,30 +399,99 @@
|
||||
color: "#b89f25"
|
||||
|
||||
- type: entity
|
||||
parent: BaseStructure
|
||||
parent: ComputerBase
|
||||
id: ComputerSurveillanceCameraMonitor
|
||||
name: camera monitor
|
||||
description: A surveillance camera monitor. You're watching them. Maybe.
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: ComputerVisualizer
|
||||
key: tech_key
|
||||
screen: cameras
|
||||
- type: Computer
|
||||
board: SurveillanceCameraMonitorCircuitboard
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCamera
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: WiredNetworkConnection
|
||||
- type: SurveillanceCameraMonitor
|
||||
- type: ActivatableUI
|
||||
key: enum.SurveillanceCameraMonitorUiKey.Key
|
||||
- type: ActivatableUIRequiresPower
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.SurveillanceCameraMonitorUiKey.Key
|
||||
type: SurveillanceCameraMonitorBoundUserInterface
|
||||
|
||||
- type: entity
|
||||
parent: ComputerBase
|
||||
id: ComputerSurveillanceWirelessCameraMonitor
|
||||
name: wireless camera monitor
|
||||
description: A wireless surveillance camera monitor. You're watching them. Maybe.
|
||||
components:
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: ComputerVisualizer
|
||||
key: tech_key
|
||||
screen: cameras
|
||||
- type: Computer
|
||||
board: SurveillanceWirelessCameraMonitorCircuitboard
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wireless
|
||||
receiveFrequencyId: SurveillanceCamera
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: WirelessNetworkConnection
|
||||
range: 200
|
||||
- type: SurveillanceCameraMonitor
|
||||
- type: ActivatableUI
|
||||
key: enum.SurveillanceCameraMonitorUiKey.Key
|
||||
- type: ActivatableUIRequiresPower
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.SurveillanceCameraMonitorUiKey.Key
|
||||
type: SurveillanceCameraMonitorBoundUserInterface
|
||||
|
||||
- type: entity
|
||||
parent: ComputerSurveillanceWirelessCameraMonitor
|
||||
id: ComputerTelevision
|
||||
name: wooden television
|
||||
description: It's an old television displaying the station's cameras, if they worked.
|
||||
description: Finally, some decent reception around here...
|
||||
components:
|
||||
- type: InteractionOutline
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/computers.rsi
|
||||
layers:
|
||||
- state: television
|
||||
- state: detective_television
|
||||
shader: unshaded
|
||||
visuals:
|
||||
- type: PointLight
|
||||
radius: 1.5
|
||||
energy: 1.6
|
||||
color: "#b89f25"
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.25,-0.25,0.25,0.25"
|
||||
mass: 50
|
||||
mask:
|
||||
- TabletopMachineMask
|
||||
layer:
|
||||
- TabletopMachineLayer
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: ComputerVisualizer
|
||||
body: television
|
||||
bodyBroken: television_broken
|
||||
screen: detective_television
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/computers.rsi
|
||||
layers:
|
||||
- map: [ "enum.ComputerVisualizer+Layers.KeyboardOn" ]
|
||||
visible: false
|
||||
- map: [ "enum.ComputerVisualizer+Layers.Keyboard" ]
|
||||
visible: false
|
||||
- map: [ "enum.ComputerVisualizer+Layers.Body"]
|
||||
state: television
|
||||
- map: [ "enum.ComputerVisualizer+Layers.Screen" ]
|
||||
state: detective_television
|
||||
shader: unshaded
|
||||
- type: PointLight
|
||||
radius: 1.5
|
||||
energy: 1.6
|
||||
color: "#b89f25"
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeAabb
|
||||
bounds: "-0.25,-0.25,0.25,0.25"
|
||||
mass: 50
|
||||
mask:
|
||||
- TabletopMachineMask
|
||||
layer:
|
||||
- TabletopMachineLayer
|
||||
|
||||
@@ -250,6 +250,7 @@
|
||||
- DiagnoserMachineCircuitboard
|
||||
- ChemMasterMachineCircuitboard
|
||||
- ChemDispenserMachineCircuitboard
|
||||
- SurveillanceCameraRouterCircuitboard
|
||||
- HydroponicsTrayMachineCircuitboard
|
||||
- SolarControlComputerCircuitboard
|
||||
- AutolatheMachineCircuitboard
|
||||
|
||||
@@ -0,0 +1,148 @@
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BaseMachinePowered
|
||||
id: SurveillanceCameraRouterBase
|
||||
name: camera router
|
||||
description: A surveillance camera router. It routes. Perhaps.
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCamera
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: WiredNetworkConnection
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.SurveillanceCameraSetupUiKey.Router
|
||||
type: SurveillanceCameraSetupBoundUi
|
||||
- type: Construction
|
||||
graph: Machine
|
||||
node: machine
|
||||
- type: Machine
|
||||
board: SurveillanceCameraRouterCircuitboard
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/server.rsi
|
||||
layers:
|
||||
- state: server
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterConstructed
|
||||
suffix: Constructed
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
setupAvailableNetworks:
|
||||
- SurveillanceCameraEngineering
|
||||
- SurveillanceCameraSecurity
|
||||
- SurveillanceCameraService
|
||||
- SurveillanceCameraSupply
|
||||
- SurveillanceCameraScience
|
||||
- SurveillanceCameraGeneral
|
||||
- SurveillanceCameraMedical
|
||||
- SurveillanceCameraCommand
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterEngineering
|
||||
suffix: Engineering
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraEngineering
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterSecurity
|
||||
suffix: Security
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraSecurity
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterScience
|
||||
suffix: Science
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraScience
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterSupply
|
||||
suffix: Supply
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraSupply
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterCommand
|
||||
suffix: Command
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraCommand
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterService
|
||||
suffix: Service
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraService
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterMedical
|
||||
suffix: Medical
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraMedical
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraRouterBase
|
||||
id: SurveillanceCameraRouterGeneral
|
||||
suffix: General
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraGeneral
|
||||
|
||||
- type: entity
|
||||
parent: BaseMachinePowered
|
||||
id: SurveillanceCameraWirelessRouterBase
|
||||
name: wireless camera router
|
||||
description: A wireless surveillance camera router. It routes. Perhaps.
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wireless
|
||||
receiveFrequencyId: SurveillanceCamera
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: WirelessNetworkConnection
|
||||
range: 200
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.SurveillanceCameraSetupUiKey.Router
|
||||
type: SurveillanceCameraSetupBoundUi
|
||||
- type: Construction
|
||||
graph: Machine
|
||||
node: machine
|
||||
- type: Machine
|
||||
board: SurveillanceCameraWirelessRouterCircuitboard
|
||||
- type: Sprite
|
||||
sprite: Structures/Machines/server.rsi
|
||||
layers:
|
||||
- state: server
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraWirelessRouterBase
|
||||
id: SurveillanceCameraWirelessRouterConstructed
|
||||
suffix: Constructed
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
setupAvailableNetworks:
|
||||
- SurveillanceCameraEntertainment
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraWirelessRouterBase
|
||||
id: SurveillanceCameraWirelessRouterEntertainment
|
||||
suffix: Entertainment
|
||||
components:
|
||||
- type: SurveillanceCameraRouter
|
||||
subnetFrequency: SurveillanceCameraEntertainment
|
||||
@@ -0,0 +1,117 @@
|
||||
- type: entity
|
||||
abstract: true
|
||||
parent: BaseStructureDynamic
|
||||
id: SurveillanceWirelessCameraBase
|
||||
name: wireless camera
|
||||
description: A camera. It's watching you. Kinda.
|
||||
components:
|
||||
- type: Construction
|
||||
graph: Machine
|
||||
node: machine
|
||||
- type: InteractionOutline
|
||||
- type: Eye
|
||||
- type: WirelessNetworkConnection
|
||||
range: 200
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
- type: Rotatable
|
||||
rotateWhileAnchored: true
|
||||
- type: Fixtures
|
||||
fixtures:
|
||||
- shape:
|
||||
!type:PhysShapeCircle
|
||||
radius: 0.45
|
||||
mass: 50
|
||||
mask:
|
||||
- MachineMask
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.SurveillanceCameraSetupUiKey.Camera
|
||||
type: SurveillanceCameraSetupBoundUi
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
id: SurveillanceWirelessCameraAnchoredBase
|
||||
parent: SurveillanceWirelessCameraBase
|
||||
suffix: Anchored
|
||||
components:
|
||||
- type: Machine
|
||||
board: SurveillanceWirelessCameraAnchoredCircuitboard
|
||||
- type: Anchorable
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: Structures/monitors.rsi
|
||||
layers:
|
||||
- map: [ "enum.SurveillanceCameraVisualsKey.Key" ]
|
||||
state: television
|
||||
|
||||
- type: entity
|
||||
abstract: true
|
||||
id: SurveillanceWirelessCameraMovableBase
|
||||
parent: SurveillanceWirelessCameraBase
|
||||
suffix: Movable
|
||||
components:
|
||||
- type: Machine
|
||||
board: SurveillanceWirelessCameraMovableCircuitboard
|
||||
- type: Transform
|
||||
- type: Sprite
|
||||
noRot: true
|
||||
sprite: Structures/monitors.rsi
|
||||
layers:
|
||||
- map: [ "enum.SurveillanceCameraVisualsKey.Key" ]
|
||||
state: mobilevision
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceWirelessCameraAnchoredBase
|
||||
suffix: Constructed, Anchored
|
||||
id: SurveillanceWirelessCameraAnchoredConstructed
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wireless
|
||||
receiveFrequencyId: SurveillanceCamera
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
setupAvailableNetworks:
|
||||
- SurveillanceCameraEntertainment
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceWirelessCameraMovableBase
|
||||
suffix: Constructed, Movable
|
||||
id: SurveillanceWirelessCameraMovableConstructed
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wireless
|
||||
receiveFrequencyId: SurveillanceCameraEntertainment
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
setupAvailableNetworks:
|
||||
- SurveillanceCameraEntertainment
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceWirelessCameraAnchoredBase
|
||||
suffix: Entertainment, Anchored
|
||||
id: SurveillanceWirelessCameraAnchoredEntertainment
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wireless
|
||||
receiveFrequencyId: SurveillanceCameraEntertainment
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceWirelessCameraMovableBase
|
||||
suffix: Entertainment, Movable
|
||||
id: SurveillanceWirelessCameraMovableEntertainment
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wireless
|
||||
receiveFrequencyId: SurveillanceCameraEntertainment
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
@@ -0,0 +1,212 @@
|
||||
- type: entity
|
||||
abstract: true
|
||||
id: SurveillanceCameraBase
|
||||
name: camera
|
||||
description: A surveillance camera. It's watching you. Kinda.
|
||||
components:
|
||||
- type: Clickable
|
||||
- type: InteractionOutline
|
||||
- type: Construction
|
||||
graph: SurveillanceCamera
|
||||
node: camera
|
||||
- type: Electrified
|
||||
enabled: false
|
||||
usesApcPower: true
|
||||
- type: WallMount
|
||||
- type: ApcPowerReceiver
|
||||
- type: ExtensionCableReceiver
|
||||
- type: Eye
|
||||
- type: WiredNetworkConnection
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: Wires
|
||||
alwaysRandomize: true
|
||||
LayoutId: SurveillanceCamera
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
- type: Sprite
|
||||
drawdepth: WallMountedItems
|
||||
sprite: Structures/Wallmounts/camera.rsi
|
||||
layers:
|
||||
- map: [ "enum.SurveillanceCameraVisualsKey.Layer" ]
|
||||
state: camera
|
||||
- type: Appearance
|
||||
- type: SurveillanceCameraVisuals
|
||||
sprites:
|
||||
Active: camera
|
||||
Disabled: camera_off
|
||||
InUse: camera_in_use
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.SurveillanceCameraSetupUiKey.Camera
|
||||
type: SurveillanceCameraSetupBoundUi
|
||||
- key: enum.WiresUiKey.Key
|
||||
type: WiresBoundUserInterface
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
snap:
|
||||
- Wallmount
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraConstructed
|
||||
name: camera
|
||||
suffix: Constructed
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
setupAvailableNetworks:
|
||||
- SurveillanceCameraEngineering
|
||||
- SurveillanceCameraSecurity
|
||||
- SurveillanceCameraService
|
||||
- SurveillanceCameraSupply
|
||||
- SurveillanceCameraScience
|
||||
- SurveillanceCameraGeneral
|
||||
- SurveillanceCameraMedical
|
||||
- SurveillanceCameraCommand
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraEngineering
|
||||
name: camera
|
||||
suffix: Engineering
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraEngineering
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraSecurity
|
||||
name: camera
|
||||
suffix: Security
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraSecurity
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraScience
|
||||
name: camera
|
||||
suffix: Science
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraScience
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraSupply
|
||||
name: camera
|
||||
suffix: Supply
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraSupply
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraScience
|
||||
name: camera
|
||||
suffix: Science
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraScience
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraCommand
|
||||
name: camera
|
||||
suffix: Command
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraCommand
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraService
|
||||
name: camera
|
||||
suffix: Service
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraService
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraMedical
|
||||
name: camera
|
||||
suffix: Medical
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraMedical
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
parent: SurveillanceCameraBase
|
||||
id: SurveillanceCameraGeneral
|
||||
name: camera
|
||||
suffix: General
|
||||
components:
|
||||
- type: DeviceNetwork
|
||||
deviceNetId: Wired
|
||||
receiveFrequencyId: SurveillanceCameraGeneral
|
||||
transmitFrequencyId: SurveillanceCamera
|
||||
- type: SurveillanceCamera
|
||||
networkSet: true
|
||||
|
||||
- type: entity
|
||||
id: SurveillanceCameraAssembly
|
||||
name: camera
|
||||
description: A surveillance camera. Doesn't seem to be watching anybody any time soon. Probably.
|
||||
components:
|
||||
- type: Clickable
|
||||
- type: InteractionOutline
|
||||
- type: Construction
|
||||
graph: SurveillanceCamera
|
||||
node: assembly
|
||||
- type: WallMount
|
||||
- type: Transform
|
||||
anchored: true
|
||||
- type: Damageable
|
||||
damageContainer: Inorganic
|
||||
damageModifierSet: Metallic
|
||||
- type: Sprite
|
||||
drawdepth: WallMountedItems
|
||||
sprite: Structures/Wallmounts/camera.rsi
|
||||
layers:
|
||||
- state: camera_off
|
||||
placement:
|
||||
mode: SnapgridCenter
|
||||
snap:
|
||||
- Wallmount
|
||||
@@ -0,0 +1,57 @@
|
||||
- type: constructionGraph
|
||||
id: SurveillanceCamera
|
||||
start: start
|
||||
graph:
|
||||
- node: start
|
||||
edges:
|
||||
- to: assembly
|
||||
steps:
|
||||
- material: Steel
|
||||
amount: 2
|
||||
doAfter: 2.0
|
||||
|
||||
- node: assembly
|
||||
entity: SurveillanceCameraAssembly
|
||||
edges:
|
||||
- to: wired
|
||||
steps:
|
||||
- material: Cable
|
||||
amount: 1
|
||||
doAfter: 1
|
||||
- to: start
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: SheetSteel1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
steps:
|
||||
- tool: Welding
|
||||
doAfter: 2
|
||||
|
||||
- node: wired
|
||||
entity: SurveillanceCameraAssembly
|
||||
edges:
|
||||
- to: camera
|
||||
steps:
|
||||
- tool: Screwing
|
||||
doAfter: 2
|
||||
|
||||
# once a camera is constructed, it will
|
||||
# instead just require wire cutting + welding
|
||||
# to immediately deconstruct
|
||||
- node: camera
|
||||
entity: SurveillanceCameraConstructed
|
||||
edges:
|
||||
- to: start
|
||||
conditions:
|
||||
- !type:AllWiresCut {}
|
||||
- !type:WirePanel {}
|
||||
completed:
|
||||
- !type:SpawnPrototype
|
||||
prototype: SheetSteel1
|
||||
amount: 2
|
||||
- !type:DeleteEntity {}
|
||||
steps:
|
||||
- tool: Welding
|
||||
doAfter: 2
|
||||
|
||||
@@ -1,3 +1,17 @@
|
||||
- type: construction
|
||||
name: camera
|
||||
id: camera
|
||||
graph: SurveillanceCamera
|
||||
startNode: start
|
||||
targetNode: camera
|
||||
category: Utilities
|
||||
description: "Surveillance camera. It's watching. Soon."
|
||||
icon:
|
||||
sprite: Structures/Wallmounts/camera.rsi
|
||||
state: camera
|
||||
objectType: Structure
|
||||
placementMode: SnapgridCenter
|
||||
|
||||
# POWER
|
||||
- type: construction
|
||||
name: APC
|
||||
@@ -457,4 +471,4 @@
|
||||
icon:
|
||||
sprite: Structures/Piping/Atmospherics/gasmixer.rsi
|
||||
state: gasMixer
|
||||
|
||||
|
||||
|
||||
@@ -294,3 +294,39 @@
|
||||
materials:
|
||||
Steel: 100
|
||||
Glass: 900
|
||||
|
||||
- type: latheRecipe
|
||||
id: SurveillanceCameraRouterCircuitboard
|
||||
icon: Objects/Misc/module.rsi/id_mod.png
|
||||
result: SurveillanceCameraRouterCircuitboard
|
||||
completetime: 4
|
||||
materials:
|
||||
Steel: 100
|
||||
Glass: 900
|
||||
|
||||
- type: latheRecipe
|
||||
id: SurveillanceCameraWirelessRouterCircuitboard
|
||||
icon: Objects/Misc/module.rsi/id_mod.png
|
||||
result: SurveillanceCameraWirelessRouterCircuitboard
|
||||
completetime: 4
|
||||
materials:
|
||||
Steel: 100
|
||||
Glass: 900
|
||||
|
||||
- type: latheRecipe
|
||||
id: SurveillanceWirelessCameraAnchoredCircuitboard
|
||||
icon: Objects/Misc/module.rsi/id_mod.png
|
||||
result: SurveillanceWirelessCameraAnchoredCircuitboard
|
||||
completetime: 4
|
||||
materials:
|
||||
Steel: 100
|
||||
Glass: 900
|
||||
|
||||
- type: latheRecipe
|
||||
id: SurveillanceWirelessCameraMovableCircuitboard
|
||||
icon: Objects/Misc/module.rsi/id_mod.png
|
||||
result: SurveillanceWirelessCameraMovableCircuitboard
|
||||
completetime: 4
|
||||
materials:
|
||||
Steel: 100
|
||||
Glass: 900
|
||||
|
||||
@@ -31,6 +31,11 @@
|
||||
positionInput: 0,0
|
||||
life: 0
|
||||
|
||||
- type: shader
|
||||
id: CameraStatic
|
||||
kind: source
|
||||
path: "/Textures/Shaders/camera_static.swsl"
|
||||
|
||||
- type: shader
|
||||
id: Texture
|
||||
kind: source
|
||||
|
||||
@@ -66,3 +66,9 @@
|
||||
- !type:ArcadeOverflowWireAction
|
||||
- !type:ArcadePlayerInvincibleWireAction
|
||||
- !type:ArcadeEnemyInvincibleWireAction
|
||||
|
||||
- type: wireLayout
|
||||
id: SurveillanceCamera
|
||||
dummyWires: 4
|
||||
wires:
|
||||
- !type:PowerWireAction
|
||||
|
||||
BIN
Resources/Textures/Interface/Nano/square_black.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
40
Resources/Textures/Shaders/camera_static.swsl
Normal file
@@ -0,0 +1,40 @@
|
||||
// Credited to PelicanPolice on Shadertoy
|
||||
// Free for any purpose, commercial or otherwise.
|
||||
// But do post here so I can see where it got used!
|
||||
// If using on shadertoy, do link to this project on yours :)
|
||||
|
||||
highp float noise(highp vec2 pos, highp float evolve) {
|
||||
|
||||
// Loop the evolution (over a very long period of time).
|
||||
highp float e = fract((evolve*0.01));
|
||||
|
||||
// Coordinates
|
||||
highp float cx = pos.x*e;
|
||||
highp float cy = sin(pos.y*e * 376.0); // is this close enough to a 60hz interference? :smol:
|
||||
|
||||
highp float v2_2 = cx*2.4/cy*23.0+pow(abs(cy/22.4),3.3);
|
||||
highp float v2_1 = fract(fract(v2_2));
|
||||
highp float v2 = fract(2.0/v2_1);
|
||||
highp float v3 = fract(cx*evolve/pow(abs(cy),0.050));
|
||||
|
||||
// Generate a "random" black or white value
|
||||
return fract(0.1*v2*v3);
|
||||
}
|
||||
|
||||
|
||||
void fragment() {
|
||||
highp vec2 coords = FRAGCOORD.xy;
|
||||
|
||||
// Increase this number to test performance
|
||||
int intensity = 1;
|
||||
|
||||
highp vec3 colour;
|
||||
for (int i = 0; i < intensity; i++)
|
||||
{
|
||||
// Generate a black to white pixel
|
||||
colour = vec3(noise(coords,TIME));
|
||||
}
|
||||
|
||||
// Output to screen
|
||||
COLOR = vec4(colour,1.0);
|
||||
}
|
||||
BIN
Resources/Textures/Structures/Wallmounts/camera.rsi/camera.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 894 B |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 873 B |
|
After Width: | Height: | Size: 283 B |
@@ -0,0 +1 @@
|
||||
{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/6bfe3b2e4fcbcdac9159dc4f0327a82ddf05ba7bi", "states": [{"name": "camera", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "camera_assembly", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}, {"name": "camera_emp", "directions": 8, "delays": [[0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1]]}, {"name": "camera_in_use", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "camera_off", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}, {"name": "cameracase", "directions": 1, "delays": [[1.0]]}, {"name": "xraycamera", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "xraycamera_assembly", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}, {"name": "xraycamera_emp", "directions": 8, "delays": [[0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1], [0.2, 0.2, 0.1, 0.1]]}, {"name": "xraycamera_in_use", "directions": 8, "delays": [[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3], [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]]}, {"name": "xraycamera_off", "directions": 8, "delays": [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]}]}
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 1023 B |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
16
Resources/Textures/Structures/monitors.rsi/meta.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"version": 1,
|
||||
"size": {"x": 32, "y": 32},
|
||||
"license": "From Goonstation at https://github.com/goonstation/goonstation/commit/ed3b3c552e384bb3eb7056468a125f6a8c661261",
|
||||
"copyright": "CC-BY-NC-SA-3.0",
|
||||
"states": [
|
||||
{"name": "mobilevision", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]},
|
||||
{"name": "party", "directions": 1, "delays": [[1.0]]},
|
||||
{"name": "rad0", "directions": 1, "delays": [[1.0]]},
|
||||
{"name": "rad1", "directions": 1, "delays": [[0.1, 0.1]]},
|
||||
{"name": "shipalert0", "directions": 1, "delays": [[1.0]]},
|
||||
{"name": "shipalert1", "directions": 1, "delays": [[1.0]]},
|
||||
{"name": "shipalert2", "directions": 1, "delays": [[1.0]]},
|
||||
{"name": "television", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}
|
||||
]
|
||||
}
|
||||
BIN
Resources/Textures/Structures/monitors.rsi/mobilevision.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
Resources/Textures/Structures/monitors.rsi/party.png
Normal file
|
After Width: | Height: | Size: 315 B |
BIN
Resources/Textures/Structures/monitors.rsi/rad0.png
Normal file
|
After Width: | Height: | Size: 283 B |
BIN
Resources/Textures/Structures/monitors.rsi/rad1.png
Normal file
|
After Width: | Height: | Size: 378 B |
BIN
Resources/Textures/Structures/monitors.rsi/shipalert0.png
Normal file
|
After Width: | Height: | Size: 434 B |
BIN
Resources/Textures/Structures/monitors.rsi/shipalert1.png
Normal file
|
After Width: | Height: | Size: 408 B |
BIN
Resources/Textures/Structures/monitors.rsi/shipalert2.png
Normal file
|
After Width: | Height: | Size: 475 B |
BIN
Resources/Textures/Structures/monitors.rsi/television.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |