Files
Bubberstation/code/modules/procedural_mapping/mapGeneratorModules/helpers.dm
kevinz000 d951b65eba Admin "Reload Station" Map Generator - Reloads specified block to roundstart. (#28986)
Badmins: Buildmode map generators have names in the list to select them, instead of paths.

Also, a new map generator has been added, repair/reload station. Use it VERY sparingly, it deletes the block of the map and reloads it to roundstart. THIS CAN CAUSE ISSUES WITH MACHINES AND ATMOSPHERICS, SO DO NOT USE IT UNLESS YOU ABSOLUTELY HAVE TO!

The reload station one tagged DO NOT USE shouldn't be used as it doesn't delete anything before loading, so if you use it you'll have two copies of things. That can result in a LOT of issues, so don't use it unless you're a codermin and know what you're doing/abusing!
2017-07-29 11:43:43 +12:00

66 lines
1.7 KiB
Plaintext

//Helper Modules
// Helper to repressurize the area in case it was run in space
/datum/mapGeneratorModule/bottomLayer/repressurize
spawnableAtoms = list()
spawnableTurfs = list()
/datum/mapGeneratorModule/bottomLayer/repressurize/generate()
if(!mother)
return
var/list/map = mother.map
for(var/turf/T in map)
SSair.remove_from_active(T)
for(var/turf/open/T in map)
if(T.air)
T.air.copy_from_turf(T)
SSair.add_to_active(T)
/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(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
clusterCheckFlags = CLUSTER_CHECK_NONE
/datum/mapGeneratorModule/border/generate()
if(!mother)
return
var/list/map = mother.map
for(var/turf/T in map)
if(is_border(T))
place(T)
/datum/mapGeneratorModule/border/proc/is_border(turf/T)
for(var/direction in list(SOUTH,EAST,WEST,NORTH))
if (get_step(T,direction) in mother.map)
continue
return 1
return 0
/datum/mapGenerator/repressurize
modules = list(/datum/mapGeneratorModule/bottomLayer/repressurize)
/datum/mapGenerator/massdelete
modules = list(/datum/mapGeneratorModule/bottomLayer/massdelete)