* Initial port
* pause air
* decoupled input from processing
* explosion condition tweak
* closer to original recursive code
* accurate explosions
* better defer calls
* glob fix
* fix
* DON'T DO THAT
* initial deferral code
* small explosions ignored
* lower thresholds
* better thresholds again
* forbid powernet defer during init, explosions too
* don't block your own network regen
* use procs
* better thresholds, always defer at least
* admin notice
* subsytem updated
* Allow removal from networks
* defer till rebuild
* dir
* Update breaker_box.dm
* no init means no init
* then flag it...
---------
Co-authored-by: Selis <12716288+ItsSelis@users.noreply.github.com>
Co-authored-by: C.L. <killer65311@gmail.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
* Unit Test rework & Master/Ticker update
* Fixes and working unit testing
* Fixes
* Test fixes and FA update
* Fixed runtimes
* Radio subsystem
* move that glob wherever later
* ident
* CIBUILDING compile option
* Fixed runtimes
* Some changes to the workflow
* CI Split
* More split
* Pathing
* Linters and Annotators
* ci dir fix
* Missing undef fixed
* Enable grep checks
* More test conversions
* More split
* Correct file
* Removes unneeded inputs
* oop
* More dependency changes
* More conversions
* Conversion fixes
* Fixes
* Some assert fixes
* Corrects start gate
* Converted some README.dms to README.mds
* Removes duplicate proc
* Removes unused defines
* Example configs
* fix dll access viol by double calling
* Post-rebase fixes
* Cleans up names global list
* Undef restart counter
* More code/game/ cleanup
* Statpanel update
* Skybox
* add
* Fix ticker
* Roundend fix
* Persistence dependency update
* Reordering
* Reordering
* Reordering
* Initstage fix
* .
* .
* Reorder
* Reorder
* Circle
* Mobs
* Air
* Test fix
* CI Script Fix
* Configs
* More ticker stuff
* This is now in 'reboot world'
* Restart world announcements
* no glob in PreInit
* to define
* Update
* Removed old include
* Make this file normal again
* moved
* test
* shared unit testing objects
* Updates batched_spritesheets and universal_icon
* .
* job data debug
* rm that
* init order
* show us
* .
* i wonder
* .
* .
* urg
* do we not have a job ID?
* .
* rm sleep for now
* updated rust-g linux binaries
* binaries update 2
* binaries update 3
* testing something
* change that
* test something
* .
* .
* .
* locavar
* test
* move that
* .
* debug
* don't run this test
* strack trace it
* cleaner
* .
* .
* cras again
* also comment this out
* return to official rust g
* Update robot_icons.dm
* monitor the generation
* .
---------
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
* Experimental vent hibernation
* loooopppp
* fix that too
* functional
* fixes
* ensure all vents get checked at some point
---------
Co-authored-by: Willburd <7099514+Willburd@users.noreply.github.com>
- Instead of using auto_use_power to re-tally up machinery's power usage every cycle, track the steady "static" load separately from the transient "oneoff" usage. Machines then only need to inform the area when they use oneoff power or *change* their steady usage.
- Remove auto_use_power and stop SSmachines from calling it.
- Add vars to track "static" usage for each of the three power channels to /area
- Rename the existing three vars to "oneoff" so its clear what they mean (and to catch people accidentally updating them directly)
- Update area power procs and APCs to use the new variables.
- Rename /area/proc/use_power() to use_power_oneoff() to make it clear what it is doing.
- Deprecate /obj/machinery/use_power() in favor of use_power_oneoff() but don't delete yet. Can transition gradually.
- Add logic to the update_power procs on machines to calculate the deltas and update static area power whenever their usage changes.
- Add logic to machines to update area power when they are created, destroyed, or move.
- Moved /obj/machinery procs related to area power usage into machinery_power.dm to make them easier to find.
- Added or updated comments in several places to explain what is going on and how to use it.
* Renaming local var 'machines' to avoid confusion with the global var of same name.
* Delete the unused process scheduler machinery.dm file. Long since replaced with SSmachines
* Split and clarify global lists of processing vs non-processing machinery.
- Renamed the list of processing machinery from "machines" to "processing_machines"
- Added new global list "machines" to be a list of all machines.
- Since nearly every reference to machines actually wanted to iterate over all machines anyway, this works out great.
* Moves proc/initialize() from being on /atom/movable, /are and /turf/simulated to being on /atom - Now turfs can initialize too
* Added the SSatoms subsystem which controls initialization of atoms at roundstart and during normal conditions.
* Disabled the old auto_init = 0 behavior, ALL atoms should get initialized() called on them now.
* Refactored the way initialize() is called during /New() to utilize SSatoms instead of SScreation
* Removed SScreation, as it was only a stop-gap until SSatoms could be ported.
* Updated the maploader to inform SSatoms when it is loading maps instead of SScreation.
* Updated the template map loader to use SSatoms to perform initTemplateBounds
* Renamed 'initialized' var in seed_storage to deconflict.
* Removed usage of auto_init = 0, replaced with a no-op initialize() proc for atoms that don't need initialization.
* This is PHASE 1 of a multi-phase conversion. In this first phase we implement the subsystem, but leave it processing the existing global list variables. In the next phase we will switch to use datum variables in the subsystem. The main reason for splitting into two phases is ease of code review; change the meaningful code without the hundreds of machines -> SSmachines.machinery substitutions.
* We did declare macros for adding/removing things to the processing lists, and convert everywhere to use the macros.
* Added var/is_processing to /datum to keep track of whether an instance is already in a processing list (prevents it being in the list twice!) and also debugging, making sure its not in two lists etc.
* NOTE: The global machines list is **no longer sorted** for performance reasons. As far as I know, the only module that actually ever cared was cameras. Our camera system already handles its own sorting in the cameranets anyway, so it should no longer be needed.