mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 21:48:21 +01:00
18 lines
25 KiB
HTML
18 lines
25 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><base href="../../"><link rel="stylesheet" href="dmdoc.css"><title>/datum/controller/subsystem - Space Station 13</title></head><body><header><a href="index.html">Space Station 13</a> - <a href="index.html#modules">Modules</a> - <a href="index.html#types">Types</a> — <a href="datum/controller/subsystem.html#var">Var Details</a> - <a href="datum/controller/subsystem.html#proc">Proc Details</a></header><main><h1>Subsystem base class <aside>/<a href="datum.html">datum</a>/<a href="datum/controller.html">controller</a>/<a href="datum/controller/subsystem.html">subsystem</a></aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L10"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 10"></a></h1><p>Defines a subsystem to be managed by the <a href="datum/controller/master.html" title="/datum/controller/master">Master Controller</a></p>
|
||
<p>Simply define a child of this subsystem, using the [SUBSYSTEM_DEF] macro, and the MC will handle registration.
|
||
Changing the name is required</p><table class="summary" cellspacing="0"><tr><td colspan="2"><h2>Vars</h2></td></tr><tr><th><a href="datum/controller/subsystem.html#var/can_fire">can_fire</a></th><td>Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later
|
||
use the [SS_NO_FIRE] flag instead for systems that never fire to keep it from even being added to list that is checked every tick</td></tr><tr><th><a href="datum/controller/subsystem.html#var/cost">cost</a></th><td>Running average of the amount of milliseconds it takes the subsystem to complete a run (including all resumes but not the time spent paused)</td></tr><tr><th><a href="datum/controller/subsystem.html#var/cpu_display">cpu_display</a></th><td>Tab to display in under the MC subtabs</td></tr><tr><th><a href="datum/controller/subsystem.html#var/failure_strikes">failure_strikes</a></th><td>How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!</td></tr><tr><th><a href="datum/controller/subsystem.html#var/fire_sleep_count">fire_sleep_count</a></th><td>Amount of times the subsystem has slept during fire()</td></tr><tr><th><a href="datum/controller/subsystem.html#var/flags">flags</a></th><td>[Subsystem Flags][SS_NO_INIT] to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)</td></tr><tr><th><a href="datum/controller/subsystem.html#var/init_order">init_order</a></th><td>Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.</td></tr><tr><th><a href="datum/controller/subsystem.html#var/initialized">initialized</a></th><td>This var is set to TRUE after the subsystem has been initialized.</td></tr><tr><th><a href="datum/controller/subsystem.html#var/last_fire">last_fire</a></th><td>Last world.time the subsystem completed a run (as in wasn't paused by [MC_TICK_CHECK])</td></tr><tr><th><a href="datum/controller/subsystem.html#var/name">name</a></th><td>Name of the subsystem - you must change this</td></tr><tr><th><a href="datum/controller/subsystem.html#var/next_fire">next_fire</a></th><td>Scheduled world.time for next fire()</td></tr><tr><th><a href="datum/controller/subsystem.html#var/offline_implications">offline_implications</a></th><td>What are the implications of this SS being offlined?</td></tr><tr><th><a href="datum/controller/subsystem.html#var/paused_tick_usage">paused_tick_usage</a></th><td>Tracks how much of a tick the subsystem has consumed in the current run</td></tr><tr><th><a href="datum/controller/subsystem.html#var/paused_ticks">paused_ticks</a></th><td>Tracks how many fires the subsystem has consecutively paused on in the current run</td></tr><tr><th><a href="datum/controller/subsystem.html#var/postponed_fires">postponed_fires</a></th><td>How many fires have we been requested to postpone</td></tr><tr><th><a href="datum/controller/subsystem.html#var/priority">priority</a></th><td>Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems</td></tr><tr><th><a href="datum/controller/subsystem.html#var/queue_next">queue_next</a></th><td>Next subsystem in the queue of subsystems to run this tick</td></tr><tr><th><a href="datum/controller/subsystem.html#var/queue_prev">queue_prev</a></th><td>Previous subsystem in the queue of subsystems to run this tick</td></tr><tr><th><a href="datum/controller/subsystem.html#var/queued_priority">queued_priority</a></th><td>Priority at the time the subsystem entered the queue. Needed to avoid changes in priority (by admins and the like) from breaking things.</td></tr><tr><th><a href="datum/controller/subsystem.html#var/queued_time">queued_time</a></th><td>Time the subsystem entered the queue, (for timing and priority reasons)</td></tr><tr><th><a href="datum/controller/subsystem.html#var/runlevels">runlevels</a></th><td>Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.</td></tr><tr><th><a href="datum/controller/subsystem.html#var/ss_id">ss_id</a></th><td>SS ID - Again, change this but keep it snake_case</td></tr><tr><th><a href="datum/controller/subsystem.html#var/state">state</a></th><td>Tracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping</td></tr><tr><th><a href="datum/controller/subsystem.html#var/tick_allocation_avg">tick_allocation_avg</a></th><td>How much of a tick (in percents of a tick) do we get allocated by the mc on avg.</td></tr><tr><th><a href="datum/controller/subsystem.html#var/tick_allocation_last">tick_allocation_last</a></th><td>How much of a tick (in percents of a tick) were we allocated last fire.</td></tr><tr><th><a href="datum/controller/subsystem.html#var/tick_overrun">tick_overrun</a></th><td>Running average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing</td></tr><tr><th><a href="datum/controller/subsystem.html#var/tick_usage">tick_usage</a></th><td>Running average of the amount of tick usage in percents of a tick it takes the subsystem to complete a run</td></tr><tr><th><a href="datum/controller/subsystem.html#var/ticks">ticks</a></th><td>Tracks how many fires the subsystem takes to complete a run on average.</td></tr><tr><th><a href="datum/controller/subsystem.html#var/times_fired">times_fired</a></th><td>Tracks the amount of completed runs for the subsystem</td></tr><tr><th><a href="datum/controller/subsystem.html#var/wait">wait</a></th><td>Time to wait (in deciseconds) between each call to fire(). Must be a positive integer.</td></tr><tr><td colspan="2"><h2>Procs</h2></td></tr><tr><th><a href="datum/controller/subsystem.html#proc/PreInit">PreInit</a></th><td>datum/controller/subsystem/New()</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/enqueue">enqueue</a></th><td>Queue it to run.
|
||
(we loop thru a linked list until we get to the end or find the right point)
|
||
(this lets us sort our run order correctly without having to re-sort the entire already sorted list)</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/fire">fire</a></th><td>previously, this would have been named 'process()' but that name is used everywhere for different things!
|
||
fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds.
|
||
Sleeping in here prevents future fires until returned.</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/get_cost">get_cost</a></th><td>Returns what to display as the ms cost for this subsystem.</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/get_metrics">get_metrics</a></th><td>Returns the metrics for the subsystem.</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/ignite">ignite</a></th><td>This is used so the mc knows when the subsystem sleeps. do not override.</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/last_task">last_task</a></th><td>Allows a subsystem to report what it was doing in case of a silent crash.</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/postpone">postpone</a></th><td>Causes the next "cycle" fires to be missed. Effect is accumulative but can reset by calling update_nextfire(reset_time = TRUE)</td></tr><tr><th><a href="datum/controller/subsystem.html#proc/update_nextfire">update_nextfire</a></th><td></td></tr></table><h2 id="var">Var Details</h2><h3 id="var/can_fire"><aside class="declaration">var </aside>can_fire <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L39"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 39"></a></h3><p>Set to 0 to prevent fire() calls, mostly for admin use or subsystems that may be resumed later
|
||
use the [SS_NO_FIRE] flag instead for systems that never fire to keep it from even being added to list that is checked every tick</p><h3 id="var/cost"><aside class="declaration">var </aside>cost <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L59"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 59"></a></h3><p>Running average of the amount of milliseconds it takes the subsystem to complete a run (including all resumes but not the time spent paused)</p><h3 id="var/cpu_display"><aside class="declaration">var </aside>cpu_display <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L23"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 23"></a></h3><p>Tab to display in under the MC subtabs</p><h3 id="var/failure_strikes"><aside class="declaration">var </aside>failure_strikes <aside>– /static/list</aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L101"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 101"></a></h3><p>How many times we suspect a subsystem type has crashed the MC, 3 strikes and you're out!</p><h3 id="var/fire_sleep_count"><aside class="declaration">var </aside>fire_sleep_count <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L98"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 98"></a></h3><p>Amount of times the subsystem has slept during fire()</p><h3 id="var/flags"><aside class="declaration">var </aside>flags <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L35"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 35"></a></h3><p>[Subsystem Flags][SS_NO_INIT] to control binary behavior. Flags must be set at compile time or before preinit finishes to take full effect. (You can also restart the mc to force them to process again)</p><h3 id="var/init_order"><aside class="declaration">var </aside>init_order <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L26"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 26"></a></h3><p>Order of initialization. Higher numbers are initialized first, lower numbers later. Use or create defines such as [INIT_ORDER_DEFAULT] so we can see the order in one file.</p><h3 id="var/initialized"><aside class="declaration">var </aside>initialized <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L49"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 49"></a></h3><p>This var is set to TRUE after the subsystem has been initialized.</p><h3 id="var/last_fire"><aside class="declaration">var </aside>last_fire <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L53"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 53"></a></h3><p>Last world.time the subsystem completed a run (as in wasn't paused by [MC_TICK_CHECK])</p><h3 id="var/name">name <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L14"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 14"></a></h3><p>Name of the subsystem - you must change this</p><h3 id="var/next_fire"><aside class="declaration">var </aside>next_fire <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L56"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 56"></a></h3><p>Scheduled world.time for next fire()</p><h3 id="var/offline_implications"><aside class="declaration">var </aside>offline_implications <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L20"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 20"></a></h3><p>What are the implications of this SS being offlined?</p><h3 id="var/paused_tick_usage"><aside class="declaration">var </aside>paused_tick_usage <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L80"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 80"></a></h3><p>Tracks how much of a tick the subsystem has consumed in the current run</p><h3 id="var/paused_ticks"><aside class="declaration">var </aside>paused_ticks <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L77"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 77"></a></h3><p>Tracks how many fires the subsystem has consecutively paused on in the current run</p><h3 id="var/postponed_fires"><aside class="declaration">var </aside>postponed_fires <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L89"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 89"></a></h3><p>How many fires have we been requested to postpone</p><h3 id="var/priority"><aside class="declaration">var </aside>priority <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L32"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 32"></a></h3><p>Priority Weight: When mutiple subsystems need to run in the same tick, higher priority subsystems will be given a higher share of the tick before MC_TICK_CHECK triggers a sleep, higher priority subsystems also run before lower priority subsystems</p><h3 id="var/queue_next"><aside class="declaration">var </aside>queue_next <aside>– /<a href="datum.html">datum</a>/<a href="datum/controller.html">controller</a>/<a href="datum/controller/subsystem.html">subsystem</a></aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L104"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 104"></a></h3><p>Next subsystem in the queue of subsystems to run this tick</p><h3 id="var/queue_prev"><aside class="declaration">var </aside>queue_prev <aside>– /<a href="datum.html">datum</a>/<a href="datum/controller.html">controller</a>/<a href="datum/controller/subsystem.html">subsystem</a></aside> <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L106"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 106"></a></h3><p>Previous subsystem in the queue of subsystems to run this tick</p><h3 id="var/queued_priority"><aside class="declaration">var </aside>queued_priority <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L95"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 95"></a></h3><p>Priority at the time the subsystem entered the queue. Needed to avoid changes in priority (by admins and the like) from breaking things.</p><h3 id="var/queued_time"><aside class="declaration">var </aside>queued_time <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L92"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 92"></a></h3><p>Time the subsystem entered the queue, (for timing and priority reasons)</p><h3 id="var/runlevels"><aside class="declaration">var </aside>runlevels <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L42"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 42"></a></h3><p>Bitmap of what game states can this subsystem fire at. See [RUNLEVELS_DEFAULT] for more details.</p><h3 id="var/ss_id"><aside class="declaration">var </aside>ss_id <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L17"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 17"></a></h3><p>SS ID - Again, change this but keep it snake_case</p><h3 id="var/state"><aside class="declaration">var </aside>state <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L74"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 74"></a></h3><p>Tracks the current execution state of the subsystem. Used to handle subsystems that sleep in fire so the mc doesn't run them again while they are sleeping</p><h3 id="var/tick_allocation_avg"><aside class="declaration">var </aside>tick_allocation_avg <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L71"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 71"></a></h3><p>How much of a tick (in percents of a tick) do we get allocated by the mc on avg.</p><h3 id="var/tick_allocation_last"><aside class="declaration">var </aside>tick_allocation_last <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L68"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 68"></a></h3><p>How much of a tick (in percents of a tick) were we allocated last fire.</p><h3 id="var/tick_overrun"><aside class="declaration">var </aside>tick_overrun <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L65"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 65"></a></h3><p>Running average of the amount of tick usage (in percents of a game tick) the subsystem has spent past its allocated time without pausing</p><h3 id="var/tick_usage"><aside class="declaration">var </aside>tick_usage <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L62"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 62"></a></h3><p>Running average of the amount of tick usage in percents of a tick it takes the subsystem to complete a run</p><h3 id="var/ticks"><aside class="declaration">var </aside>ticks <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L83"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 83"></a></h3><p>Tracks how many fires the subsystem takes to complete a run on average.</p><h3 id="var/times_fired"><aside class="declaration">var </aside>times_fired <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L86"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 86"></a></h3><p>Tracks the amount of completed runs for the subsystem</p><h3 id="var/wait"><aside class="declaration">var </aside>wait <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L29"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 29"></a></h3><p>Time to wait (in deciseconds) between each call to fire(). Must be a positive integer.</p><h2 id="proc">Proc Details</h2><h3 id="proc/PreInit"><aside class="declaration">proc </aside>PreInit<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L118"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 118"></a></aside></h3><p>datum/controller/subsystem/New()</p><h3 id="proc/enqueue"><aside class="declaration">proc </aside>enqueue<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L186"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 186"></a></aside></h3><p>Queue it to run.
|
||
(we loop thru a linked list until we get to the end or find the right point)
|
||
(this lets us sort our run order correctly without having to re-sort the entire already sorted list)</p><h3 id="proc/fire"><aside class="declaration">proc </aside>fire<aside>(resumed) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L146"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 146"></a></aside></h3><p>previously, this would have been named 'process()' but that name is used everywhere for different things!
|
||
fire() seems more suitable. This is the procedure that gets called every 'wait' deciseconds.
|
||
Sleeping in here prevents future fires until returned.</p><h3 id="proc/get_cost"><aside class="declaration">proc </aside>get_cost<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L283"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 283"></a></aside></h3><p>Returns what to display as the ms cost for this subsystem.</p><h3 id="proc/get_metrics"><aside class="declaration">proc </aside>get_metrics<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L348"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 348"></a></aside></h3><p>Returns the metrics for the subsystem.</p>
|
||
<p>This can be overriden on subtypes for variables that could affect tick usage
|
||
Example: ATs on SSair</p><h3 id="proc/ignite"><aside class="declaration">proc </aside>ignite<aside>(resumed) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L122"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 122"></a></aside></h3><p>This is used so the mc knows when the subsystem sleeps. do not override.</p><h3 id="proc/last_task"><aside class="declaration">proc </aside>last_task<aside>() <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L358"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 358"></a></aside></h3><p>Allows a subsystem to report what it was doing in case of a silent crash.</p><h3 id="proc/postpone"><aside class="declaration">proc </aside>postpone<aside>(cycles) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L323"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 323"></a></aside></h3><p>Causes the next "cycle" fires to be missed. Effect is accumulative but can reset by calling update_nextfire(reset_time = TRUE)</p><h3 id="proc/update_nextfire"><aside class="declaration">proc </aside>update_nextfire<aside>(reset_time) <a href="https://github.com/ParadiseSS13/Paradise/blob/8a8a00a2a9bec485351e5f219982b7315d3504fa/code/controllers/subsystem.dm#L162"><img src="git.png" width="16" height="16" title="code/controllers/subsystem.dm 162"></a></aside></h3><ul>
|
||
<li>Update next_fire for the next run.</li>
|
||
<li>reset_time (bool) - Ignore things that would normally alter the next fire, like tick_overrun, and last_fire. (also resets postpone)</li>
|
||
</ul></main><footer>paradise.dme <a href="https://github.com/ParadiseSS13/Paradise/tree/8a8a00a2a9bec485351e5f219982b7315d3504fa">8a8a00a</a> (master) — <a href="https://github.com/SpaceManiac/SpacemanDMM/blob/master/crates/dmdoc/README.md">dmdoc 1.11.0</a></footer></body></html> |