Adds developer-level access to ZAS settings.

Fixes bug which would always let heat move through doors.
This commit is contained in:
SkyMarshal
2014-01-10 16:45:59 -07:00
parent ccaef844bf
commit 9cae391e0e
4 changed files with 31 additions and 23 deletions

View File

@@ -134,6 +134,7 @@ zone/proc/DebugDisplay(client/client)
client/proc/TestZASRebuild() client/proc/TestZASRebuild()
set category = "Debug"
// var/turf/turf = get_turf(mob) // var/turf/turf = get_turf(mob)
var/zone/current_zone = mob.loc:zone var/zone/current_zone = mob.loc:zone
if(!current_zone) if(!current_zone)
@@ -155,7 +156,7 @@ client/proc/TestZASRebuild()
for(var/direction in cardinal) for(var/direction in cardinal)
var/turf/simulated/adjacent = get_step(current, direction) var/turf/simulated/adjacent = get_step(current, direction)
if(!current.ZAirPass(adjacent)) if(!current.ZCanPass(adjacent))
continue continue
if(turfs.Find(adjacent)) if(turfs.Find(adjacent))
current_adjacents += adjacent current_adjacents += adjacent
@@ -210,4 +211,9 @@ client/proc/TestZASRebuild()
for(var/turf/current in turfs) for(var/turf/current in turfs)
current.overlays -= overlays current.overlays -= overlays
return final_arrangement return final_arrangement
/client/proc/ZASSettings()
set category = "Debug"
vsc.SetDefault(mob)

View File

@@ -65,9 +65,9 @@ var/global/vs_control/vsc = new
var/airflow_mob_slowdown_NAME = "Airflow Slowdown" var/airflow_mob_slowdown_NAME = "Airflow Slowdown"
var/airflow_mob_slowdown_DESC = "Time in tenths of a second to add as a delay to each movement by a mob if they are fighting the pull of the airflow." var/airflow_mob_slowdown_DESC = "Time in tenths of a second to add as a delay to each movement by a mob if they are fighting the pull of the airflow."
var/connection_insulation = 0 var/connection_insulation = 1
var/connection_insulation_NAME = "Connections - Insulation" var/connection_insulation_NAME = "Connections - Insulation"
var/connection_insulation_DESC = "Boolean, should zones conduct heat through doors?" var/connection_insulation_DESC = "Boolean, should doors forbid heat transfer?"
var/connection_temperature_delta = 10 var/connection_temperature_delta = 10
var/connection_temperature_delta_NAME = "Connections - Temperature Difference" var/connection_temperature_delta_NAME = "Connections - Temperature Difference"
@@ -288,7 +288,7 @@ var/global/vs_control/vsc = new
airflow_speed_decay = 1 airflow_speed_decay = 1
airflow_delay = 20 airflow_delay = 20
airflow_mob_slowdown = 3 airflow_mob_slowdown = 3
connection_insulation = 1 connection_insulation = 0
world << "\blue <b>[key_name(user)] changed the global plasma/ZAS settings to \"[def]\"</b>" world << "\blue <b>[key_name(user)] changed the global plasma/ZAS settings to \"[def]\"</b>"

View File

@@ -361,25 +361,26 @@ var/list/CounterDoorDirections = list(SOUTH,EAST) //Which directions doors turfs
Z.interactions_with_neighbors++ Z.interactions_with_neighbors++
interactions_with_neighbors++ interactions_with_neighbors++
for(var/zone/Z in closed_connection_zones) if(!vsc.connection_insulation)
//If that zone has already processed, skip it. for(var/zone/Z in closed_connection_zones)
if(Z.last_update > last_update || !Z.air) //If that zone has already processed, skip it.
continue if(Z.last_update > last_update || !Z.air)
var/handle_temperature = abs(air.temperature - Z.air.temperature) > vsc.connection_temperature_delta
if(Z.status == ZONE_SLEEPING)
if (handle_temperature)
Z.SetStatus(ZONE_ACTIVE)
else
continue continue
if(air && Z.air) var/handle_temperature = abs(air.temperature - Z.air.temperature) > vsc.connection_temperature_delta
if( handle_temperature )
ShareHeat(air, Z.air, closed_connection_zones[Z])
Z.interactions_with_neighbors++ if(Z.status == ZONE_SLEEPING)
interactions_with_neighbors++ if (handle_temperature)
Z.SetStatus(ZONE_ACTIVE)
else
continue
if(air && Z.air)
if( handle_temperature )
ShareHeat(air, Z.air, closed_connection_zones[Z])
Z.interactions_with_neighbors++
interactions_with_neighbors++
if(!interactions_with_neighbors && !interactions_with_unsim) if(!interactions_with_neighbors && !interactions_with_unsim)
SetStatus(ZONE_SLEEPING) SetStatus(ZONE_SLEEPING)
@@ -655,7 +656,7 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output)
proc/ShareHeat(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles) proc/ShareHeat(datum/gas_mixture/A, datum/gas_mixture/B, connecting_tiles)
//This implements a simplistic version of the Stefan-Boltzmann law. //This implements a simplistic version of the Stefan-Boltzmann law.
var/energy_delta = ((A.temperature - B.temperature) ** 4) * 5.6704e-8 * connecting_tiles var/energy_delta = ((A.temperature - B.temperature) ** 4) * 5.6704e-8 * connecting_tiles * 2.5
var/maximum_energy_delta = max(0, min(A.temperature * A.heat_capacity() * A.group_multiplier, B.temperature * B.heat_capacity() * B.group_multiplier)) var/maximum_energy_delta = max(0, min(A.temperature * A.heat_capacity() * A.group_multiplier, B.temperature * B.heat_capacity() * B.group_multiplier))
if(maximum_energy_delta > abs(energy_delta)) if(maximum_energy_delta > abs(energy_delta))
if(energy_delta < 0) if(energy_delta < 0)

View File

@@ -72,7 +72,7 @@ var/list/admin_verbs_admin = list(
/client/proc/response_team, // Response Teams admin verb /client/proc/response_team, // Response Teams admin verb
/client/proc/toggle_antagHUD_use, /client/proc/toggle_antagHUD_use,
/client/proc/toggle_antagHUD_restrictions, /client/proc/toggle_antagHUD_restrictions,
/client/proc/allow_character_respawn /* Allows a ghost to respawn */ /client/proc/allow_character_respawn /* Allows a ghost to respawn */
) )
var/list/admin_verbs_ban = list( var/list/admin_verbs_ban = list(
/client/proc/unban_panel, /client/proc/unban_panel,
@@ -128,6 +128,7 @@ var/list/admin_verbs_debug = list(
/client/proc/cmd_admin_list_open_jobs, /client/proc/cmd_admin_list_open_jobs,
/client/proc/Debug2, /client/proc/Debug2,
/client/proc/kill_air, /client/proc/kill_air,
/client/proc/ZASSettings,
/client/proc/cmd_debug_make_powernets, /client/proc/cmd_debug_make_powernets,
/client/proc/kill_airgroup, /client/proc/kill_airgroup,
/client/proc/debug_controller, /client/proc/debug_controller,