diff --git a/html/changelogs/DreamySkrell-multiz-exoplanet-generation.yml b/html/changelogs/DreamySkrell-multiz-exoplanet-generation.yml new file mode 100644 index 00000000000..738de3b5c6c --- /dev/null +++ b/html/changelogs/DreamySkrell-multiz-exoplanet-generation.yml @@ -0,0 +1,7 @@ + +author: DreamySkrell + +delete-after: True + +changes: + - rscadd: "Multi-z away site exoplanet generation." diff --git a/maps/_common/mapsystem/map.dm b/maps/_common/mapsystem/map.dm index 2d1f1d0b69b..f7cfca00e2b 100644 --- a/maps/_common/mapsystem/map.dm +++ b/maps/_common/mapsystem/map.dm @@ -315,15 +315,17 @@ log_admin("Finished selecting away sites ([english_list(selected)]) for [totalbudget - (points + shippoints)] cost of [totalbudget] budget.") - for (var/datum/map_template/template in selected) - if (template.load_new_z()) + for(var/datum/map_template/template in selected) + var/bounds = template.load_new_z() + if(bounds) // do away site exoplanet generation, if needed var/datum/map_template/ruin/away_site/away_site = template if(istype(away_site) && away_site.exoplanet_themes) - for(var/marker_turf_type in away_site.exoplanet_themes) - var/datum/exoplanet_theme/exoplanet_theme_type = away_site.exoplanet_themes[marker_turf_type] - var/datum/exoplanet_theme/exoplanet_theme = new exoplanet_theme_type() - exoplanet_theme.generate_map(world.maxz-1, 1, 1, 254, 254, marker_turf_type) + for(var/z_index = bounds[MAP_MINZ]; z_index <= bounds[MAP_MAXZ]; z_index++) + for(var/marker_turf_type in away_site.exoplanet_themes) + var/datum/exoplanet_theme/exoplanet_theme_type = away_site.exoplanet_themes[marker_turf_type] + var/datum/exoplanet_theme/exoplanet_theme = new exoplanet_theme_type() + exoplanet_theme.generate_map(z_index, 1, 1, 254, 254, marker_turf_type) // fin log_admin("Loaded away site [template]!") else diff --git a/maps/away_sites_testing/away_sites_testing.dm b/maps/away_sites_testing/away_sites_testing.dm index ef1922a570d..95763ca5abe 100644 --- a/maps/away_sites_testing/away_sites_testing.dm +++ b/maps/away_sites_testing/away_sites_testing.dm @@ -46,14 +46,15 @@ //Spawn the away sites selected in the previous step for(var/datum/map_template/ruin/away_site/away_site in away_sites_to_spawn) // load the site - away_site.load_new_z() + var/bounds = away_site.load_new_z() // do away site exoplanet generation, if needed if(away_site.exoplanet_themes) - for(var/marker_turf_type in away_site.exoplanet_themes) - var/datum/exoplanet_theme/exoplanet_theme_type = away_site.exoplanet_themes[marker_turf_type] - var/datum/exoplanet_theme/exoplanet_theme = new exoplanet_theme_type() - exoplanet_theme.generate_map(world.maxz-1, 1, 1, 254, 254, marker_turf_type) + for(var/z_index = bounds[MAP_MINZ]; z_index <= bounds[MAP_MAXZ]; z_index++) + for(var/marker_turf_type in away_site.exoplanet_themes) + var/datum/exoplanet_theme/exoplanet_theme_type = away_site.exoplanet_themes[marker_turf_type] + var/datum/exoplanet_theme/exoplanet_theme = new exoplanet_theme_type() + exoplanet_theme.generate_map(z_index, 1, 1, 254, 254, marker_turf_type) // fin testing("[ascii_green]LOADING AWAY SITE:[ascii_reset] Spawning [away_site] on Z [english_list(GetConnectedZlevels(world.maxz))]") @@ -64,14 +65,15 @@ var/datum/map_template/ruin/away_site/away_site = SSmapping.away_sites_templates[map] // load the site - away_site.load_new_z() + var/bounds = away_site.load_new_z() // do away site exoplanet generation, if needed if(away_site.exoplanet_themes) - for(var/marker_turf_type in away_site.exoplanet_themes) - var/datum/exoplanet_theme/exoplanet_theme_type = away_site.exoplanet_themes[marker_turf_type] - var/datum/exoplanet_theme/exoplanet_theme = new exoplanet_theme_type() - exoplanet_theme.generate_map(world.maxz-1, 1, 1, 254, 254, marker_turf_type) + for(var/z_index = bounds[MAP_MINZ]; z_index <= bounds[MAP_MAXZ]; z_index++) + for(var/marker_turf_type in away_site.exoplanet_themes) + var/datum/exoplanet_theme/exoplanet_theme_type = away_site.exoplanet_themes[marker_turf_type] + var/datum/exoplanet_theme/exoplanet_theme = new exoplanet_theme_type() + exoplanet_theme.generate_map(z_index, 1, 1, 254, 254, marker_turf_type) // fin testing("[ascii_green]LOADING AWAY SITE:[ascii_reset] Spawning [away_site] on Z [english_list(GetConnectedZlevels(world.maxz))]")