Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Camera Console Recalibration and Bodycameras #3952

Open
wants to merge 40 commits into
base: master
Choose a base branch
from

Conversation

zimon9
Copy link
Contributor

@zimon9 zimon9 commented Jan 1, 2025

About The Pull Request

This change modifies camera consoles so that they can take a custom network input. Camera consoles were also modified to get closer in parity to the SecurEye app.

Camera Consoles image
SecurEye image

Static cameras were modified so that using a multitool on one with its panel open now presents several new options. One can copy a network that a camera is set to onto a multitool, transfer a saved network into a camera, or even set a new network entirely.
image
They were also given a new variable, can_transmit_across_z_levels, which defaults to false. This variable is for varedits, and a potential future addition that may enable transmission across Z-levels for some cost.

A new portable type of camera was also added, the body camera. It can be activated or deactivated by being alt-clicked, and its tag or network settings can be modified if a multitool is used on it.
They can be purchased from the outpost cargo market at a rate of two units for 250 credits.

Bodycameras can be worn in your pockets, your coat/armor, security belts or webbings, or a helmet, but they get obscured when put into a bag, a box, or your boots.

They have a view range of 5, which is 2 less than camera structures.

Bodycamera_Active_Deactivated_Demo.mp4
Bodycamera_Demo_Trackedmovement_Cropped.mp4

This PR by Timberpoes proved instrumental in solving a major problem during the development process:
tgstation/tgstation#52767

The bodycamera sprite is modeled after the handheld radio sprite made by @rye-rice in this PR:
#2610
image
I'm not a good pixel artist, so any feedback here is appreciated, on top of feedback with regards to anything else about this PR.

Why It's Good For The Game

It would be nice to be able to track your crew more effectively, be it if you were to send them out to scrap a derelict, or to secure contested territory. This is something that Command or Foremen that want to oversee operations might find useful, as it can be kind of boring to not be able to see your crew when they're at work. This should help that issue.

Changelog

🆑 Rye-Rice, Timberpoes
add: Added bodycameras
add: Added the ability to set custom networks on cameras and camera consoles
code: Made camera consoles and SecurEye have better parity
/:cl:

…bility to input networks after copying them from cameras, add ability to change networks on installed cameras, implement BodyCameras and Watchdog system
…e journey. tgstation/tgstation#52767 was helpful in the final hurdle. Now, one last challenge remains. The bodycamera needs to be updated periodically, which will need to be done via a subsystem. The bodycamera also needs to be part of the allowed types for some belt/webbing types and helmet types.
… up some useless code, reduces the sight range of bodycameras by two tiles
…AHAHAHHAHAHAHAHHAHA

I'm finally free...................................................................
@zimon9 zimon9 requested review from FalloutFalcon and a team as code owners January 1, 2025 04:15
@github-actions github-actions bot added DME Edit Sprites A bikeshed full of soulless bikes. TGUI Sound USSR Anthem 2.66 MB file. Code change Watch something violently break. labels Jan 1, 2025
/obj/item/bodycamera/examine(mob/user)
. += ..()
. += "The body camera is currently [status ? "<span class='green'>ON</span>" : "<span class='red'>OFF</span>"]. Ctrl-Click to toggle its status."
. += "The body camera is set to a nametag of '[c_tag]'. Use a multitool on [src] in order to set a new nametag."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would put the nametag/network stuff in the examine_more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that'd be better, yea
I've made that change now

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little conflicted on this, actually. From what I understand, no other item has an examine-more description, so this kind of breaks tradition, and I'm loathe to make things that aren't consistent with other things in the game. Inconsistency is one of the things that annoys me about older things in the game.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

some objects use examine_mores. I think its fine to expand on it, especially since I shouldn't be able to tell the technical details on it from a cursory glance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The items that do that seem to make it imply that examining more is less of something required, and more of a bit of added flavor. That, or it's a way for someone to interact with an object without having to click on it. As for being able to see technical details, I liken it to how you can see a radio's frequency setting by examining it, in that the details of the network setting and the tag setting are on a small display on the body of the device. However, it may be good to make it less of something that can be seen quite as easily, yeah. From a standpoint of someone that might be newer to the game, though, it might be a little confusing to leave it like this, though.

In any case, this isn't really a big deal or anything, but it's something I've been thinking about. I do think there is a lot of room for improvement with the design of this.

zimon9 added 18 commits January 5, 2025 10:49
…ble to control if a camera or body camera can transmit across Z-levels. logic as of yet unimplemented.
…ese with hazard vests now, in addition to armor
… Z-level or not. Defaults to false. This is for varedits.
…ble with the camera console. I still need to see why the runechat layer behaves the way it does, though. And why darkness isn't being rendered.
…he TM list when this is tested. Will be removed if it is.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Code change Watch something violently break. DME Edit Sound USSR Anthem 2.66 MB file. Sprites A bikeshed full of soulless bikes. TGUI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants