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>
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 |