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.
Updates the GUI of the Atmos Pumps to include a normalized flow rate
(normalized to 1ATM and 20C) and measurement functionality.
---------
Co-authored-by: Werner <Arrow768@users.noreply.github.com>
Replace /datum/gas_mixture/proc/return_pressure with XGM_PRESSURE(xgm)
macro. Having such a relatively simple statement contributing proc
overhead to procs called millions of times is ridiculous
Rename /datum/gas_mixture/proc/zburn to react, deleting the old react
which was just an alias for it. Free proc overhead
Turn check_combustibility into a macro CHECK_COMBUSTIBLE(is_cmb, xgm).
also rewrite it slightly so that it only needs to do one pass. Its a bit
nasty so I apologize for that, but speeeeed.
Delete most powernet and obj/machinery/power procs for handling power,
replacing them with macros. The fact that we were unironically calling a
draw_power() on APCs to call draw_power() on their terminals to call
draw_power() on their powernet every single process tick was insane.
Turn `between` into a macro alias for clamp() since the param order is
different
turn `Percent` into a macro AS_PCT
Rewrite significant chunks of update_canmove so its not quite as
horrifying of a proc and hopefully doesn't eat the entire mob subsystem
every movement now
For a robust crafting system, I need a new materials framework.
For a new materials framework, I need to clean up reagents.
To clean up reagents, I need to pare down foods from reagent holders.
To pare down foods from reagent holders, I need to port edibility
components.
To port edibility components, I need to port processing components.
To port processing components, I need to port tool behaviors.
This is all back-end code, no new features or functionality from this.
Extends and reworks how various extended information text (desc_info,
desc_build, desc_upgrades) are handled to make object interactions and
mechanics A.) much more clearly documented in-game and B.) much easier
to support from the back-end.
Almost certainly a candidate for test merge.
Assembly/Disassembly instructions are noticeably sporadic, largely due
to our current lack of a unified framework. That's a future thing I'd
like to attack so that it can be handled programmatically, but for now I
only targeted the biggest culprits as I came across them.
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
* Added two new pipes: Fuel and Auxiliary Pipes
* Added a `cycle_to_external_air` tag to airlock controllers, which allows exterior air to be cycled out of an air lock through separate vents.
* Retrofitted the Spark and Intrepid with the new pipes, and the externally cycled air.
* CL
* Allow pressure tanks to attach to all pipes.
* RM stray pixels
* Update code/game/machinery/pipe/construction.dm
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
* rm unused states
* Fix misalignment
* Add remaining pipes to RFD, and correct a few omissions
* Fix airlocks not changing their state properly, and ensure that docking -always- forces airlocks to externally cycle.
* Remove externally cycled airlock from the Spark
* CL
* Add enough pressure to the Intrepid auxiliary line to ensure both airlocks can be pressurized consistently.
---------
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
* Added two new pipes: Fuel and Auxiliary Pipes
* Added a `cycle_to_external_air` tag to airlock controllers, which allows exterior air to be cycled out of an air lock through separate vents.
* Retrofitted the Spark and Intrepid with the new pipes, and the externally cycled air.
* CL
* Allow pressure tanks to attach to all pipes.
* RM stray pixels
* Update code/game/machinery/pipe/construction.dm
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>
* rm unused states
* Fix misalignment
* Add remaining pipes to RFD, and correct a few omissions
---------
Co-authored-by: SleepyGemmy <99297919+SleepyGemmy@users.noreply.github.com>