diff --git a/code/controllers/configuration/sections/ruin_configuration.dm b/code/controllers/configuration/sections/ruin_configuration.dm index 2adc5570867..6dbaddb1fa3 100644 --- a/code/controllers/configuration/sections/ruin_configuration.dm +++ b/code/controllers/configuration/sections/ruin_configuration.dm @@ -1,5 +1,7 @@ /// Config holder for all things regarding space ruins and lavaland ruins /datum/configuration_section/ruin_configuration + /// Whether to load the lavaland Z-level + var/enable_lavaland = TRUE /// Enable or disable space ruins var/enable_space_ruins = TRUE /// Minimum number of extra zlevels to fill with ruins @@ -15,6 +17,7 @@ /datum/configuration_section/ruin_configuration/load_data(list/data) // Use the load wrappers here. That way the default isnt made 'null' if you comment out the config line + CONFIG_LOAD_BOOL(enable_lavaland, data["enable_lavaland"]) CONFIG_LOAD_BOOL(enable_space_ruins, data["enable_space_ruins"]) CONFIG_LOAD_NUM(extra_levels_min, data["minimum_zlevels"]) CONFIG_LOAD_NUM(extra_levels_max, data["maximum_zlevels"]) diff --git a/code/controllers/subsystem/mapping.dm b/code/controllers/subsystem/mapping.dm index 66cc97e5a0e..43d4920bf49 100644 --- a/code/controllers/subsystem/mapping.dm +++ b/code/controllers/subsystem/mapping.dm @@ -60,12 +60,15 @@ SUBSYSTEM_DEF(mapping) // Setup the Z-level linkage GLOB.space_manager.do_transition_setup() - // Spawn Lavaland ruins and rivers. - log_startup_progress("Populating lavaland...") - var/lavaland_setup_timer = start_watch() - seedRuins(list(level_name_to_num(MINING)), GLOB.configuration.ruins.lavaland_ruin_budget, /area/lavaland/surface/outdoors/unexplored, GLOB.lava_ruins_templates) - spawn_rivers(level_name_to_num(MINING)) - log_startup_progress("Successfully populated lavaland in [stop_watch(lavaland_setup_timer)]s.") + if(GLOB.configuration.ruins.enable_lavaland) + // Spawn Lavaland ruins and rivers. + log_startup_progress("Populating lavaland...") + var/lavaland_setup_timer = start_watch() + seedRuins(list(level_name_to_num(MINING)), GLOB.configuration.ruins.lavaland_ruin_budget, /area/lavaland/surface/outdoors/unexplored, GLOB.lava_ruins_templates) + spawn_rivers(level_name_to_num(MINING)) + log_startup_progress("Successfully populated lavaland in [stop_watch(lavaland_setup_timer)]s.") + else + log_startup_progress("Skipping lavaland ruins...") // Now we make a list of areas for teleport locs teleportlocs = list() @@ -154,6 +157,9 @@ SUBSYSTEM_DEF(mapping) // Loads in lavaland /datum/controller/subsystem/mapping/proc/loadLavaland() + if(!GLOB.configuration.ruins.enable_lavaland) + log_startup_progress("Skipping Lavaland...") + return var/watch = start_watch() log_startup_progress("Loading Lavaland...") var/lavaland_z_level = GLOB.space_manager.add_new_zlevel(MINING, linkage = SELFLOOPING, traits = list(ORE_LEVEL, REACHABLE, STATION_CONTACT, HAS_WEATHER, AI_OK)) diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index 968d9f6a89d..e1d3507a88c 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -27,7 +27,7 @@ GLOB.navigation_computers += src if(access_station) jumpto_ports += list("nav_z[level_name_to_num(MAIN_STATION)]" = 1) - if(access_mining) + if(access_mining && GLOB.configuration.ruins.enable_lavaland) jumpto_ports += list("nav_z[level_name_to_num(MINING)]" = 1) /obj/machinery/computer/camera_advanced/shuttle_docker/Destroy() diff --git a/code/modules/space_management/level_traits.dm b/code/modules/space_management/level_traits.dm index c11a1e6e47c..eb75c3f0e9c 100644 --- a/code/modules/space_management/level_traits.dm +++ b/code/modules/space_management/level_traits.dm @@ -61,6 +61,8 @@ GLOBAL_LIST_INIT(default_map_traits, list(CC_TRANSITION_CONFIG)) /proc/level_name_to_num(name) var/datum/space_level/S = GLOB.space_manager.get_zlev_by_name(name) + if(!S) + CRASH("Unknown z-level name: [name]") return S.zpos /** diff --git a/config/example/config.toml b/config/example/config.toml index 7bf01fa0f53..e2d1c5fb353 100644 --- a/config/example/config.toml +++ b/config/example/config.toml @@ -607,6 +607,8 @@ redis_connstring = "redis://127.0.0.1/" [ruin_configuration] # This section contains configuration for all space ruins and lava ruins +# Whether to load the lavaland Z-level. +enable_lavaland = true # Globally enable and disable placing of space ruins. Lava ruins will still place. enable_space_ruins = false # Minimum number of extra zlevels to generate and fill with ruins