Away Site Exoplanet Generation Improvements + Crystal Planet and Cryo Outpost Updates (#19735)

changes:
- rscadd: "Crystal Planet Outpost Update. Adds submaps and exoplanet
generation."
  - rscadd: "Cryo Outpost Update. Updates exoplanet generation."
- rscadd: "Away Site Exoplanet Generation Improvements. Allows setting
atmos for all exoplanet turfs on the map."
- rscadd: "Away Site Exoplanet Generation Improvements. Exoplanet turfs
can have light if they are outside."
- rscadd: "Away Site Exoplanet Generation Improvements. Base Turf fixes,
explosions do not turn turfs into space, and destroying or mining turfs
is generally better handled."

---------

Signed-off-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com>
Co-authored-by: DreamySkrell <>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
This commit is contained in:
DreamySkrell
2024-12-18 20:44:41 +00:00
committed by GitHub
co-authored by DreamySkrell <> Fluffy
parent ed2aa69444
commit e545213323
25 changed files with 91269 additions and 70501 deletions
+1
View File
@@ -1,3 +1,4 @@
//How far from the edge of overmap zlevel could randomly placed objects spawn
#define OVERMAP_EDGE 2
@@ -17,3 +17,6 @@
/mob/living/simple_animal/cosmozoan = 1
)
)
/singleton/biome/crystal/mountain
turf_type = /turf/simulated/mineral/crystal
@@ -21,6 +21,7 @@
if(SSatlas.current_map.use_overmap)
// if exoplanet
var/datum/site = GLOB.map_sectors["[z]"]
var/datum/template = GLOB.map_templates["[z]"]
if(istype(site, /obj/effect/overmap/visitable/sector/exoplanet))
var/obj/effect/overmap/visitable/sector/exoplanet/exoplanet = site
if(exoplanet.atmosphere)
@@ -34,15 +35,13 @@
if(exoplanet.planetary_area && istype(loc, world.area))
ChangeArea(src, exoplanet.planetary_area)
// if away site
else if(istype(site, /datum/map_template/ruin/away_site))
var/datum/map_template/ruin/away_site/away_site = site
else if(istype(template, /datum/map_template/ruin/away_site))
var/datum/map_template/ruin/away_site/away_site = template
if(away_site.exoplanet_atmosphere)
initial_gas = away_site.exoplanet_atmosphere.gas.Copy()
temperature = away_site.exoplanet_atmosphere.temperature
else
initial_gas = list()
temperature = T0C
set_light(MINIMUM_USEFUL_LIGHT_RANGE, away_site.lightlevel, away_site.lightcolor)
if(away_site.exoplanet_lightlevel && is_outside())
set_light(MINIMUM_USEFUL_LIGHT_RANGE, away_site.exoplanet_lightlevel, away_site.exoplanet_lightcolor)
// if not on an exoplanet, instead just keep the default or mapped in atmos
..()
@@ -5,3 +5,9 @@
footstep_sound = /singleton/sound_category/plating_footstep
has_resources = FALSE
does_footprint = FALSE
/turf/simulated/floor/exoplanet/plating/asteroid
icon_state = "asteroidplating"
/turf/simulated/floor/exoplanet/plating/asteroid/crystal
color = "#95c2d9"
@@ -332,6 +332,7 @@
/datum/exoplanet_theme/proc/on_turf_generation(turf/T, area/use_area)
if(use_area && istype(T.loc, world.area))
ChangeArea(T, use_area) // Switch our generated turfs from world.area (space) to our chosen exoplanet area
if(surface_color && is_type_in_list(T, surface_turfs))
T.color = surface_color
@@ -1,11 +1,15 @@
/datum/exoplanet_theme/crystal
name = "Crystalline"
surface_turfs = list(
/turf/simulated/mineral/planet
/turf/simulated/mineral/crystal
)
surface_color = "#6fb1b5"
perlin_zoom = 21
mountain_threshold = 0.5
mountain_biome = /singleton/biome/crystal/mountain
heat_levels = list(
BIOME_EQUATOR = 1.0
@@ -20,3 +24,6 @@
BIOME_ARID = /singleton/biome/crystal
)
)
/datum/exoplanet_theme/crystal/mountain
mountain_threshold = 0.0