From 95b2c63b85b221b37d0d80ee7890b3e73c30a59d Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Thu, 11 Apr 2019 09:55:06 +1000 Subject: [PATCH] Allows restriction of Z-levels for xenoarch spawning --- code/__defines/map_vr.dm | 1 + code/controllers/subsystems/xenoarch.dm | 2 +- maps/tether/tether_defines.dm | 20 ++++++++++---------- maps/~map_system/maps.dm | 1 + maps/~map_system/maps_vr.dm | 2 ++ vorestation.dme | 2 ++ 6 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 code/__defines/map_vr.dm create mode 100644 maps/~map_system/maps_vr.dm diff --git a/code/__defines/map_vr.dm b/code/__defines/map_vr.dm new file mode 100644 index 00000000000..3847dc29f9a --- /dev/null +++ b/code/__defines/map_vr.dm @@ -0,0 +1 @@ +#define MAP_LEVEL_XENOARCH_EXEMPT 0x080 // Z-levels exempt from xenoarch digsite generation. \ No newline at end of file diff --git a/code/controllers/subsystems/xenoarch.dm b/code/controllers/subsystems/xenoarch.dm index 7f3e292c1a7..63a6e95a8da 100644 --- a/code/controllers/subsystems/xenoarch.dm +++ b/code/controllers/subsystems/xenoarch.dm @@ -31,7 +31,7 @@ SUBSYSTEM_DEF(xenoarch) /datum/controller/subsystem/xenoarch/proc/SetupXenoarch() for(var/turf/simulated/mineral/M in turfs) - if(!M.density) + if(!M.density || M.z in using_map.xenoarch_exempt_levels) //VOREStation Edit: exclude some Z-levels from xenoarch spawns continue if(isnull(M.geologic_data)) diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm index 8dd5d7cf4ad..a23f95a1dfe 100644 --- a/maps/tether/tether_defines.dm +++ b/maps/tether/tether_defines.dm @@ -175,14 +175,14 @@ // We have a bunch of stuff common to the station z levels /datum/map_z_level/tether/station - flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES + flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_XENOARCH_EXEMPT holomap_legend_x = 220 holomap_legend_y = 160 /datum/map_z_level/tether/station/surface_low z = Z_LEVEL_SURFACE_LOW name = "Surface 1" - flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_SEALED + flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_SEALED|MAP_LEVEL_XENOARCH_EXEMPT base_turf = /turf/simulated/floor/outdoors/rocks/virgo3b holomap_offset_x = TETHER_HOLOMAP_MARGIN_X holomap_offset_y = TETHER_HOLOMAP_MARGIN_Y + TETHER_MAP_SIZE*0 @@ -190,7 +190,7 @@ /datum/map_z_level/tether/station/surface_mid z = Z_LEVEL_SURFACE_MID name = "Surface 2" - flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_SEALED + flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_SEALED|MAP_LEVEL_XENOARCH_EXEMPT base_turf = /turf/simulated/open holomap_offset_x = TETHER_HOLOMAP_MARGIN_X holomap_offset_y = TETHER_HOLOMAP_MARGIN_Y + TETHER_MAP_SIZE*1 @@ -198,7 +198,7 @@ /datum/map_z_level/tether/station/surface_high z = Z_LEVEL_SURFACE_HIGH name = "Surface 3" - flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_SEALED + flags = MAP_LEVEL_STATION|MAP_LEVEL_CONTACT|MAP_LEVEL_PLAYER|MAP_LEVEL_CONSOLES|MAP_LEVEL_SEALED|MAP_LEVEL_XENOARCH_EXEMPT base_turf = /turf/simulated/open holomap_offset_x = TETHER_HOLOMAP_MARGIN_X holomap_offset_y = TETHER_HOLOMAP_MARGIN_Y + TETHER_MAP_SIZE*2 @@ -206,14 +206,14 @@ /datum/map_z_level/tether/transit z = Z_LEVEL_TRANSIT name = "Transit" - flags = MAP_LEVEL_SEALED|MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT + flags = MAP_LEVEL_SEALED|MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_XENOARCH_EXEMPT /datum/map_z_level/tether/station/space_low z = Z_LEVEL_SPACE_LOW name = "Asteroid 1" base_turf = /turf/space transit_chance = 33 - holomap_offset_x = HOLOMAP_ICON_SIZE - TETHER_HOLOMAP_MARGIN_X - TETHER_MAP_SIZE + holomap_offset_x = HOLOMAP_ICON_SIZE - TETHER_HOLOMAP_MARGIN_X - TETHER_MAP_SIZE|MAP_LEVEL_XENOARCH_EXEMPT holomap_offset_y = TETHER_HOLOMAP_MARGIN_Y + TETHER_MAP_SIZE*0 /datum/map_z_level/tether/station/space_mid @@ -221,7 +221,7 @@ name = "Asteroid 2" base_turf = /turf/simulated/open transit_chance = 33 - holomap_offset_x = HOLOMAP_ICON_SIZE - TETHER_HOLOMAP_MARGIN_X - TETHER_MAP_SIZE + holomap_offset_x = HOLOMAP_ICON_SIZE - TETHER_HOLOMAP_MARGIN_X - TETHER_MAP_SIZE|MAP_LEVEL_XENOARCH_EXEMPT holomap_offset_y = TETHER_HOLOMAP_MARGIN_Y + TETHER_MAP_SIZE*1 /datum/map_z_level/tether/station/space_high @@ -229,7 +229,7 @@ name = "Asteroid 3" base_turf = /turf/simulated/open transit_chance = 33 - holomap_offset_x = HOLOMAP_ICON_SIZE - TETHER_HOLOMAP_MARGIN_X - TETHER_MAP_SIZE + holomap_offset_x = HOLOMAP_ICON_SIZE - TETHER_HOLOMAP_MARGIN_X - TETHER_MAP_SIZE|MAP_LEVEL_XENOARCH_EXEMPT holomap_offset_y = TETHER_HOLOMAP_MARGIN_Y + TETHER_MAP_SIZE*2 /datum/map_z_level/tether/mine @@ -247,12 +247,12 @@ /datum/map_z_level/tether/colony z = Z_LEVEL_CENTCOM name = "Colony" - flags = MAP_LEVEL_ADMIN|MAP_LEVEL_CONTACT + flags = MAP_LEVEL_ADMIN|MAP_LEVEL_CONTACT|MAP_LEVEL_XENOARCH_EXEMPT /datum/map_z_level/tether/misc z = Z_LEVEL_MISC name = "Misc" - flags = MAP_LEVEL_ADMIN + flags = MAP_LEVEL_ADMIN|MAP_LEVEL_XENOARCH_EXEMPT /* /datum/map_z_level/tether/wilderness diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm index 4ba9d3d03b4..c0a364c5ca9 100644 --- a/maps/~map_system/maps.dm +++ b/maps/~map_system/maps.dm @@ -185,6 +185,7 @@ var/list/all_maps = list() if(flags & MAP_LEVEL_CONTACT) map.contact_levels += z if(flags & MAP_LEVEL_PLAYER) map.player_levels += z if(flags & MAP_LEVEL_SEALED) map.sealed_levels += z + if(flags & MAP_LEVEL_XENOARCH_EXEMPT) map.xenoarch_exempt_levels += z //VOREStation Edit : excluse some z-levels from xenoarch spawns if(flags & MAP_LEVEL_EMPTY) if(!map.empty_levels) map.empty_levels = list() map.empty_levels += z diff --git a/maps/~map_system/maps_vr.dm b/maps/~map_system/maps_vr.dm new file mode 100644 index 00000000000..278db217318 --- /dev/null +++ b/maps/~map_system/maps_vr.dm @@ -0,0 +1,2 @@ +/datum/map + var/list/xenoarch_exempt_levels = list() //Z-levels exempt from xenoarch finds and digsites spawning. \ No newline at end of file diff --git a/vorestation.dme b/vorestation.dme index 929b621c36f..8d36bc375b0 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -50,6 +50,7 @@ #include "code\__defines\lighting.dm" #include "code\__defines\machinery.dm" #include "code\__defines\map.dm" +#include "code\__defines\map_vr.dm" #include "code\__defines\math.dm" #include "code\__defines\math_physics.dm" #include "code\__defines\MC.dm" @@ -3109,4 +3110,5 @@ #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" #include "maps\tether\tether.dm" #include "maps\~map_system\maps.dm" +#include "maps\~map_system\maps_vr.dm" // END_INCLUDE