Files
Bubberstation/code/controllers/subsystem/processing/reagents.dm
Waterpig bb70889f6e TG Upstream Part 1
3591 individual conflicts

Update build.js

Update install_node.sh

Update byond.js

oh my fucking god

hat

slow

huh

holy shit

we all fall down

2 more I missed

2900 individual conflicts

2700 Individual conflicts

replaces yarn file with tg version, bumping us down to 2200-ish

Down to 2000 individual conflicts

140 down

mmm

aaaaaaaaaaaaaaaaaaa

not yt

575

soon

900 individual conflicts

600 individual conflicts, 121 file conflicts

im not okay

160 across 19 files

29 in 4 files

0 conflicts, compiletime fix time

some minor incap stuff

missed ticks

weird dupe definition stuff

missed ticks 2

incap fixes

undefs and pie fix

Radio update and some extra minor stuff

returns a single override

no more dupe definitions, 175 compiletime errors

Unticked file fix

sound and emote stuff

honk and more radio stuff
2024-10-19 08:04:33 -07:00

56 lines
2.3 KiB
Plaintext

//Used for active reactions in reagents/equilibrium datums
PROCESSING_SUBSYSTEM_DEF(reagents)
name = "Reagents"
init_order = INIT_ORDER_REAGENTS
priority = FIRE_PRIORITY_REAGENTS
wait = 0.25 SECONDS //You might think that rate_up_lim has to be set to half, but since everything is normalised around seconds_per_tick, it automatically adjusts it to be per second. Magic!
flags = SS_KEEP_TIMING
runlevels = RUNLEVEL_GAME | RUNLEVEL_POSTGAME
///What time was it when we last ticked
var/previous_world_time = 0
/datum/controller/subsystem/processing/reagents/Initialize()
//So our first step isn't insane
previous_world_time = world.time
///Blacklists these reagents from being added to the master list. the exact type only. Children are not blacklisted.
GLOB.fake_reagent_blacklist = list(/datum/reagent/medicine/c2, /datum/reagent/medicine, /datum/reagent/reaction_agent)
//Build GLOB lists - see holder.dm
build_chemical_reactions_lists()
// SKYRAT EDIT ADDITION START
if(CONFIG_GET(flag/disable_erp_preferences))
for(var/reaction_path in GLOB.chemical_reactions_list)
var/datum/chemical_reaction/reaction_datum = GLOB.chemical_reactions_list[reaction_path]
if(!reaction_datum.erp_reaction)
continue
GLOB.chemical_reactions_list -= reaction_path
for(var/reaction in reaction_datum.required_reagents)
var/list/reaction_list = GLOB.chemical_reactions_list_reactant_index[reaction]
if(reaction_list)
reaction_list -= reaction_datum
// SKYRAT EDIT ADDITION END
return SS_INIT_SUCCESS
/datum/controller/subsystem/processing/reagents/fire(resumed = FALSE)
if (!resumed)
currentrun = processing.Copy()
//cache for sanic speed (lists are references anyways)
var/list/current_run = currentrun
//Attempt to realtime reactions in a way that doesn't make them overtly dangerous
var/delta_realtime = (world.time - previous_world_time)/10 //normalise to s from ds
previous_world_time = world.time
while(current_run.len)
var/datum/thing = current_run[current_run.len]
current_run.len--
if(QDELETED(thing))
stack_trace("Found qdeleted thing in [type], in the current_run list.")
processing -= thing
else if(thing.process(delta_realtime) == PROCESS_KILL) //we are realtime
// fully stop so that a future START_PROCESSING will work
STOP_PROCESSING(src, thing)
if (MC_TICK_CHECK)
return