Updated auxmos (see desc)
1. All callbacks are now auxmos-side, using new auxcallbacks. 2. Heat processing is now paused for and has been optimized by making it have fewer callbacks.
This commit is contained in:
BIN
auxmos.dll
BIN
auxmos.dll
Binary file not shown.
BIN
auxmos.pdb
BIN
auxmos.pdb
Binary file not shown.
@@ -151,17 +151,14 @@ SUBSYSTEM_DEF(air)
|
||||
|
||||
if(currentpart == SSAIR_TURF_CONDUCTION)
|
||||
timer = TICK_USAGE_REAL
|
||||
process_turf_heat(CALLBACK(GLOBAL_PROC,/proc/heat_post_process))
|
||||
if(process_turf_heat(MC_TICK_REMAINING_MS))
|
||||
pause()
|
||||
cost_superconductivity = MC_AVERAGE(cost_superconductivity, TICK_DELTA_TO_MS(TICK_USAGE_REAL - timer))
|
||||
if(state != SS_RUNNING)
|
||||
return
|
||||
resumed = 0
|
||||
currentpart = SSAIR_REBUILD_PIPENETS
|
||||
|
||||
/proc/heat_post_process(turf/T,new_temp)
|
||||
T.temperature = new_temp
|
||||
T.temperature_expose()
|
||||
|
||||
/datum/controller/subsystem/air/proc/process_pipenets(resumed = 0)
|
||||
if (!resumed)
|
||||
src.currentrun = networks.Copy()
|
||||
@@ -223,15 +220,8 @@ SUBSYSTEM_DEF(air)
|
||||
if(MC_TICK_CHECK)
|
||||
return
|
||||
|
||||
/proc/post_process_equalize(turf/open/T,turf/open/otherT,amount)
|
||||
if(!istype(T) || !istype(otherT))
|
||||
return
|
||||
T.update_visuals()
|
||||
otherT.update_visuals()
|
||||
T.consider_pressure_difference(otherT,amount)
|
||||
|
||||
/datum/controller/subsystem/air/proc/process_turf_equalize(resumed = 0)
|
||||
if(process_turf_equalize_extools((Master.current_ticklimit - TICK_USAGE) * world.tick_lag,CALLBACK(GLOBAL_PROC,/proc/post_process_equalize)))
|
||||
if(process_turf_equalize_extools(MC_TICK_REMAINING_MS))
|
||||
pause()
|
||||
/*
|
||||
//cache for sanic speed
|
||||
@@ -250,25 +240,8 @@ SUBSYSTEM_DEF(air)
|
||||
return
|
||||
*/
|
||||
|
||||
/proc/post_process_turf(flags,turf/open/T,list/tiles_with_diffs)
|
||||
if(!isopenturf(T))
|
||||
return
|
||||
if(flags & 2)
|
||||
T.air.react()
|
||||
if(flags & 1)
|
||||
T.update_visuals()
|
||||
for(var/list/pair in tiles_with_diffs)
|
||||
var/turf/open/enemy_tile = pair[1]
|
||||
if(istype(enemy_tile))
|
||||
var/difference = pair[2]
|
||||
if(difference > 0)
|
||||
T.consider_pressure_difference(enemy_tile, difference)
|
||||
else
|
||||
enemy_tile.consider_pressure_difference(T, -difference)
|
||||
|
||||
/datum/controller/subsystem/air/proc/process_turfs(resumed = 0)
|
||||
var/datum/callback/post_process = CALLBACK(GLOBAL_PROC,/proc/post_process_turf)
|
||||
if(process_turfs_extools(post_process))
|
||||
if(process_turfs_extools(MC_TICK_REMAINING_MS))
|
||||
pause()
|
||||
/*
|
||||
//cache for sanic speed
|
||||
@@ -291,7 +264,7 @@ SUBSYSTEM_DEF(air)
|
||||
T.update_visuals()
|
||||
|
||||
/datum/controller/subsystem/air/proc/process_excited_groups(resumed = 0)
|
||||
if(!process_excited_groups_extools(CALLBACK(GLOBAL_PROC,/proc/post_process_excited_turf)))
|
||||
if(!process_excited_groups_extools(MC_TICK_REMAINING_MS))
|
||||
pause()
|
||||
|
||||
/datum/controller/subsystem/air/proc/process_turfs_extools()
|
||||
|
||||
@@ -4,17 +4,11 @@ SUBSYSTEM_DEF(callbacks)
|
||||
wait = 1
|
||||
priority = FIRE_PRIORITY_CALLBACKS
|
||||
|
||||
/proc/_process_callbacks()
|
||||
SScallbacks.can_fire = 0
|
||||
SScallbacks.flags |= SS_NO_FIRE
|
||||
CRASH("Auxtools not found! Callback subsystem shutting itself off.")
|
||||
|
||||
/proc/_process_callbacks_priority()
|
||||
/proc/process_callbacks()
|
||||
SScallbacks.can_fire = 0
|
||||
SScallbacks.flags |= SS_NO_FIRE
|
||||
CRASH("Auxtools not found! Callback subsystem shutting itself off.")
|
||||
|
||||
/datum/controller/subsystem/callbacks/fire()
|
||||
_process_callbacks_priority()
|
||||
if(TICK_CHECK || _process_callbacks(MC_TICK_REMAINING_MS))
|
||||
if(process_callbacks(null,MC_TICK_REMAINING_MS))
|
||||
pause()
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
ChangeTurf(/turf/open/floor/plating/rust)
|
||||
|
||||
/turf/open/floor/wood/cold
|
||||
temperature = 255.37
|
||||
initial_temperature = 255.37
|
||||
|
||||
/turf/open/floor/wood/airless
|
||||
initial_gas_mix = AIRLESS_ATMOS
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
icon = 'icons/turf/floors/ice_turf.dmi'
|
||||
icon_state = "unsmooth"
|
||||
initial_gas_mix = FROZEN_ATMOS
|
||||
temperature = 180
|
||||
initial_temperature = 180
|
||||
planetary_atmos = TRUE
|
||||
baseturfs = /turf/open/floor/plating/ice
|
||||
slowdown = 1
|
||||
@@ -201,10 +201,10 @@
|
||||
canSmoothWith = list(/turf/open/floor/plating/ice/smooth, /turf/open/floor/plating/ice, /turf/open/floor/plating/ice/colder)
|
||||
|
||||
/turf/open/floor/plating/ice/colder
|
||||
temperature = 140
|
||||
initial_temperature = 140
|
||||
|
||||
/turf/open/floor/plating/ice/temperate
|
||||
temperature = 255.37
|
||||
initial_temperature = 255.37
|
||||
|
||||
/turf/open/floor/plating/ice/break_tile()
|
||||
return
|
||||
@@ -221,7 +221,7 @@
|
||||
icon = 'icons/turf/snow.dmi'
|
||||
icon_state = "snowplating"
|
||||
initial_gas_mix = FROZEN_ATMOS
|
||||
temperature = 180
|
||||
initial_temperature = 180
|
||||
attachment_holes = FALSE
|
||||
planetary_atmos = TRUE
|
||||
footstep = FOOTSTEP_SAND
|
||||
@@ -240,10 +240,10 @@
|
||||
icon_state = "smooth"
|
||||
|
||||
/turf/open/floor/plating/snowed/colder
|
||||
temperature = 140
|
||||
initial_temperature = 140
|
||||
|
||||
/turf/open/floor/plating/snowed/temperatre
|
||||
temperature = 255.37
|
||||
initial_temperature = 255.37
|
||||
|
||||
/turf/open/floor/plating/snowed/smoothed/icemoon
|
||||
initial_gas_mix = ICEMOON_DEFAULT_ATMOS
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
density = TRUE
|
||||
blocks_air = 1
|
||||
layer = EDGED_TURF_LAYER
|
||||
temperature = TCMB
|
||||
initial_temperature = 293.15
|
||||
var/environment_type = "asteroid"
|
||||
var/turf/open/floor/plating/turf_type = /turf/open/floor/plating/asteroid/airless
|
||||
var/mineralType = null
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
name = "\proper space"
|
||||
intact = 0
|
||||
|
||||
temperature = TCMB
|
||||
initial_temperature = TCMB
|
||||
thermal_conductivity = 0
|
||||
heat_capacity = 700000
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
// This shouldn't be modified directly, use the helper procs.
|
||||
var/list/baseturfs = /turf/baseturf_bottom
|
||||
|
||||
var/temperature = T20C
|
||||
var/initial_temperature = T20C
|
||||
var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed
|
||||
var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to
|
||||
|
||||
@@ -95,6 +95,10 @@
|
||||
|
||||
/turf/proc/__auxtools_update_turf_temp_info()
|
||||
|
||||
/turf/return_temperature()
|
||||
|
||||
/turf/proc/set_temperature()
|
||||
|
||||
/turf/proc/Initalize_Atmos(times_fired)
|
||||
CALCULATE_ADJACENT_TURFS(src)
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
return air
|
||||
|
||||
/turf/temperature_expose()
|
||||
if(temperature > heat_capacity)
|
||||
if(return_temperature() > heat_capacity)
|
||||
to_be_destroyed = TRUE
|
||||
|
||||
/turf/open/proc/eg_reset_cooldowns()
|
||||
@@ -179,7 +179,10 @@
|
||||
|
||||
//////////////////////////SPACEWIND/////////////////////////////
|
||||
|
||||
/turf/open/proc/consider_pressure_difference(turf/T, difference)
|
||||
/turf/proc/consider_pressure_difference()
|
||||
return
|
||||
|
||||
/turf/open/consider_pressure_difference(turf/T, difference)
|
||||
if(difference > pressure_difference)
|
||||
pressure_direction = get_dir(src, T)
|
||||
pressure_difference = difference
|
||||
|
||||
@@ -243,8 +243,8 @@ GLOBAL_LIST_INIT(auxtools_atmos_initialized,FALSE)
|
||||
|
||||
//acounts for changes in temperature
|
||||
var/turf/model_parent = model.parent_type
|
||||
if(model.temperature != initial(model.temperature) || model.temperature != initial(model_parent.temperature))
|
||||
set_temperature(model.temperature)
|
||||
if(model.return_temperature() != initial(model.initial_temperature) || model.return_temperature() != initial(model_parent.initial_temperature))
|
||||
set_temperature(model.return_temperature())
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -156,7 +156,7 @@
|
||||
/turf/open/floor/plasteel/dark/snowdin
|
||||
initial_gas_mix = FROZEN_ATMOS
|
||||
planetary_atmos = 1
|
||||
temperature = 180
|
||||
initial_temperature = 180
|
||||
|
||||
/turf/open/lava/plasma
|
||||
name = "liquid plasma"
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
var/datum/effect_system/spark_spread/s = new
|
||||
s.set_up(3, 1, T)
|
||||
s.start()
|
||||
T.temperature = 5000
|
||||
T.set_temperature(5000)
|
||||
T.hotspot_expose(50000, 50000, TRUE, TRUE)
|
||||
|
||||
|
||||
|
||||
@@ -939,7 +939,7 @@
|
||||
loc_temp = obj_temp
|
||||
else if(isspaceturf(get_turf(src)))
|
||||
var/turf/heat_turf = get_turf(src)
|
||||
loc_temp = heat_turf.temperature
|
||||
loc_temp = heat_turf.return_temperature()
|
||||
return loc_temp
|
||||
|
||||
/mob/living/proc/get_standard_pixel_x_offset(lying = 0)
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
if(T.air)
|
||||
if(T.initial_gas_mix)
|
||||
T.air.parse_gas_string(T.initial_gas_mix)
|
||||
T.temperature = T.air.return_temperature()
|
||||
T.set_temperature(T.air.return_temperature())
|
||||
else
|
||||
T.air.copy_from_turf(T)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user