mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-06-05 05:24:36 +01:00
f4bf017921
* 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>
40 lines
1.4 KiB
Plaintext
40 lines
1.4 KiB
Plaintext
// This is a simple ticker for the new event system.
|
|
// The logic that determines what events get chosen is held inside a seperate subsystem.
|
|
|
|
SUBSYSTEM_DEF(event_ticker)
|
|
name = "Events (Ticker)"
|
|
wait = 2 SECONDS
|
|
runlevels = RUNLEVEL_GAME
|
|
dependencies = list(
|
|
/datum/controller/subsystem/events
|
|
)
|
|
|
|
// List of `/datum/event2/event`s that are currently active, and receiving process() ticks.
|
|
var/list/active_events = list()
|
|
|
|
// List of `/datum/event2/event`s that finished, and are here for showing at roundend, if that's desired.
|
|
var/list/finished_events = list()
|
|
|
|
// Process active events.
|
|
/datum/controller/subsystem/event_ticker/fire(resumed)
|
|
for(var/datum/event2/event/event as anything in active_events)
|
|
event.process()
|
|
if(event.finished)
|
|
event_finished(event)
|
|
|
|
// Starts an event, independent of the GM system.
|
|
// This means it will always run, and won't affect the GM system in any way, e.g. not putting the event off limits after one use.
|
|
/datum/controller/subsystem/event_ticker/proc/start_event(event_type)
|
|
var/datum/event2/event/E = new event_type()
|
|
E.execute()
|
|
event_started(E)
|
|
|
|
/datum/controller/subsystem/event_ticker/proc/event_started(datum/event2/event/E)
|
|
log_debug("Event [E.type] is now being ran.")
|
|
active_events += E
|
|
|
|
/datum/controller/subsystem/event_ticker/proc/event_finished(datum/event2/event/E)
|
|
log_debug("Event [E.type] has finished.")
|
|
active_events -= E
|
|
finished_events += E
|