diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 9f507d37bff..e1e2ef0bea6 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -129,7 +129,7 @@ return FALSE var/list/large_dense = list() - + //Next, check objects to block entry that are on the border for(var/atom/movable/border_obstacle in src) if(border_obstacle.flags & ON_BORDER) @@ -209,14 +209,14 @@ qdel(L) //wrapper for ChangeTurf()s that you want to prevent/affect without overriding ChangeTurf() itself -/turf/proc/TerraformTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE) - return ChangeTurf(path, new_baseturf, defer_change, ignore_air) +/turf/proc/TerraformTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE, forceop = FALSE) + return ChangeTurf(path, new_baseturf, defer_change, ignore_air, forceop) //Creates a new turf -/turf/proc/ChangeTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE) +/turf/proc/ChangeTurf(path, new_baseturf, defer_change = FALSE, ignore_air = FALSE, forceop = FALSE) if(!path) return - if(!GLOB.use_preloader && path == type) // Don't no-op if the map loader requires it to be reconstructed + if(!GLOB.use_preloader && path == type && !forceop) // Don't no-op if the map loader requires it to be reconstructed return src var/old_baseturf = baseturf @@ -419,17 +419,17 @@ if(!SSticker.HasRoundStarted()) add_blueprints(AM) -/turf/proc/empty(turf_type=/turf/open/space, baseturf_type) +/turf/proc/empty(turf_type=/turf/open/space, baseturf_type, delmobs = TRUE, forceop = FALSE) // Remove all atoms except observers, landmarks, docking ports var/static/list/ignored_atoms = typecacheof(list(/mob/dead, /obj/effect/landmark, /obj/docking_port, /atom/movable/lighting_object)) - var/list/allowed_contents = typecache_filter_list_reverse(GetAllContents(),ignored_atoms) + var/list/allowed_contents = typecache_filter_list_reverse(GetAllContents(),delmobs? ignored_atoms : ignored_atoms + typecacheof(list(/mob))) allowed_contents -= src for(var/i in 1 to allowed_contents.len) var/thing = allowed_contents[i] qdel(thing, force=TRUE) - var/turf/newT = ChangeTurf(turf_type, baseturf_type, FALSE, FALSE) - + var/turf/newT = ChangeTurf(turf_type, baseturf_type, FALSE, FALSE, forceop = forceop) + SSair.remove_from_active(newT) newT.CalculateAdjacentTurfs() SSair.add_to_active(newT,1) @@ -437,7 +437,6 @@ /turf/proc/is_transition_turf() return - /turf/acid_act(acidpwr, acid_volume) . = 1 var/acid_type = /obj/effect/acid diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index cfccf5fa788..97c5d1504d6 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -194,11 +194,14 @@ valueholder = input(user,"Enter variable value:" ,"Value") as turf in world if(AREA_BUILDMODE) var/list/gen_paths = subtypesof(/datum/mapGenerator) - - var/type = input(user,"Select Generator Type","Type") as null|anything in gen_paths + var/list/options = list() + for(var/path in gen_paths) + var/datum/mapGenerator/MP = path + options[initial(MP.buildmode_name)] = path + var/type = input(user,"Select Generator Type","Type") as null|anything in options if(!type) return - generator_path = type + generator_path = options[type] cornerA = null cornerB = null @@ -342,7 +345,12 @@ if(cornerA && cornerB) if(!generator_path) to_chat(user, "Select generator type first.") + return var/datum/mapGenerator/G = new generator_path + if(istype(G, /datum/mapGenerator/repair/reload_station_map)) + if(GLOB.reloading_map) + to_chat(user, "You are already reloading an area! Please wait for it to fully finish loading before trying to load another!") + return G.defineRegion(cornerA,cornerB,1) G.generate() cornerA = null diff --git a/code/modules/mapping/reader.dm b/code/modules/mapping/reader.dm index 4f4ff981d16..51e34637820 100644 --- a/code/modules/mapping/reader.dm +++ b/code/modules/mapping/reader.dm @@ -29,21 +29,21 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) * 2) Read the map line by line, parsing the result (using parse_grid) * */ -/dmm_suite/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num) +/dmm_suite/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, lower_crop_x as num, lower_crop_y as num, upper_crop_x as num, upper_crop_y as num) //How I wish for RAII Master.StartLoadingMap() space_key = null #ifdef TESTING turfsSkipped = 0 #endif - . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf) + . = load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, lower_crop_x, upper_crop_x, lower_crop_y, upper_crop_y) #ifdef TESTING if(turfsSkipped) testing("Skipped loading [turfsSkipped] default turfs") #endif Master.StopLoadingMap() -/dmm_suite/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf) +/dmm_suite/proc/load_map_impl(dmm_file, x_offset, y_offset, z_offset, cropMap, measureOnly, no_changeturf, x_lower = -INFINITY, x_upper = INFINITY, y_lower = -INFINITY, y_upper = INFINITY) var/tfile = dmm_file//the map file we're creating if(isfile(tfile)) tfile = file2text(tfile) @@ -60,6 +60,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) var/key_len = 0 var/stored_index = 1 + while(dmmRegex.Find(tfile, stored_index)) stored_index = dmmRegex.next @@ -81,7 +82,12 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) if(!key_len) throw EXCEPTION("Coords before model definition in DMM") - var/xcrdStart = text2num(dmmRegex.group[3]) + x_offset - 1 + var/curr_x = text2num(dmmRegex.group[3]) + + if(curr_x < x_lower || curr_x > x_upper) + continue + + var/xcrdStart = curr_x + x_offset - 1 //position of the currently processed square var/xcrd var/ycrd = text2num(dmmRegex.group[4]) + y_offset - 1 @@ -96,7 +102,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) if(!no_changeturf) WARNING("Z-level expansion occurred without no_changeturf set, this may cause problems when /turf/AfterChange is called") - bounds[MAP_MINX] = min(bounds[MAP_MINX], xcrdStart) + bounds[MAP_MINX] = min(bounds[MAP_MINX], Clamp(xcrdStart, x_lower, x_upper)) bounds[MAP_MINZ] = min(bounds[MAP_MINZ], zcrd) bounds[MAP_MAXZ] = max(bounds[MAP_MAXZ], zcrd) @@ -113,15 +119,15 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) if(gridLines.len && gridLines[gridLines.len] == "") gridLines.Cut(gridLines.len) // Remove only one blank line at the end. - bounds[MAP_MINY] = min(bounds[MAP_MINY], ycrd) + bounds[MAP_MINY] = min(bounds[MAP_MINY], Clamp(ycrd, y_lower, y_upper)) ycrd += gridLines.len - 1 // Start at the top and work down if(!cropMap && ycrd > world.maxy) if(!measureOnly) world.maxy = ycrd // Expand Y here. X is expanded in the loop below - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], ycrd) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], Clamp(ycrd, y_lower, y_upper)) else - bounds[MAP_MAXY] = max(bounds[MAP_MAXY], min(ycrd, world.maxy)) + bounds[MAP_MAXY] = max(bounds[MAP_MAXY], Clamp(min(ycrd, world.maxy), y_lower, y_upper)) var/maxx = xcrdStart if(measureOnly) @@ -129,9 +135,15 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) maxx = max(maxx, xcrdStart + length(line) / key_len - 1) else for(var/line in gridLines) + if((ycrd - y_offset + 1) < y_lower || (ycrd - y_offset + 1) > y_upper) //Reverse operation and check if it is out of bounds of cropping. + --ycrd + continue if(ycrd <= world.maxy && ycrd >= 1) xcrd = xcrdStart for(var/tpos = 1 to length(line) - key_len + 1 step key_len) + if((xcrd - x_offset + 1) < x_lower || (xcrd - x_offset + 1) > x_upper) //Same as above. + ++xcrd + continue //X cropping. if(xcrd > world.maxx) if(cropMap) break @@ -154,7 +166,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) ++xcrd --ycrd - bounds[MAP_MAXX] = max(bounds[MAP_MAXX], cropMap ? min(maxx, world.maxx) : maxx) + bounds[MAP_MAXX] = Clamp(max(bounds[MAP_MAXX], cropMap ? min(maxx, world.maxx) : maxx), x_lower, x_upper) CHECK_TICK @@ -343,7 +355,7 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) /dmm_suite/proc/create_atom(path, crds) set waitfor = FALSE . = new path (crds) - + //text trimming (both directions) helper proc //optionally removes quotes before and after the text (for variable name) /dmm_suite/proc/trim_text(what as text,trim_quotes=0) diff --git a/code/modules/procedural_mapping/mapGenerator.dm b/code/modules/procedural_mapping/mapGenerator.dm index 5653e804224..966ef2f9e2e 100644 --- a/code/modules/procedural_mapping/mapGenerator.dm +++ b/code/modules/procedural_mapping/mapGenerator.dm @@ -17,7 +17,6 @@ //All #define CLUSTER_CHECK_ALL 30 //Don't let anything cluster, like, at all - /datum/mapGenerator //Map information @@ -26,8 +25,12 @@ //mapGeneratorModule information var/list/modules = list() + var/buildmode_name = "Undocumented" + /datum/mapGenerator/New() ..() + if(buildmode_name == "Undocumented") + buildmode_name = copytext("[type]", 20) // / d a t u m / m a p g e n e r a t o r / = 20 characters. initialiseModules() //Defines the region the map represents, sets map diff --git a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm index 4d07342051d..6216216cd9a 100644 --- a/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm +++ b/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm @@ -20,13 +20,25 @@ /datum/mapGeneratorModule/bottomLayer/massdelete spawnableAtoms = list() spawnableTurfs = list() + var/deletemobs = TRUE + var/deleteturfs = TRUE /datum/mapGeneratorModule/bottomLayer/massdelete/generate() if(!mother) return for(var/V in mother.map) var/turf/T = V - T.empty() + T.empty(deleteturfs? null : T.type, delmobs = deletemobs, forceop = TRUE) + +/datum/mapGeneratorModule/bottomLayer/massdelete/no_delete_mobs + deletemobs = FALSE + +/datum/mapGeneratorModule/bottomLayer/massdelete/leave_turfs + deleteturfs = FALSE + +/datum/mapGeneratorModule/bottomLayer/massdelete/regeneration_delete + deletemobs = FALSE + deleteturfs = FALSE //Only places atoms/turfs on area borders /datum/mapGeneratorModule/border diff --git a/code/modules/procedural_mapping/mapGenerators/asteroid.dm b/code/modules/procedural_mapping/mapGenerators/asteroid.dm index 1c31bb5697c..35690058c99 100644 --- a/code/modules/procedural_mapping/mapGenerators/asteroid.dm +++ b/code/modules/procedural_mapping/mapGenerators/asteroid.dm @@ -29,17 +29,21 @@ /datum/mapGenerator/asteroid/hollow modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \ /datum/mapGeneratorModule/border/asteroidWalls) + buildmode_name = "Pattern: Asteroid Room \[AIRLESS!\]" /datum/mapGenerator/asteroid/hollow/random modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \ /datum/mapGeneratorModule/border/asteroidWalls, \ /datum/mapGeneratorModule/splatterLayer/asteroidWalls) + buildmode_name = "Pattern: Asteroid Room: Splatter Walls \[AIRLESS!\]" /datum/mapGenerator/asteroid/hollow/random/monsters modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \ /datum/mapGeneratorModule/border/asteroidWalls, \ /datum/mapGeneratorModule/splatterLayer/asteroidWalls, \ /datum/mapGeneratorModule/splatterLayer/asteroidMonsters) + buildmode_name = "Pattern: Asteroid Room: Splatter Walls + Monsters \[AIRLESS!\]" /datum/mapGenerator/asteroid/filled - modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidWalls) \ No newline at end of file + modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidWalls) + buildmode_name = "Block: Asteroid Walls" \ No newline at end of file diff --git a/code/modules/procedural_mapping/mapGenerators/cult.dm b/code/modules/procedural_mapping/mapGenerators/cult.dm index c76a611b7e8..ea9c7da9460 100644 --- a/code/modules/procedural_mapping/mapGenerators/cult.dm +++ b/code/modules/procedural_mapping/mapGenerators/cult.dm @@ -4,28 +4,30 @@ /datum/mapGeneratorModule/border/cultWalls spawnableTurfs = list(/turf/closed/wall/mineral/cult = 100) - /datum/mapGeneratorModule/bottomLayer/clockFloor spawnableTurfs = list(/turf/open/floor/clockwork = 100) /datum/mapGeneratorModule/border/clockWalls spawnableTurfs = list(/turf/closed/wall/clockwork = 100) - /datum/mapGenerator/cult //walls and floor only - modules = list(/datum/mapGeneratorModule/bottomLayer/cultFloor, \ + modules = list(/datum/mapGeneratorModule/bottomLayer/cultFloor, \ /datum/mapGeneratorModule/border/cultWalls, \ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Pattern: Cult Room" /datum/mapGenerator/clock //walls and floor only - modules = list(/datum/mapGeneratorModule/bottomLayer/clockFloor, \ + modules = list(/datum/mapGeneratorModule/bottomLayer/clockFloor, \ /datum/mapGeneratorModule/border/clockWalls, \ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Pattern: Clockwork Room" /datum/mapGenerator/cult/floor //floors only - modules = list(/datum/mapGeneratorModule/bottomLayer/cultFloor, \ + modules = list(/datum/mapGeneratorModule/bottomLayer/cultFloor, \ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Block: Cult Floor" /datum/mapGenerator/clock/floor //floor only - modules = list(/datum/mapGeneratorModule/bottomLayer/clockFloor, \ - /datum/mapGeneratorModule/bottomLayer/repressurize) \ No newline at end of file + modules = list(/datum/mapGeneratorModule/bottomLayer/clockFloor, \ + /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Block: Clockwork Floor" diff --git a/code/modules/procedural_mapping/mapGenerators/lava_river.dm b/code/modules/procedural_mapping/mapGenerators/lava_river.dm index 2dbfc7ecd73..8bdedb4b765 100644 --- a/code/modules/procedural_mapping/mapGenerators/lava_river.dm +++ b/code/modules/procedural_mapping/mapGenerators/lava_river.dm @@ -1,3 +1,4 @@ + /datum/mapGenerator/lavaland var/start_z = 5 var/min_x = 0 @@ -5,6 +6,7 @@ var/max_x = 0 var/max_y = 0 modules = list(/datum/mapGeneratorModule/river) + buildmode_name = "Pattern: Lava Rivers" /datum/mapGenerator/lavaland/defineRegion(turf/Start, turf/End, replace = 0) start_z = Start.z diff --git a/code/modules/procedural_mapping/mapGenerators/lavaland.dm b/code/modules/procedural_mapping/mapGenerators/lavaland.dm index 9c160ee8488..e6d7b00e8d9 100644 --- a/code/modules/procedural_mapping/mapGenerators/lavaland.dm +++ b/code/modules/procedural_mapping/mapGenerators/lavaland.dm @@ -22,9 +22,12 @@ /datum/mapGenerator/lavaland/ground_only modules = list(/datum/mapGeneratorModule/bottomLayer/lavaland_default) + buildmode_name = "Block: Lavaland Floor" /datum/mapGenerator/lavaland/dense_ores modules = list(/datum/mapGeneratorModule/bottomLayer/lavaland_mineral/dense) + buildmode_name = "Block: Lavaland Ores: Dense" /datum/mapGenerator/lavaland/normal_ores modules = list(/datum/mapGeneratorModule/bottomLayer/lavaland_mineral) + buildmode_name = "Block: Lavaland Ores" diff --git a/code/modules/procedural_mapping/mapGenerators/nature.dm b/code/modules/procedural_mapping/mapGenerators/nature.dm index 6ad1dfcf7e1..abb4e7ed105 100644 --- a/code/modules/procedural_mapping/mapGenerators/nature.dm +++ b/code/modules/procedural_mapping/mapGenerators/nature.dm @@ -8,4 +8,4 @@ /datum/mapGeneratorModule/randBushes, \ /datum/mapGeneratorModule/randRocks, \ /datum/mapGeneratorModule/denseLayer/grassTufts) - + buildmode_name = "Pattern: Nature" diff --git a/code/modules/procedural_mapping/mapGenerators/repair.dm b/code/modules/procedural_mapping/mapGenerators/repair.dm index 3a344ac94a5..f9b94bba89d 100644 --- a/code/modules/procedural_mapping/mapGenerators/repair.dm +++ b/code/modules/procedural_mapping/mapGenerators/repair.dm @@ -16,16 +16,92 @@ spawnableTurfs = list(/turf/closed/wall = 100) allowAtomsOnSpace = TRUE +/datum/mapGeneratorModule/reload_station_map/generate() + if(!istype(mother, /datum/mapGenerator/repair/reload_station_map)) + return + var/datum/mapGenerator/repair/reload_station_map/mother1 = mother + if(mother1.z != ZLEVEL_STATION) + return //This is only for reloading station blocks! + GLOB.reloading_map = TRUE + var/static/dmm_suite/reloader = new + var/list/bounds = reloader.load_map(file(SSmapping.config.GetFullMapPath()),measureOnly = FALSE, no_changeturf = FALSE,x_offset = 0, y_offset = 0, z_offset = ZLEVEL_STATION, cropMap=TRUE, lower_crop_x = mother1.x_low, lower_crop_y = mother1.y_low, upper_crop_x = mother1.x_high, upper_crop_y = mother1.y_high) + + var/list/obj/machinery/atmospherics/atmos_machines = list() + var/list/obj/structure/cable/cables = list() + var/list/atom/atoms = list() + + repopulate_sorted_areas() + + for(var/L in block(locate(bounds[MAP_MINX], bounds[MAP_MINY], bounds[MAP_MINZ]), + locate(bounds[MAP_MAXX], bounds[MAP_MAXY], bounds[MAP_MAXZ]))) + set waitfor = FALSE + var/turf/B = L + atoms += B + for(var/A in B) + atoms += A + if(istype(A,/obj/structure/cable)) + cables += A + continue + if(istype(A,/obj/machinery/atmospherics)) + atmos_machines += A + + SSatoms.InitializeAtoms(atoms) + SSmachines.setup_template_powernets(cables) + SSair.setup_template_machinery(atmos_machines) + GLOB.reloading_map = FALSE + /datum/mapGenerator/repair modules = list(/datum/mapGeneratorModule/bottomLayer/repairFloorPlasteel, /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Repair: Floor" /datum/mapGenerator/repair/delete_walls modules = list(/datum/mapGeneratorModule/bottomLayer/repairFloorPlasteel/flatten, /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Repair: Floor: Flatten Walls" /datum/mapGenerator/repair/enclose_room modules = list(/datum/mapGeneratorModule/bottomLayer/repairFloorPlasteel/flatten, /datum/mapGeneratorModule/border/normalWalls, /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Repair: Generate Aired Room" +/datum/mapGenerator/repair/reload_station_map + modules = list(/datum/mapGeneratorModule/bottomLayer/massdelete/no_delete_mobs) + var/x_low = 0 + var/x_high = 0 + var/y_low = 0 + var/y_high = 0 + var/z = 0 + var/cleanload = FALSE + var/datum/mapGeneratorModule/reload_station_map/loader + buildmode_name = "Repair: Reload Block \[DO NOT USE\]" + +/datum/mapGenerator/repair/reload_station_map/clean + buildmode_name = "Repair: Reload Block - Mass Delete" + cleanload = TRUE + +/datum/mapGenerator/repair/reload_station_map/clean/in_place + modules = list(/datum/mapGeneratorModule/bottomLayer/massdelete/regeneration_delete) + buildmode_name = "Repair: Reload Block - Mass Delete - In Place" + +/datum/mapGenerator/repair/reload_station_map/defineRegion(turf/start, turf/end) + . = ..() + if(start.z != ZLEVEL_STATION || end.z != ZLEVEL_STATION) + return + x_low = min(start.x, end.x) + y_low = min(start.y, end.y) + x_high = max(start.x, end.x) + y_high = max(start.y, end.y) + z = ZLEVEL_STATION + +GLOBAL_VAR_INIT(reloading_map, FALSE) + +/datum/mapGenerator/repair/reload_station_map/generate(clean = cleanload) + if(!loader) + loader = new + if(cleanload) + ..() //Trigger mass deletion. + modules |= loader + syncModules() + loader.generate() diff --git a/code/modules/procedural_mapping/mapGenerators/shuttle.dm b/code/modules/procedural_mapping/mapGenerators/shuttle.dm index b155335bdeb..7ce98040bb4 100644 --- a/code/modules/procedural_mapping/mapGenerators/shuttle.dm +++ b/code/modules/procedural_mapping/mapGenerators/shuttle.dm @@ -7,9 +7,11 @@ // Generators /datum/mapGenerator/shuttle/full - modules = list(/datum/mapGeneratorModule/bottomLayer/shuttleFloor, \ + modules = list(/datum/mapGeneratorModule/bottomLayer/shuttleFloor, \ /datum/mapGeneratorModule/border/shuttleWalls,\ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Pattern: Shuttle Room" /datum/mapGenerator/shuttle/floor modules = list(/datum/mapGeneratorModule/bottomLayer/shuttleFloor) + buildmode_name = "Block: Shuttle Floor" diff --git a/code/modules/procedural_mapping/mapGenerators/syndicate.dm b/code/modules/procedural_mapping/mapGenerators/syndicate.dm index b8a6f33b33a..b5030f566db 100644 --- a/code/modules/procedural_mapping/mapGenerators/syndicate.dm +++ b/code/modules/procedural_mapping/mapGenerators/syndicate.dm @@ -1,3 +1,4 @@ + // Modules /turf/open/floor/plasteel/shuttle/red/syndicate @@ -14,8 +15,8 @@ /datum/mapGeneratorModule/syndieFurniture clusterCheckFlags = CLUSTER_CHECK_ALL spawnableTurfs = list() - spawnableAtoms = list(/obj/structure/table = 20, /obj/structure/chair = 15, /obj/structure/chair/stool = 10, - /obj/structure/frame/computer = 15, /obj/item/weapon/storage/toolbox/syndicate = 15, + spawnableAtoms = list(/obj/structure/table = 20,/obj/structure/chair = 15,/obj/structure/chair/stool = 10, \ + /obj/structure/frame/computer = 15, /obj/item/weapon/storage/toolbox/syndicate = 15 ,\ /obj/structure/closet/syndicate = 25, /obj/machinery/suit_storage_unit/syndicate = 15) /datum/mapGeneratorModule/splatterLayer/syndieMobs @@ -28,21 +29,24 @@ // Generators /datum/mapGenerator/syndicate/empty //walls and floor only - modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \ + modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \ /datum/mapGeneratorModule/border/syndieWalls,\ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Pattern: Shuttle Room: Syndicate" /datum/mapGenerator/syndicate/mobsonly modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \ /datum/mapGeneratorModule/border/syndieWalls,\ /datum/mapGeneratorModule/splatterLayer/syndieMobs, \ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Pattern: Shuttle Room: Syndicate: Mobs" /datum/mapGenerator/syndicate/furniture modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \ /datum/mapGeneratorModule/border/syndieWalls,\ /datum/mapGeneratorModule/syndieFurniture, \ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Pattern: Shuttle Room: Syndicate: Furniture" /datum/mapGenerator/syndicate/full modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \ @@ -50,3 +54,4 @@ /datum/mapGeneratorModule/syndieFurniture, \ /datum/mapGeneratorModule/splatterLayer/syndieMobs, \ /datum/mapGeneratorModule/bottomLayer/repressurize) + buildmode_name = "Pattern: Shuttle Room: Syndicate: All"