From deb606b217efd7baffcb7a4c2989afe091d3bd77 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Wed, 13 Oct 2021 19:20:14 +1100 Subject: [PATCH] Added random map generation to Southern Cross. --- code/controllers/subsystems/mapping.dm | 4 + code/game/turfs/simulated/outdoors/grass.dm | 71 ++------- .../turfs/simulated/outdoors/grass_random.dm | 26 ++++ maps/southern_cross/datums/random_map.dm | 142 ++++++++++++++++++ maps/southern_cross/southern_cross-3.dmm | 16 +- maps/southern_cross/southern_cross-8.dmm | 26 ++-- maps/southern_cross/southern_cross.dm | 1 + maps/southern_cross/southern_cross_defines.dm | 7 +- polaris.dme | 1 + 9 files changed, 214 insertions(+), 80 deletions(-) create mode 100644 code/game/turfs/simulated/outdoors/grass_random.dm create mode 100644 maps/southern_cross/datums/random_map.dm diff --git a/code/controllers/subsystems/mapping.dm b/code/controllers/subsystems/mapping.dm index 59cc936da6..cb686e5030 100644 --- a/code/controllers/subsystems/mapping.dm +++ b/code/controllers/subsystems/mapping.dm @@ -26,6 +26,10 @@ SUBSYSTEM_DEF(mapping) maploader = new() load_map_templates() + #if UNIT_TEST + config.generate_map = TRUE + #endif + if(config.generate_map) // Load the engine and other submaps. load_static_submaps(static_submap_landmarks) diff --git a/code/game/turfs/simulated/outdoors/grass.dm b/code/game/turfs/simulated/outdoors/grass.dm index 181ee57c4f..cd71308e29 100644 --- a/code/game/turfs/simulated/outdoors/grass.dm +++ b/code/game/turfs/simulated/outdoors/grass.dm @@ -1,7 +1,3 @@ -var/list/grass_types = list( - -) - /turf/simulated/floor/outdoors/grass name = "grass" icon_state = "grass0" @@ -11,20 +7,22 @@ var/list/grass_types = list( turf_layers = list( /turf/simulated/floor/outdoors/rocks, /turf/simulated/floor/outdoors/dirt - ) - var/grass_chance = 20 -/* - var/animal_chance = 1 - - // Weighted spawn list. - var/list/animal_types = list( - /mob/living/simple_mob/animal/passive/tindalos = 1 - ) -*/ + ) + var/grass_chance = 0 + var/tree_chance = 0 var/list/grass_types = list( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/fullgrass - ) + ) + +/turf/simulated/floor/outdoors/grass/Initialize() + if(!check_density()) + if(tree_chance && prob(tree_chance)) + new /obj/structure/flora/tree/sif(src) + else if(grass_chance && prob(grass_chance)) + var/grass_type = pickweight(grass_types) + new grass_type(src) + . = ..() /datum/category_item/catalogue/flora/sif_grass name = "Sivian Flora - Moss" @@ -39,47 +37,12 @@ var/list/grass_types = list( icon_state = "grass_sif0" initial_flooring = /decl/flooring/grass/sif edge_blending_priority = 4 - grass_chance = 5 - var/tree_chance = 2 -/* - animal_chance = 0.5 - animal_types = list( - /mob/living/simple_mob/animal/sif/diyaab = 10, - /mob/living/simple_mob/animal/sif/glitterfly = 2, - /mob/living/simple_mob/animal/sif/duck = 2, - /mob/living/simple_mob/animal/sif/shantak/retaliate = 2, - /obj/random/mob/multiple/sifmobs = 1 - ) -*/ - grass_types = list( - /obj/structure/flora/sif/eyes = 1, - /obj/structure/flora/sif/tendrils = 10 - ) - catalogue_data = list(/datum/category_item/catalogue/flora/sif_grass) catalogue_delay = 2 SECONDS -/turf/simulated/floor/outdoors/grass/sif/Initialize() - if(tree_chance && prob(tree_chance) && !check_density()) - new /obj/structure/flora/tree/sif(src) - . = ..() - -/turf/simulated/floor/outdoors/grass/Initialize() - if(grass_chance && prob(grass_chance) && !check_density()) - var/grass_type = pickweight(grass_types) - new grass_type(src) -/* - if(animal_chance && prob(animal_chance) && !check_density()) - var/animal_type = pickweight(animal_types) - new animal_type(src) -*/ - . = ..() - /turf/simulated/floor/outdoors/grass/forest name = "thick grass" icon_state = "grass-dark0" - grass_chance = 80 - //tree_chance = 20 edge_blending_priority = 5 /turf/simulated/floor/outdoors/grass/sif/forest @@ -87,11 +50,3 @@ var/list/grass_types = list( icon_state = "grass_sif_dark0" initial_flooring = /decl/flooring/grass/sif/forest edge_blending_priority = 5 - tree_chance = 10 - grass_chance = 1 - - grass_types = list( - /obj/structure/flora/sif/frostbelle = 1, - /obj/structure/flora/sif/eyes = 5, - /obj/structure/flora/sif/tendrils = 30 - ) \ No newline at end of file diff --git a/code/game/turfs/simulated/outdoors/grass_random.dm b/code/game/turfs/simulated/outdoors/grass_random.dm new file mode 100644 index 0000000000..53a924bdbd --- /dev/null +++ b/code/game/turfs/simulated/outdoors/grass_random.dm @@ -0,0 +1,26 @@ +/turf/simulated/floor/outdoors/grass/sif/random + grass_chance = 5 + grass_types = list( + /obj/structure/flora/sif/eyes = 1, + /obj/structure/flora/sif/tendrils = 10 + ) + tree_chance = 2 + +/turf/simulated/floor/outdoors/grass/forest/random + grass_chance = 80 + +/turf/simulated/floor/outdoors/grass/sif/forest/random + tree_chance = 10 + grass_chance = 1 + grass_types = list( + /obj/structure/flora/sif/frostbelle = 1, + /obj/structure/flora/sif/eyes = 5, + /obj/structure/flora/sif/tendrils = 30 + ) + +/turf/simulated/floor/outdoors/grass/random + grass_chance = 5 + grass_types = list( + /obj/structure/flora/sif/eyes = 1, + /obj/structure/flora/sif/tendrils = 10 + ) diff --git a/maps/southern_cross/datums/random_map.dm b/maps/southern_cross/datums/random_map.dm new file mode 100644 index 0000000000..be94fe5fda --- /dev/null +++ b/maps/southern_cross/datums/random_map.dm @@ -0,0 +1,142 @@ +/turf/simulated/floor/outdoors/mask // Used solely as a placeholder to avoid changeturf. + +/datum/random_map/noise/sif + descriptor = "Sif plains (roundstart)" + smoothing_iterations = 3 + target_turf_type = /turf/simulated/floor/outdoors/mask + smooth_single_tiles = TRUE + var/refresh_icons_post_apply = TRUE + +/datum/random_map/noise/sif/cleanup() + ..() + // Round down to 1-9. + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + var/current_cell = get_map_cell(x,y) + var/current_val = map[current_cell] + map[current_cell] = min(9,max(0,round((current_val/cell_range)*10))) + +/datum/random_map/noise/sif/apply_to_map() + ..() + if(refresh_icons_post_apply) + for(var/x = 1, x <= limit_x, x++) + for(var/y = 1, y <= limit_y, y++) + var/turf/simulated/floor/outdoors/T = locate((origin_x-1)+x,(origin_y-1)+y,origin_z) + if(istype(T)) + T.update_icon() + +/datum/random_map/noise/sif/get_appropriate_path(var/value) + switch(value) + if(0) + return /turf/simulated/floor/outdoors/mud/sif/planetuse + if(1 to 2) + return /turf/simulated/floor/outdoors/dirt/sif/planetuse + if(3 to 5) + return /turf/simulated/floor/outdoors/grass/sif/planetuse + if(6 to 8) + return /turf/simulated/floor/outdoors/grass/sif/forest/planetuse + if(9) + return /turf/simulated/floor/outdoors/snow/sif/planetuse + +/datum/random_map/noise/sif/get_additional_spawns(var/value, var/turf/T) + if(prob(60)) + return + switch(value) + if(1 to 2) + if(prob(1)) + new /obj/structure/flora/sif/eyes(T) + else if(prob(1)) + new /obj/structure/flora/mushroom(T) + if(3 to 4) + if(prob(1)) + new /obj/structure/flora/sif/eyes(T) + else if(prob(1)) + new /obj/structure/flora/sif/tendrils(T) + else if(prob(1)) + new /obj/structure/flora/mushroom(T) + if(5 to 6) + if(prob(1)) + new /obj/structure/flora/sif/tendrils(T) + else if(prob(1)) + new /obj/structure/flora/sif/frostbelle(T) + else if (prob(1)) + new /obj/structure/flora/sif/eyes(T) + if(7 to 8) + if(prob(5)) + new /obj/structure/flora/tree/sif(T) + else if(prob(1)) + new /obj/structure/flora/sif/frostbelle(T) + else if(prob(1)) + new /obj/structure/flora/sif/eyes(T) + else if(prob(1)) + new /obj/structure/flora/sif/tendrils(T) + +/datum/random_map/noise/sif/forest + descriptor = "Sif forest (roundstart)" + +/datum/random_map/noise/sif/forest/get_appropriate_path(var/value) + switch(value) + if(0 to 3) + return /turf/simulated/floor/outdoors/grass/sif/planetuse + if(4 to 6) + return /turf/simulated/floor/outdoors/grass/sif/forest/planetuse + if(7 to 9) + return /turf/simulated/floor/outdoors/snow/sif/planetuse + +/datum/random_map/noise/sif/forest/get_additional_spawns(var/value, var/turf/T) + if(prob(25)) + return + switch(value) + if(0 to 5) + if(value >= 3 && prob(5)) + new /obj/structure/flora/tree/sif(T) + return + if(prob(1)) + new /obj/structure/flora/sif/eyes(T) + else if(prob(1)) + new /obj/structure/flora/sif/tendrils(T) + else if(prob(1)) + new /obj/structure/flora/mushroom(T) + if(6 to 9) + if(prob((value <= 7) ? 15 : 35)) + new /obj/structure/flora/tree/sif(T) + return + if(prob(1)) + new /obj/structure/flora/sif/frostbelle(T) + else if(prob(1)) + new /obj/structure/flora/sif/eyes(T) + else if(prob(1)) + new /obj/structure/flora/sif/tendrils(T) + +/datum/random_map/noise/sif/underground + descriptor = "Sif underground (roundstart)" + target_turf_type = /turf/simulated/mineral/sif + skip_dense = TRUE + keep_outside = TRUE + refresh_icons_post_apply = FALSE + +/datum/random_map/noise/sif/underground/get_appropriate_path(var/value) + switch(value) + if(0 to 2) + return /turf/simulated/floor/outdoors/mud/sif/planetuse + if(3 to 4) + return /turf/simulated/floor/outdoors/dirt/sif/planetuse + +/datum/random_map/noise/sif/underground/get_additional_spawns(var/value, var/turf/T) + if(value <= 1 && prob(30)) // Mud is very fun-gy. + new /obj/structure/flora/mushroom(T) + else if(!prob(30)) + var/mushroom_prob = 0 + switch(value) + if(2) + mushroom_prob = 8 + if(3) + mushroom_prob = 4 + if(4 to 6) + mushroom_prob = 2 + if(7) + mushroom_prob = 1 + if(mushroom_prob && prob(mushroom_prob)) + new /obj/structure/flora/mushroom(T) + else if(prob(0.1)) + new /obj/structure/flora/sif/subterranean(T) diff --git a/maps/southern_cross/southern_cross-3.dmm b/maps/southern_cross/southern_cross-3.dmm index a66a90652b..c852d9681b 100644 --- a/maps/southern_cross/southern_cross-3.dmm +++ b/maps/southern_cross/southern_cross-3.dmm @@ -9593,7 +9593,7 @@ /turf/simulated/floor/tiled/steel/sif/planetuse, /area/surface/outside/path/plains) "uy" = ( -/turf/simulated/floor/outdoors/grass/sif/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/outpost) "uz" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -9923,7 +9923,7 @@ /turf/simulated/mineral/sif, /area/surface/outside/plains/normal) "vp" = ( -/turf/simulated/floor/outdoors/grass/sif/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/normal) "vq" = ( /turf/simulated/floor/outdoors/rocks/sif/planetuse, @@ -10126,7 +10126,7 @@ /area/surface/outpost/research/xenoresearch) "vL" = ( /obj/effect/zone_divider, -/turf/simulated/floor/outdoors/grass/sif/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/outpost) "vM" = ( /turf/simulated/floor/outdoors/dirt/sif/planetuse, @@ -13589,7 +13589,7 @@ /area/surface/outpost/research/xenoresearch/xenobiology) "Dk" = ( /obj/effect/zone_divider, -/turf/simulated/floor/outdoors/grass/sif/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/normal) "Dl" = ( /obj/effect/zone_divider, @@ -13615,7 +13615,7 @@ "Dq" = ( /obj/effect/step_trigger/teleporter/bridge/north_to_south, /obj/structure/railing, -/turf/simulated/floor/outdoors/grass/sif/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/normal) "Dr" = ( /obj/machinery/atmospherics/pipe/simple/visible{ @@ -13635,7 +13635,7 @@ /obj/structure/railing{ dir = 1 }, -/turf/simulated/floor/outdoors/grass/sif/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/normal) "Du" = ( /obj/effect/step_trigger/teleporter/bridge/south_to_north, @@ -13667,7 +13667,7 @@ /turf/simulated/floor/outdoors/dirt/sif/planetuse, /area/syndicate_station/planet) "DA" = ( -/turf/simulated/floor/outdoors/grass/sif/forest/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/normal) "DB" = ( /turf/simulated/floor/plating/sif/planetuse, @@ -13688,7 +13688,7 @@ /area/surface/outside/river/faxalven) "DE" = ( /obj/effect/zone_divider, -/turf/simulated/floor/outdoors/grass/sif/forest/planetuse, +/turf/simulated/floor/outdoors/mask, /area/surface/outside/plains/normal) "DF" = ( /obj/effect/zone_divider, diff --git a/maps/southern_cross/southern_cross-8.dmm b/maps/southern_cross/southern_cross-8.dmm index cc706e9098..1a29baf868 100644 --- a/maps/southern_cross/southern_cross-8.dmm +++ b/maps/southern_cross/southern_cross-8.dmm @@ -2,13 +2,13 @@ "ab" = (/turf/unsimulated/wall/planetary/sif{icon_state = "rock-dark"},/area/surface/outside/wilderness/mountains) "ac" = (/turf/simulated/mineral/sif,/area/surface/outside/wilderness/mountains) "ad" = (/obj/effect/zone_divider,/turf/simulated/mineral/sif,/area/surface/outside/wilderness/mountains) -"ae" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/deep) -"af" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outpost/wall) -"ag" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/deep) +"ae" = (/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/deep) +"af" = (/turf/simulated/floor/outdoors/mask,/area/surface/outpost/wall) +"ag" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/deep) "ah" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/wilderness/deep) "ai" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/wilderness/deep) -"aj" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/deep) -"ak" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/deep) +"aj" = (/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/deep) +"ak" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/deep) "al" = (/turf/unsimulated/wall/planetary/sif,/area/surface/outside/river/svartan) "am" = (/turf/simulated/floor/water,/area/surface/outside/river/svartan) "an" = (/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan) @@ -17,7 +17,7 @@ "aq" = (/turf/simulated/floor/plating/sif/planetuse,/area/surface/outside/path/wilderness) "ar" = (/turf/simulated/floor/wood,/area/surface/outside/path/wilderness) "as" = (/turf/simulated/wall/wood,/area/surface/outside/path/wilderness) -"at" = (/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/normal) +"at" = (/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/normal) "au" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water,/area/surface/outside/river/svartan) "av" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water,/area/surface/outside/river/svartan) "aw" = (/obj/effect/zone_divider,/turf/simulated/floor/water,/area/surface/outside/river/svartan) @@ -27,11 +27,11 @@ "aA" = (/obj/effect/zone_divider,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan) "aB" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east/small,/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan) "aC" = (/obj/structure/showcase/sign{desc = "This appears to be a sign warning people that the other side is extremely hazardous."; icon_state = "wilderness2"; pixel_y = -5},/turf/simulated/wall/wood,/area/surface/outside/path/wilderness) -"aD" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/forest/planetuse,/area/surface/outside/wilderness/normal) +"aD" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/normal) "aE" = (/obj/effect/step_trigger/teleporter/bridge/west_to_east,/obj/structure/railing{dir = 4},/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan) "aF" = (/obj/effect/step_trigger/teleporter/bridge/east_to_west,/obj/structure/railing{dir = 8},/turf/simulated/floor/water/deep,/area/surface/outside/river/svartan) -"aG" = (/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/normal) -"aH" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/grass/sif/planetuse,/area/surface/outside/wilderness/normal) +"aG" = (/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/normal) +"aH" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/normal) "aI" = (/turf/simulated/floor/outdoors/dirt,/area/surface/outside/wilderness/normal) "aJ" = (/turf/simulated/floor/outdoors/rocks/sif/planetuse,/area/surface/outside/wilderness/deep) "aK" = (/turf/simulated/floor/water,/area/surface/outside/ocean) @@ -45,10 +45,10 @@ "aS" = (/turf/simulated/floor/wood{outdoors = 1},/area/surface/outside/path/wilderness) "aT" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle2/mining) "aU" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle1/mining) -"aV" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/surface/outside/wilderness/normal) +"aV" = (/turf/simulated/floor/outdoors/mask,/area/surface/outside/wilderness/normal) "aW" = (/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/wilderness) -"aX" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle2/mining) -"aY" = (/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle1/mining) +"aX" = (/turf/simulated/floor/outdoors/mask,/area/shuttle/shuttle2/mining) +"aY" = (/turf/simulated/floor/outdoors/mask,/area/shuttle/shuttle1/mining) "aZ" = (/obj/structure/grille,/obj/structure/window/reinforced/full,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter) "ba" = (/turf/simulated/wall/log_sif,/area/surface/outpost/shelter) "bb" = (/obj/effect/zone_divider,/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/surface/outside/path/wilderness) @@ -76,7 +76,7 @@ "bx" = (/obj/item/weapon/banner/virgov,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter) "by" = (/obj/machinery/space_heater,/turf/simulated/floor/plating/external,/area/surface/outpost/shelter) "bz" = (/obj/machinery/space_heater,/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "mining_dock_2"; name = "shuttle bay controller"; pixel_x = 0; pixel_y = -26; tag_door = "mining_dock_2_door"},/turf/simulated/floor/plating/external,/area/surface/outpost/shelter) -"bA" = (/obj/effect/shuttle_landmark{docking_controller = "mining_dock_2"; landmark_tag = "shuttle2_mining"; name = "Wilderness Landing Site"},/turf/simulated/floor/outdoors/grass/sif/planetuse{tree_chance = 0},/area/shuttle/shuttle2/mining) +"bA" = (/obj/effect/shuttle_landmark{docking_controller = "mining_dock_2"; landmark_tag = "shuttle2_mining"; name = "Wilderness Landing Site"},/turf/simulated/floor/outdoors/mask,/area/shuttle/shuttle2/mining) "bB" = (/obj/effect/shuttle_landmark{docking_controller = "mining_dock_1"; landmark_tag = "shuttle1_mining"; name = "Wilderness Landing Site"},/turf/simulated/floor/outdoors/dirt/sif/planetuse,/area/shuttle/shuttle1/mining) "bC" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/turf/simulated/shuttle/floor/voidcraft/external,/area/surface/outpost/wall/checkpoint) "bD" = (/obj/effect/map_effect/portal/line/side_b{icon_state = "portal_line_side_b"; dir = 1},/turf/simulated/floor/water,/area/surface/outside/ocean) diff --git a/maps/southern_cross/southern_cross.dm b/maps/southern_cross/southern_cross.dm index 7f31cf900c..8339b085cc 100644 --- a/maps/southern_cross/southern_cross.dm +++ b/maps/southern_cross/southern_cross.dm @@ -23,6 +23,7 @@ #include "loadout/loadout_uniform.dm" #include "datums/supplypacks/munitions.dm" + #include "datums/random_map.dm" #include "items/encryptionkey_sc.dm" #include "items/headset_sc.dm" #include "items/clothing/sc_suit.dm" diff --git a/maps/southern_cross/southern_cross_defines.dm b/maps/southern_cross/southern_cross_defines.dm index 222abfd172..16de26b0f0 100644 --- a/maps/southern_cross/southern_cross_defines.dm +++ b/maps/southern_cross/southern_cross_defines.dm @@ -143,8 +143,13 @@ // Now for the tunnels. new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_SURFACE_MINE, world.maxx, world.maxy) // Create the mining Z-level. + new /datum/random_map/noise/sif/underground(null, 1, 1, Z_LEVEL_SURFACE_MINE, world.maxx, world.maxy) new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_SURFACE_MINE, 64, 64) // Create the mining ore distribution map. - // Todo: Forest generation. + + // Forest/wilderness generation. + new /datum/random_map/noise/sif( null, 1, 1, Z_LEVEL_SURFACE, world.maxx, world.maxy) + new /datum/random_map/noise/sif/forest(null, 1, 1, Z_LEVEL_SURFACE_WILD, world.maxx, world.maxy) + return 1 // Skybox Settings diff --git a/polaris.dme b/polaris.dme index 01331cd309..e61b166efc 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1336,6 +1336,7 @@ #include "code\game\turfs\simulated\dungeon\wall.dm" #include "code\game\turfs\simulated\outdoors\dirt.dm" #include "code\game\turfs\simulated\outdoors\grass.dm" +#include "code\game\turfs\simulated\outdoors\grass_random.dm" #include "code\game\turfs\simulated\outdoors\outdoors.dm" #include "code\game\turfs\simulated\outdoors\outdoors_attackby.dm" #include "code\game\turfs\simulated\outdoors\sidewalk.dm"