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"