Commit graph

39 commits

Author SHA1 Message Date
Rouden
cc2c14f8e4
Device Network refactor part 1: API improvements (#44346)
* Refactor DeviceNetwork

* Singleton

* NetworkPayloads refactor

* Reorganize DeviceNetworkSystem

* Surveillance cameras

* Fix code

* Fix build

* Fix test fail by rewriting entire singleton logic

* Properly predict examine

* Update DeviceNetworkSystem.API.cs

* Update EntityTest.cs

* Update DeviceNetworkSystem.cs

* Alright I'll do this expensive check fine

* Fix disposals debug assert

* Implement device network static events support

* Use frozen dictionaries for performance

* Update SharedDeviceNetworkSystem.Payloads.cs

* Parallel payload handling support

* Fix some spagetti-code

* Optimize NetworkPayload cancellation

* Parallel payloads are now cancellable

* Fix screens

* Fix robotics console

* Allow new methods for shared

* Mail fix

* Turret fix

* Fix network system method usage + signal and borg fix

* finally fix atmos devices OH MY GOOOD

* Remove stupid parallelism from fax

* Fix surveiollance cameras

* Working on a single thing for 2 days straight award

* Fix the test?

* Update units.yml

* Add IDevice interface because why not

* Add more device network suffixes

* Fix camera router failing test

* yaml linter peak

* Improve docs for DeviceNetworkHandlers

* fix build

* Update CartridgeLoaderSystem.Relay.cs

* Remove parallel system and EntitySystem post init

* Add more docs and also events

* Remove unnecessary caching

* Update DevicePayloadComponentSystem.cs

* Back to entity events

* Implement DeviceData

* Remove serializable from payloads

* Update DeviceData.cs

* Add a prototype for a singleton

* Fix tests

* Fix air alarms

* Update DeviceNetworkSystem.cs

* Fix cameras

* Make camera router event-less

* Fix atmos sync payloads, add more docs

* Remove singleton + instant packets

* oops remove public access

* Fix tests?

* Why the hell overload effect makes puddle sparks

* Apparently it was redundant

* Update gates.yml

* Finish documentation

* Review

* Mark relay properties as obsolete

* Struct payloads support (#blazinglyfastmemorysafe)

* Update DeviceNetworkTest.cs

* Make device structs stuff better

* Move address prefix to DeviceNetworkComponent

* Locale fixes

* Fix tests

* Doesn't know boolean logic award

* Update AtmosAlarmableSystem.cs

* Fix address predicted examine

* Partial fix to air alarmables

* Fix deployable turrets UI

* Fix firelocks, maybe

* Apparently Activatable UI was enough lol

* Fix surveillance cameras

* Rename `QueuePacket` into `SendPacket`

* Simplify DeviceData as much as possible

* Update DeviceData.cs

* Update FaxMachineComponent.cs

* Remove DeviceData because its stupid

* Update ScreenSystem.cs

* Fix build (camera map broken still)

* Fix map

* fix usings

* Review changes

* Build fix
2026-08-31 19:42:56 +00:00
Stanislav
b22d38f9c0
Yaml audio params are often ignored (#36259)
* Replace WithVolume() with AddVolume(),
Remove AudioHelpers.WithVariation(),
Use specifier options for audio params

* Undo switching to AudioParams.AddVariation()

* Replace AudioHelpers.WithVariation with AudioParams.AddVariation()

* Test AudioParams.AddVariation() and change input parameters to sound like previous AudioHelpers.WithVariation()

* Fix build error

* Fix build error v2

* Remove DoAfter

* fixes

---------

Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
2026-07-25 16:16:23 +00:00
Pieter-Jan Briers
5168b5f3d4
IoC source gen compatibility (#43863)
* IoC source gen compatibility

Can be merged before or after https://github.com/space-wizards/RobustToolbox/pull/6549 doesn't really matter.

* Missed a spot
2026-05-09 03:29:58 +00:00
Pieter-Jan Briers
444180c20d
Optimizations from server profile (#38290)
* Properly cache regexes in chat sanitization/accents

Wow I wonder if `new Regex()` has a cost to it *looks at server profile*.

* Avoid lag caused by Tippy command completions

CompletionHelper.PrototypeIDs explicitly says *not* to use it with EntityPrototype. Unsurprisingly, reporting a completion result for every entity prototype in the game is a *bad idea*.

* Add active count metrics to some high-load systems

Mover & NPCs

I suspect the thing that caused the Leviathan round to shit itself on performance is NPC spam in space or something. So let's verify that.

* Enable parallel processing on pow3r again

Originally disabled due to a theory of it causing bugs, it was re-enabled on Vulture, and I'm not aware of it having caused any issues there.

* Replace hashset with bitflags for AtmosMonitor alert types.

Allocating these hashsets was like 20% of the CPU of atmos, somehow.

* Cache HashSet used for space movement collider checks

Turns out this was a ton of server allocations. Huh.
2025-07-26 11:44:34 +02:00
Tayrtahn
75db49f9c0
Clean up all missing EntitySystem proxy method uses (#38353) 2025-06-26 16:50:49 -07:00
metalgearsloth
63dfd21b14
Predict dumping (#32394)
* Predict dumping

- This got soaped really fucking hard.
- Dumping is predicted, this required disposals to be predicte.d
- Disposals required mailing (because it's tightly coupled), and a smidge of other content systems.
- I also had to fix a compnetworkgenerator issue at the same time so it wouldn't mispredict.

* Fix a bunch of stuff

* nasty merge

* Some reviews

* Some more reviews while I stash

* Fix merge

* Fix merge

* Half of review

* Review

* re(h)f

* lizards

* feexes

* feex
2025-04-19 16:20:40 +10:00
metalgearsloth
a89d4c750b
Power stuff (#31314)
* Power stuff

- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.

* big update

* boing
2024-08-25 22:18:42 +10:00
osjarw
707f1f4981
Fix air alarms (#29172)
Broken by #28272
2024-06-18 16:20:57 -08:00
metalgearsloth
05a2ddff1c
Predict two-way levers (#25043)
* Predict two-way levers

Annoys me the rare occasions I touch cargo. Doesn't predict the signal but at least the lever responds immediately.

* space

* a
2024-02-11 14:19:45 +11:00
metalgearsloth
269c93245d
Unrevert audio (#21330)
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
2023-11-27 22:12:34 +11:00
metalgearsloth
5b8f3c48c4
Revert "Update submodule to 175.0.0 (#21318)" (#21319) 2023-10-29 15:29:30 +11:00
metalgearsloth
9b1b3e03ed
Content audio (#20862) 2023-10-29 14:58:23 +11:00
Flipp Syder
6e108bd400
Surveillance camera listening/speaking (#11640) 2022-10-17 04:44:14 +11:00
metalgearsloth
0b38589728
Raise power events by ref and not broadcast (#11923)
Also some other minor stuff.
2022-10-14 23:08:15 -05:00
Flipp Syder
8cbcf2d640
Fixes reset propagation for atmospheric alarm receivers, adds CVar for fire alarm all access (#11020)
* adds a check for if a firelock is powered before auto-opening

* fixes issue where resets would not propagate properly

* adds cvar bound for fire alarm access (defaults to all access)
2022-09-05 18:15:50 -07:00
Flipp Syder
d447b0f80e
Air alarm patches (#11004) 2022-09-04 02:04:15 -07:00
vulppine
fa8c16358f alarmables should now attempt to update appearance on init 2022-08-30 21:41:29 -07:00
vulppine
e0bf77490d number of things, fixing warnings, AtmosAlarmType instead of AtmosMonitorAlarmType 2022-08-29 07:37:26 -07:00
vulppine
b3a4ef9997 file-scoped namespaces 2022-08-23 10:55:46 -07:00
vulppine
df25715ed3 renames AtmosMonitorAlarmEvent to AtmosAlarmEvent 2022-08-23 10:42:03 -07:00
vulppine
b8d011f8f4 checks for validity now ensure that an alarm is reset to normal - only if it was known beforehand 2022-08-22 18:06:41 -07:00
vulppine
f602ead768 power change should now update alarm on alarmables 2022-08-22 15:03:22 -07:00
vulppine
a5cf4f9578 makes monitoralerttypes actually nullable 2022-08-22 12:06:30 -07:00
vulppine
84027b4e67 alarmables now check if the type of alarm matches the alarms they can check (optional) 2022-08-22 11:30:37 -07:00
vulppine
912b23e414 fire alarms (and anything that uses Reset/ForceAlert) should now update their appearance and play noises 2022-08-22 10:05:39 -07:00
vulppine
a8bf2ccbb6 fixes firelock alarm sync, removes check condition for syncalerts packet receive when checking through the sent dictionary 2022-08-22 07:29:43 -07:00
vulppine
a091e69635 should fix TryGetHighestAlert logic 2022-08-22 07:02:48 -07:00
vulppine
6be3265084 tag sync, replaces monitor references with alarmable references 2022-08-22 05:49:51 -07:00
vulppine
85effbd33d force alert on alarmable, enforces synchronization with alarmables to be bounded by the tags that it can sync with 2022-08-22 05:01:31 -07:00
vulppine
550ea771a7 sync alarms, reset all, etc 2022-08-22 04:21:20 -07:00
vulppine
a2d18e7a6d starts moving alarm sync logic to alarmables 2022-08-20 07:36:53 -07:00
vulppine
068527b13c alert sounds from alarmables, sensor data ctor 2022-08-18 02:37:12 -07:00
vulppine
1c651f051f some backend stuff for air alarms
finally, some UI states!!!
2022-08-17 23:46:15 -07:00
metalgearsloth
8905996cfc
Make raiselocalevent not broadcast by default (#8998) 2022-06-22 09:53:41 +10:00
Leon Friedrich
ca7960382b
Missing nullables (#8634) 2022-06-04 17:17:48 +10:00
wrexbe
bc68ac96dd
Cleanup the namespaces (#8132) 2022-05-13 17:59:03 +10:00
Leon Friedrich
a4d55235cc
Rejig Device networks (#7380) 2022-04-08 22:27:10 +10:00
mirrorcult
ec4d4688c7
Seal/abstract/virtual everything (#6739) 2022-02-16 18:23:23 +11:00
Flipp Syder
b1584793bf
Adds fire/air alarms (#5018)
Co-authored-by: Vera Aguilera Puerto <6766154+Zumorica@users.noreply.github.com>
Co-authored-by: E F R <602406+Efruit@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2022-01-02 15:56:24 +11:00