19 Commits
Author SHA1 Message Date
5fec421dae Destroy several sources of lag (#21422)
Destroys a ton of sources of lag:

- /obj/machinery/biogenerator/interact and
/obj/machinery/computer/rdconsole/attack_hand

Both of these call REF(src) constantly on their UI update, which also
happens constantly. Death by a thousand cuts

- /obj/machinery/button/ignition/attack_hand and
/obj/machinery/button/switch/holosign/attack_hand

Sleeps rather than timers, iterating the entire machinery list rather
than just storing the IDs we need at roundstart

- /obj/machinery/telecomms/update_icon and /obj/machinery/meter/process

Calling overlay updates WAY TOO MUCH. UpdateOverlays is a significant
overhead for the server at this point and the two of these combined are
responsible for a little over 20% of updates. They now should only
update overlays when necessary rather than every tick.

- NEW! /obj/machinery/disposal/proc/update and
/obj/machinery/portable_atmospherics/hydroponics/update_icon

These two were also offenders, worse than telecomms but better than
meters. They have also been brought into line.

- /mob/living/carbon/slime

Hard-del'd if grinded into slime extract less than two minutes after
being "born". Fixed by adding TIMER_DELETE_ME flag.

---------

Co-authored-by: Matt Atlas <liermattia@gmail.com>
2025-10-04 11:05:07 +00:00
BatrachophrenoandGitHub c2f054fd81 DMdocs (#21103)
Progress on DMDocs. PRing progress so far so there's not one mega PR
later with 1500 affected files.

I want my goddamn highlight text on what all these goddamn procs goddamn
do goddamnit. >:(

No actual code change anywhere in this PR, only comments.

---------

Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
2025-08-09 12:22:56 +00:00
FluffyandGitHub 7265630dde Turn more unmanaged global vars into GLOB (#20446)
Turned a ton of unmanaged globals into managed globals.
Refactored some UT output.
Removed some unused things, including vars.
Added a test to ensure people don't keep adding new unmanaged vars.
2025-02-17 23:34:02 +00:00
FluffyandGitHub ab23fbdb70 Function overloads condensation (#18939)
Unified most of the procs into one definition, so there are no duplicate
around the codebase.
Marked some of the above as overridable if a good enough case can be
made for them (eg. external dependency or unlikely to be used).
2024-04-19 21:19:41 +00:00
06601c9ec3 Split up and rename var/flags (#17794)
* Split up and rename `var/flags`

* Various fixes

* CL

* Don't rename Phoron Guard phoron preset

---------

Co-authored-by: Cody Brittain <cbrittain10@live.com>
2023-11-22 16:27:51 +00:00
FluffyGitHubFluffyGhost <FluffyGhost>
5fc2dd24b6 Motioncameras refdrop more (#17507)
* Atomization

* fsda

---------

Co-authored-by: FluffyGhost <FluffyGhost>
2023-10-05 03:28:52 +00:00
FluffyGitHubFluffyGhost <FluffyGhost>
70bc97eef0 Prevents motion alarms from picking up QDELING mobs, and tries to make them drop those already picked up. (#17178)
* Atomization

* sdf

---------

Co-authored-by: FluffyGhost <FluffyGhost>
2023-08-30 22:36:27 +00:00
WernerandGitHub cb4a712851 Enforces Lineendings and adds Editorconfig (#7657) 2019-12-21 16:19:24 +01:00
PsiOmegaDelta 04234a5b67 Camera fixes and performance tweaks.
Improves camera EMP handling. Now uses a var and processing to determine when the EMP should end, preventing inconsistent states when a camera is EMPd multiple times.

Reduces the process and bandwidth need for cameras.
* There is now a common camera repository, responsible for setting up cameras once for every invalidation.
* Camera consoles now only updates when the camera cache is invalidated, not every second.
* The console now only presents one network at a time, and only sends the data necessary to view that network (as opposed to sending the data for all cameras).
2016-01-30 17:41:12 +01:00
Zuhayr c8baafed2a Removed turf_animation for now, ported vg hasproximity optimisation. Rewrite and refactor of how turfs handle icon updates, edge smoothing and
construction/deconstruction. Major map rework/changes.
2015-08-16 06:05:21 -07:00
PsiOmega 5578afa07c General update.
NanoUI interface sorted.
Accessible by AI, borgs, and through consoles.
Automatic alarm resets in case of lost sources.
2015-02-23 10:32:25 +01:00
PsiOmega 2e9c266a2f Basic main structure for centralized alarm handling. 2015-02-17 08:34:26 +01:00
mwerezak bf20a6414f Cameras no longer work when there is no power 2014-08-29 00:05:27 -04:00
Mike 1c9a384a8d Cherrypick from 'ai-alarms'
Refactoring and clean-up of alarm code for AI and robots.
2014-05-14 20:20:30 -04:00
giacomand@gmail.com f97f3982bc -The upgrade camera malf module now upgrades cameras to be motion cameras too.
-Made the alarm delay a variable and I decreased it to 10 seconds. There's another 10 seconds in queueAlarm, so it's 20 seconds total before the motion alarm triggers.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4625 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-05 17:00:17 +00:00
giacomand@gmail.com 5ed77f8dad -Made motion cameras use HasProximity if they aren't area based motion cameras. This will allow people to set up motion cameras that will set off, without having to be in an "AI Monitored" area, such as EVA.
-Removed cameras from all bots. I'll change this if there's an outcry but my reasoning is that the bot's cameras don't work well with freelook, removing it would save a lot of trouble and would help out in certain rounds. I also doubt people even care about viewing the bot's view, I sometimes forget it's a thing.

-Make the AI's cancel camera view the same verb as AI Core. I did this because people were getting really confused on how to return to their core view, and the verb was basically useless since people just stopped tracking by moving a tile in a random direction.

-Removed a floating camera in Engineering. -Removed a camera in the AI Chamber (front of the AI) and I made the camera an "All" camera. (EMP Proof, X-Ray and Motion)

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4622 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-05 05:30:56 +00:00
giacomand@gmail.com 2233a58fe1 -Added a new malf module. Malf AIs can upgrade cameras to be EMP Proof and have X-Ray. Same amount of uses as reactivating cameras, same cost too.
-Cleaned up cameras a bit.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4617 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-03 23:15:38 +00:00
giacomand@gmail.com f1d3bdb8e7 -Tweaked cameras based on feedback!
It takes no time to open camera panels now.
There's no chance that pulsing a wire will set the alarm off.
Properly killed the camera from processing, if it isn't a motion camera.
Added some extra feedback to welding.
EMPing cameras will set their alarms off, if it passes the first prob check.

Updated the changelog.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4613 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-03 13:46:48 +00:00
giacomand@gmail.com c207124142 New item "camera assembly" that is dispensed from the autolathe. (700 Metal/300 Glass), deleted old grenade camera assembly.
It will construct a camera after doing the following steps:
Wrench it to attach it to a wall
Weld it to the wall with a welding tool (Welding Helmet Required)
Attach wires to the camera
Possible extra steps in order to create special cameras (X-Ray, EMP Proof, Motion) (You can have more than 1 special attachment, meaning it can be possible to have an EMP Proof, Motion, X-Ray camera)
X-Ray will need carrots (something for botanists) (this will possibly changed, well it will definitely carrots are weird)
EMP Proof will need solid plasma.
Motion will need a prox sensor.
Screwdriver the panel closed to complete the camera.

To deconstruct the camera, it would be not so difficult to disable but it will take a while to completely remove it:
Screwdriver the panel open
Cut all the wires, cutting the alarm wire is optional.
Weld it.
It is now a camera assembly again.

Gave the cameras wires to cut/mend/pulse. Random wires for every camera to make hacking it harder.
Focus wire. Will make the camera have a shorter or normal vision range.
Power wire. Will disable the camera. Pulsing will make it kick anyone who is viewing it through a security computer. Will give a tiny shock if not protected.
Light wire. Will disable the "Toggle Camera Light" that the AI has. Pulsing it will disable/enable it.
Alarm wire. Will warn the AI that a camera's alarm has been set off, when this wire has been cut/pulsed. Does nothing else. Should only triggered once, meaning.. setting off the camera won't set it off ever again..
Special wire. Will toggle the special attachment of the camera. Pulse toggles, cutting disables, mending enables.
Nothing wire. Does nothing, just here to add more wires and make guessing which wire does which harder. x 3

Placed extra cameras, I can't recall all the places but here are some.
Around solar array entrances
Around EVA
Around the security back maintenance door
Place an X-Ray camera in the Living Quarters.
Bartender back room
Virology living quarters
Chapel crematory
A camera on the outside of Telecomm's external airlock
X-Ray camera outside every escape pod station.
Inbetween toxins test site and the station(?) There's cameras there already
Inbetween viro and medbay i think ^ I mean inside maintalright
private study? (library back room)
engineering secure storage
X-ray camera in toilets (both of them)
Both maintenance access that you find between important areas (captain room, teleporter room)(HoP office, staff meeting
Custodial Closet
Surgery Observation
Atmospherics Maintenance
Infront of Atmos
mining maintenance
Kitchen cold room
Hydroponics Storage
Emergency storage (both)

Other Map changes
Add red phone in Cyborg Station
Add AI restorer to Cyborg Station room
Added some camera assemblies in the Cyborg Station, inside a crate!

TODO:

Get camera alarms to give the AI a link to press, to jump there.
Standardize wires or something. There's a lot of copy+paste..

OTHER:

With the new camera stuff I got rid of the default x-ray cameras. Though there still are x-ray cameras placed around, watching you sleep.

Added Lugar223's improved vending interface. http://nanotrasen.com/phpBB3/viewtopic.php?f=16&t=9586

Some runtime fixes.

Added a second buffer for Cyborg cameras. Hopefully it'll make freelook less laggy.
Increased the first buffer to 2 seconds.
Some tweaking to stuff.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4606 316c924e-a436-60f5-8080-3fe189b3f50e
2012-09-02 23:20:40 +00:00