Commit Graph

16 Commits

Author SHA1 Message Date
Nadyr
58c58e63d1 powder that makes you say yes 2021-07-28 18:28:21 -04:00
Nadyr
f356703de2 powder that makes you say yes 2021-07-28 18:26:27 -04:00
Chompstation Bot
ef06cb4ae8 Fix SSmachines when a machine returns PROCESS_KILL 2021-07-28 19:19:49 +00:00
Aronai Sieyes
279f027dca Merge pull request #11202 from VOREStation/vplk-optimize-machines
Optimize machinery processing
2021-07-22 16:29:58 +00:00
Chompstation Bot
fb343cec6c [MIRROR] Linter diagnostics + bans non-var relative pathing 2021-06-22 22:17:02 +00:00
cadyn
d260757e91 yumyum radio go vroom hehe 2020-11-24 22:45:41 -08:00
cadyn
21acd90c21 If the fixes the lag I will cry 2020-11-24 15:34:02 -08:00
Cadyn
c64c9d1fd0 Machines and bots improvement
>:3
2020-09-18 00:07:40 -07:00
Leshana
763753648b Implements "static" area machinery power usage
- 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.
2020-04-23 19:04:34 -04:00
Novacat
56752a1337 Merge branch 'master' into upstream-merge-5901 2019-03-28 14:37:02 -04:00
Neerti
fe0b7373b3 Ports TGstation view variables + admin proccall guards, and all the baggage that comes with it 2019-03-27 14:49:30 -04:00
Atermonera
439afee2ab Unclogs powersink drains 2019-01-26 17:54:34 -05:00
Leshana
d430448ebf Split and clarify global lists of processing vs non-processing machinery. (#5307)
* 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.
2018-05-28 15:57:02 -04:00
Leshana
63257bf40b Use define constants for subsystem init order and priority.
Replaced all hard coded numbers for subsystem priority with defines in subsystem.dm - Much easier to see them in order that way.
2018-04-20 13:18:55 -04:00
Leshana
44dc4b7286 Implement SSatoms
* 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.
2018-02-05 15:50:06 -05:00
Leshana
a97a574278 Transformed the machinery processor into an StonedMC subsystem
* 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.
2017-12-29 15:31:59 -05:00