mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
rename some mapping-related files (#29422)
This commit is contained in:
@@ -1,165 +0,0 @@
|
||||
/// Approximate lower bound of the walkable land area on Lavaland, north of the southern lava border.
|
||||
#define LAVALAND_MIN_CAVE_Y 10
|
||||
/// Approximate upper bound of the walkable land area on Lavaland, south of the Legion entrance.
|
||||
#define LAVALAND_MAX_CAVE_Y 222
|
||||
|
||||
/// Effective probability modifier for spawning flora and fauna in oases.
|
||||
#define OASIS_SPAWNER_PROB_MODIFIER 43
|
||||
|
||||
GLOBAL_LIST_INIT(caves_default_flora_spawns, list(
|
||||
/obj/structure/flora/ash/cacti = 1,
|
||||
/obj/structure/flora/ash/cap_shroom = 2,
|
||||
/obj/structure/flora/ash/leaf_shroom = 2,
|
||||
/obj/structure/flora/ash/rock/style_random = 1,
|
||||
/obj/structure/flora/ash/stem_shroom = 2,
|
||||
/obj/structure/flora/ash/tall_shroom = 2,
|
||||
))
|
||||
|
||||
/proc/lavaland_caves_spawn_flora(turf/T)
|
||||
var/flora_spawn = pickweight(GLOB.caves_default_flora_spawns)
|
||||
for(var/obj/structure/flora/ash/F in range(4, T)) //Allows for growing patches, but not ridiculous stacks of flora
|
||||
if(!istype(F, flora_spawn))
|
||||
return
|
||||
new flora_spawn(T)
|
||||
|
||||
/datum/caves_theme
|
||||
var/name = "Not Specified"
|
||||
|
||||
var/seed
|
||||
var/perlin_accuracy = 5
|
||||
var/perlin_stamp_size = 10
|
||||
var/perlin_lower_range = 0
|
||||
var/perlin_upper_range = 0.3
|
||||
|
||||
var/fauna_scan_range = 12
|
||||
var/megafauna_scan_range = 16
|
||||
|
||||
/datum/caves_theme/New()
|
||||
seed = rand(1, 999999)
|
||||
|
||||
/datum/caves_theme/proc/setup()
|
||||
var/result = rustlibs_dbp_generate("[seed]", "[perlin_accuracy]", "[perlin_stamp_size]", "[world.maxx]", "[perlin_lower_range]", "[perlin_upper_range]")
|
||||
for(var/zlvl in levels_by_trait(ORE_LEVEL))
|
||||
for(var/turf/T in block(1, 1, zlvl, world.maxx, world.maxy, zlvl))
|
||||
if(!istype(get_area(T), /area/lavaland/surface/outdoors/unexplored))
|
||||
continue
|
||||
if(!istype(T, /turf/simulated/mineral))
|
||||
continue
|
||||
var/c = result[world.maxx * (T.y - 1) + T.x]
|
||||
if(c == "1")
|
||||
T.ChangeTurf(/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface)
|
||||
on_change(T)
|
||||
|
||||
CHECK_TICK
|
||||
|
||||
/datum/caves_theme/proc/on_change(turf/T)
|
||||
if(prob(2))
|
||||
lavaland_caves_spawn_flora(T)
|
||||
else if(prob(1))
|
||||
new /obj/effect/spawner/random/lavaland_fauna(T)
|
||||
|
||||
/datum/caves_theme/proc/safe_replace(turf/T)
|
||||
if(T.flags & NO_LAVA_GEN)
|
||||
return FALSE
|
||||
if(istype(T, /turf/template_noop))
|
||||
return TRUE
|
||||
if(!istype(get_area(T), /area/lavaland/surface/outdoors/unexplored))
|
||||
return FALSE
|
||||
if(istype(T, /turf/simulated/floor/chasm))
|
||||
return FALSE
|
||||
if(istype(T, /turf/simulated/floor/lava/lava_land_surface))
|
||||
return FALSE
|
||||
if(istype(T, /turf/simulated/floor/lava/mapping_lava))
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/datum/caves_theme/classic
|
||||
name = "Classic Caves"
|
||||
|
||||
/datum/caves_theme/burrows
|
||||
name = "Blocked Burrows"
|
||||
perlin_accuracy = 90
|
||||
perlin_stamp_size = 7
|
||||
perlin_lower_range = 0
|
||||
perlin_upper_range = 0.3
|
||||
|
||||
/datum/caves_theme/burrows/on_change(turf/T)
|
||||
if(prob(7))
|
||||
new /obj/structure/flora/ash/rock/style_random(T)
|
||||
else if(prob(5))
|
||||
lavaland_caves_spawn_flora(T)
|
||||
else if(prob(1))
|
||||
new /obj/effect/spawner/random/lavaland_fauna(T)
|
||||
|
||||
/datum/caves_theme/deeprock/New()
|
||||
. = ..()
|
||||
fauna_scan_range = rand(4, 7)
|
||||
megafauna_scan_range = rand(8, 16)
|
||||
|
||||
/datum/caves_theme/deeprock/proc/maybe_make_room(turf/T)
|
||||
if(rand(1, 150) != 1)
|
||||
return
|
||||
|
||||
for(var/turf/oasis_centroid in oasis_centroids)
|
||||
if(get_dist(T, oasis_centroid) < oasis_padding)
|
||||
return
|
||||
|
||||
oasis_centroids |= T
|
||||
var/tempradius = rand(10, 15)
|
||||
var/probmodifer = OASIS_SPAWNER_PROB_MODIFIER * tempradius
|
||||
var/list/oasis_turfs = list()
|
||||
for(var/turf/NT in circlerangeturfs(T, tempradius))
|
||||
var/distance = (max(get_dist(T, NT), 1)) //Get dist throws -1 if same turf
|
||||
if(safe_replace(NT) && prob(min(probmodifer / distance, 100)))
|
||||
var/turf/changed = NT.ChangeTurf(/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface)
|
||||
if(prob(5))
|
||||
new /obj/effect/spawner/random/lavaland_fauna(changed)
|
||||
else if(prob(10))
|
||||
lavaland_caves_spawn_flora(changed)
|
||||
oasis_turfs |= changed
|
||||
|
||||
if(prob(50))
|
||||
tempradius = round(tempradius / 3)
|
||||
var/oasis_laketype = pickweight(lake_weights)
|
||||
if(oasis_laketype == /turf/simulated/floor/plating/asteroid)
|
||||
new /obj/effect/spawner/oasisrock(T, tempradius)
|
||||
for(var/turf/oasis in circlerangeturfs(T, tempradius))
|
||||
if(safe_replace(oasis))
|
||||
oasis.ChangeTurf(oasis_laketype)
|
||||
oasis_turfs -= oasis
|
||||
|
||||
// Move tendrils out of the oasis
|
||||
for(var/obj/effect/spawner/random/pool/tendril_spawner/O in circlerange(T, tempradius))
|
||||
O.forceMove(pick_n_take(oasis_turfs))
|
||||
|
||||
return T
|
||||
|
||||
/datum/caves_theme/deeprock
|
||||
name = "Deadly Deeprock"
|
||||
perlin_stamp_size = 12
|
||||
perlin_lower_range = 0
|
||||
perlin_upper_range = 0.2
|
||||
var/oasis_padding = 50
|
||||
var/list/oasis_centroids = list()
|
||||
var/lake_weights = list(
|
||||
/turf/simulated/floor/lava/lava_land_surface = 4,
|
||||
/turf/simulated/floor/lava/lava_land_surface/plasma = 4,
|
||||
/turf/simulated/floor/chasm/straight_down/lava_land_surface = 4,
|
||||
/turf/simulated/floor/lava/mapping_lava = 6,
|
||||
/turf/simulated/floor/beach/away/water/lavaland_air = 1,
|
||||
/turf/simulated/floor/plating/asteroid = 1
|
||||
)
|
||||
|
||||
/datum/caves_theme/deeprock/on_change(turf/T)
|
||||
maybe_make_room(T)
|
||||
if(prob(3))
|
||||
lavaland_caves_spawn_flora(T)
|
||||
else if(prob(2))
|
||||
new /obj/effect/spawner/random/lavaland_fauna(T)
|
||||
|
||||
|
||||
#undef OASIS_SPAWNER_PROB_MODIFIER
|
||||
|
||||
#undef LAVALAND_MIN_CAVE_Y
|
||||
#undef LAVALAND_MAX_CAVE_Y
|
||||
@@ -1,123 +0,0 @@
|
||||
/datum/lavaland_theme
|
||||
/// Name of lavaland theme
|
||||
var/name = "Not Specified"
|
||||
/// Typepath of turf the `/turf/simulated/floor/lava/mapping_lava` will be changed to on Late Initialization
|
||||
var/turf/simulated/floor/primary_turf_type
|
||||
/// Icon state of planet present on background of station Z-level
|
||||
var/planet_icon_state
|
||||
var/list/built_bridges
|
||||
/// Icon for glass floors
|
||||
var/primary_turf_type_icon
|
||||
|
||||
/datum/lavaland_theme/New()
|
||||
if(!primary_turf_type)
|
||||
stack_trace("Turf type is `null` in `[type]` lavaland theme")
|
||||
else if(!ispath(primary_turf_type))
|
||||
stack_trace("Wrong turf type `[primary_turf_type.type]` in `[type]` lavaland theme")
|
||||
|
||||
built_bridges = list()
|
||||
|
||||
/**
|
||||
* This proc should do all theme specific thing.
|
||||
* Now it only generates rivers, but it can do all stuff you desire.
|
||||
*/
|
||||
/datum/lavaland_theme/proc/setup()
|
||||
SHOULD_CALL_PARENT(TRUE)
|
||||
setup_multisector()
|
||||
|
||||
/datum/lavaland_theme/proc/setup_multisector()
|
||||
var/bridge_diameter = 14
|
||||
var/interval = 20
|
||||
for(var/zlvl in levels_by_trait(ORE_LEVEL))
|
||||
var/datum/space_level/level = GLOB.space_manager.get_zlev(zlvl)
|
||||
if(!built_bridges["[zlvl]"])
|
||||
built_bridges["[zlvl]"] = list()
|
||||
|
||||
for(var/d in level.neighbors)
|
||||
if(d == Z_LEVEL_SOUTH)
|
||||
var/datum/space_level/connected = level.get_connection(Z_LEVEL_SOUTH)
|
||||
if(!built_bridges["[connected.zpos]"])
|
||||
built_bridges["[connected.zpos]"] = list()
|
||||
var/left_margin = TRANSITIONEDGE + 5
|
||||
while(left_margin < world.maxx - TRANSITIONEDGE)
|
||||
if(prob(50))
|
||||
var/left_edge = rand(left_margin, left_margin + bridge_diameter)
|
||||
var/loc = locate(left_edge, bridge_diameter / 2 + 1, level.zpos)
|
||||
var/datum/map_template/ruin/lavaland/zlvl_bridge/template = GLOB.lavaland_zlvl_bridge_templates["lavaland_zlvl_bridge_vertical_1.dmm"]
|
||||
template.load(loc, centered = TRUE)
|
||||
// now make sure we line up another bridge on the linked map
|
||||
loc = locate(left_edge, world.maxy - (bridge_diameter / 2) + 1, connected.zpos)
|
||||
template.load(loc, centered = TRUE)
|
||||
|
||||
left_margin += interval
|
||||
|
||||
built_bridges["[zlvl]"]["[connected.zpos]"] = Z_LEVEL_SOUTH
|
||||
built_bridges["[connected.zpos]"]["[zlvl]"] = Z_LEVEL_NORTH
|
||||
|
||||
else if(d == Z_LEVEL_EAST)
|
||||
var/datum/space_level/connected = level.get_connection(Z_LEVEL_EAST)
|
||||
if(!built_bridges["[connected.zpos]"])
|
||||
built_bridges["[connected.zpos]"] = list()
|
||||
var/north_margin = TRANSITIONEDGE + 5
|
||||
while(north_margin < world.maxy - TRANSITIONEDGE)
|
||||
if(prob(50))
|
||||
var/north_edge = rand(north_margin, north_margin + bridge_diameter)
|
||||
var/loc = locate(bridge_diameter / 2, north_edge, level.zpos)
|
||||
var/datum/map_template/ruin/lavaland/zlvl_bridge/template = GLOB.lavaland_zlvl_bridge_templates["lavaland_zlvl_bridge_horizontal_1.dmm"]
|
||||
template.load(loc, centered = TRUE)
|
||||
// now make sure we line up another bridge on the linked map
|
||||
loc = locate(world.maxx - (bridge_diameter / 2) + 1, north_edge, connected.zpos)
|
||||
template.load(loc, centered = TRUE)
|
||||
|
||||
north_margin += interval
|
||||
|
||||
built_bridges["[zlvl]"]["[connected.zpos]"] = Z_LEVEL_EAST
|
||||
built_bridges["[connected.zpos]"]["[zlvl]"] = Z_LEVEL_WEST
|
||||
|
||||
/datum/lavaland_theme/proc/get_bridge_direction(z1, z2)
|
||||
if(z1 == z2)
|
||||
return null
|
||||
|
||||
if(("[z1]" in built_bridges) && ("[z2]" in built_bridges["[z1]"]))
|
||||
return built_bridges["[z1]"]["[z2]"]
|
||||
if(("[z2]" in built_bridges) && ("[z1]" in built_bridges["[z2]"]))
|
||||
return built_bridges["[z2]"]["[z1]"]
|
||||
|
||||
return null
|
||||
|
||||
/datum/lavaland_theme/lava
|
||||
name = "lava"
|
||||
primary_turf_type = /turf/simulated/floor/lava/lava_land_surface
|
||||
planet_icon_state = "planet_lava"
|
||||
primary_turf_type_icon = 'icons/turf/floors/lava.dmi'
|
||||
|
||||
/datum/lavaland_theme/lava/setup()
|
||||
. = ..()
|
||||
for(var/zlvl in levels_by_trait(ORE_LEVEL))
|
||||
var/datum/river_spawner/lava_spawner = new(zlvl)
|
||||
lava_spawner.generate()
|
||||
|
||||
/datum/lavaland_theme/plasma
|
||||
name = "plasma"
|
||||
primary_turf_type = /turf/simulated/floor/lava/lava_land_surface/plasma
|
||||
planet_icon_state = "planet_plasma"
|
||||
primary_turf_type_icon = 'icons/turf/floors/liquidplasma.dmi'
|
||||
|
||||
/datum/lavaland_theme/plasma/setup()
|
||||
. = ..()
|
||||
for(var/zlvl in levels_by_trait(ORE_LEVEL))
|
||||
var/datum/river_spawner/spawner = new(zlvl)
|
||||
spawner.generate(nodes = 2)
|
||||
spawner.generate(nodes = 2) // twice
|
||||
|
||||
/datum/lavaland_theme/chasm
|
||||
name = "chasm"
|
||||
primary_turf_type = /turf/simulated/floor/chasm/straight_down/lava_land_surface
|
||||
planet_icon_state = "planet_chasm"
|
||||
primary_turf_type_icon = 'icons/turf/floors/Chasms.dmi'
|
||||
|
||||
/datum/lavaland_theme/chasm/setup()
|
||||
. = ..()
|
||||
for(var/zlvl in levels_by_trait(ORE_LEVEL))
|
||||
var/datum/river_spawner/spawner = new(zlvl, spread_prob_ = 10, spread_prob_loss_ = 5)
|
||||
spawner.generate(nodes = 6, min_x = 50, min_y = 7, max_x = 250, max_y = 225)
|
||||
@@ -1,41 +0,0 @@
|
||||
/datum/map/boxstation
|
||||
fluff_name = "NSS Cyberiad"
|
||||
technical_name = "BoxStation"
|
||||
map_path = "_maps/map_files/stations/boxstation.dmm"
|
||||
webmap_url = "https://webmap.affectedarc07.co.uk/maps/paradise/cyberiad/"
|
||||
welcome_sound = 'sound/AI/welcome_cyberiad.ogg'
|
||||
|
||||
/datum/map/metastation
|
||||
fluff_name = "NSS Cerebron"
|
||||
technical_name = "MetaStation"
|
||||
map_path = "_maps/map_files/stations/metastation.dmm"
|
||||
webmap_url = "https://webmap.affectedarc07.co.uk/maps/paradise/metastation/"
|
||||
welcome_sound = 'sound/AI/welcome_cerebron.ogg'
|
||||
|
||||
/datum/map/deltastation
|
||||
fluff_name = "NSS Kerberos"
|
||||
technical_name = "DeltaStation"
|
||||
map_path = "_maps/map_files/stations/deltastation.dmm"
|
||||
webmap_url = "https://webmap.affectedarc07.co.uk/maps/paradise/deltastation/"
|
||||
welcome_sound = 'sound/AI/welcome_kerberos.ogg'
|
||||
|
||||
/datum/map/cerestation
|
||||
fluff_name = "NSS Farragus"
|
||||
technical_name = "CereStation"
|
||||
map_path = "_maps/map_files/stations/cerestation.dmm"
|
||||
webmap_url = "https://webmap.affectedarc07.co.uk/maps/paradise/cerestation/"
|
||||
min_players_random = 60
|
||||
welcome_sound = 'sound/AI/welcome_farragus.ogg'
|
||||
|
||||
/datum/map/emeraldstation
|
||||
fluff_name = "NSS Diagoras"
|
||||
technical_name = "EmeraldStation"
|
||||
map_path = "_maps/map_files/stations/emeraldstation.dmm"
|
||||
webmap_url = "https://affectedarc07.co.uk/emerald.html"
|
||||
welcome_sound = 'sound/AI/welcome_diagoras.ogg'
|
||||
|
||||
/datum/map/test_tiny
|
||||
fluff_name = "test_tiny"
|
||||
technical_name = "test_tiny"
|
||||
map_path = "_maps/map_files/test_tiny/test_tiny.dmm"
|
||||
voteable = FALSE
|
||||
Reference in New Issue
Block a user