Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.
Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.
I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
* Initial experiment
* holy shit the pain of this rabbit hole
* F
* F
* F
* F
* FFF
* FFFF
* FFFFFFFFF
* FFFFFFFFFF
* FF
* ffffff
* ffffffff
* F^F
* FFFFFF
* F
* Robusted
* F
* Some readability, hopefully
* Fear
* Aurora was a mistake
* Horrors beyond our comprehension
* Use the appropriate macro across the tests
* Brah
* FF
* Mute janitors robusting the ling
* Frail doctors revealing to be more trained than a KGB sleeper agent when the crew armory opens
* FFFFFFF
* gujbjh
* Shitcode, shitcode everywhere
* Pain
* Cursed codebase
* Fix AI mask qdel, SQL tests to macro
* Attempt at github grouping
* Take two
* Brah
* Maybe this looks better
* Different formatting
* FFS
* Visuals
* pain
* FFFFF
* hyuh
* fgdsgd
* igyguybujgb
* Just calling the parent here
* dsfs
* fdsaf
* Move more pieces to use the macros
* Finish moving to macro
* gah
* Changelog, some touchups
* Fix another found runtime
* GDI
Removes a whole bunch of in world loops.
Reworks SSmachinery to hold two lists: all_machines and processing_machines. all_machines contains all machines 5ever. All of them. Literally. Forever. And ever. processing_machines only contains machines that process with the SSmachinery controller.
I checked most types at runtime on the live server to see whether they're in processing_machines or in all_machines, and did debug to ensure that most machinery ends up and stays in all_machines.
Includes a basic UT to make sure all mapped in machinery types remain within the all_machines list post-init.