Adds area generators to build mode - Take 2

Adds two generators : Asteroid and Syndicate
This commit is contained in:
AnturK
2015-05-22 04:58:56 -07:00
committed by Tigercat2000
parent c43489a506
commit 28e952dc8c
5 changed files with 274 additions and 114 deletions

View File

@@ -0,0 +1,64 @@
//Border walls
/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(var/turf/T)
for(var/direction in list(SOUTH,EAST,WEST,NORTH))
if (get_step(T,direction) in mother.map)
continue
return 1
return 0
//Asteroid turfs
/datum/mapGeneratorModule/bottomLayer/asteroidTurfs
spawnableTurfs = list(/turf/simulated/floor/plating/airless/asteroid = 100)
/datum/mapGeneratorModule/bottomLayer/asteroidWalls
spawnableTurfs = list(/turf/simulated/mineral = 100)
//Border walls
/datum/mapGeneratorModule/border/asteroidWalls
spawnableAtoms = list()
spawnableTurfs = list(/turf/simulated/mineral = 100)
//Random walls
/datum/mapGeneratorModule/splatterLayer/asteroidWalls
clusterCheckFlags = CLUSTER_CHECK_NONE
spawnableAtoms = list()
spawnableTurfs = list(/turf/simulated/mineral = 30)
//Monsters
/datum/mapGeneratorModule/splatterLayer/asteroidMonsters
spawnableTurfs = list()
spawnableAtoms = list(/mob/living/simple_animal/hostile/asteroid/basilisk = 10, \
/mob/living/simple_animal/hostile/asteroid/hivelord = 10, \
/mob/living/simple_animal/hostile/asteroid/goliath = 10)
// GENERATORS
/datum/mapGenerator/asteroid/hollow
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \
/datum/mapGeneratorModule/border/asteroidWalls)
/datum/mapGenerator/asteroid/hollow/random
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \
/datum/mapGeneratorModule/border/asteroidWalls, \
/datum/mapGeneratorModule/splatterLayer/asteroidWalls)
/datum/mapGenerator/asteroid/hollow/random/monsters
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidTurfs, \
/datum/mapGeneratorModule/border/asteroidWalls, \
/datum/mapGeneratorModule/splatterLayer/asteroidWalls, \
/datum/mapGeneratorModule/splatterLayer/asteroidMonsters)
/datum/mapGenerator/asteroid/filled
modules = list(/datum/mapGeneratorModule/bottomLayer/asteroidWalls)

View File

@@ -0,0 +1,44 @@
// Modules
/turf/simulated/shuttle/floor/syndicate //TODO: move to proper file/replace syndie shuttle turfs
icon_state = "floor4"
/datum/mapGeneratorModule/bottomLayer/syndieFloor
spawnableTurfs = list(/turf/simulated/shuttle/floor/syndicate = 100)
/datum/mapGeneratorModule/border/syndieWalls
spawnableAtoms = list()
spawnableTurfs = list(/turf/simulated/wall/r_wall = 100)
/datum/mapGeneratorModule/bottomLayer/repressurize
// Helper to repressurize the area in case it was run in space
spawnableAtoms = list()
spawnableTurfs = list()
/datum/mapGeneratorModule/bottomLayer/repressurize/generate()
if(!mother)
return
var/list/map = mother.map
for(var/turf/simulated/T in map)
air_master.remove_from_active(T)
for(var/turf/simulated/T in map)
if(T.air)
T.air.oxygen = T.oxygen
T.air.nitrogen = T.nitrogen
T.air.carbon_dioxide = T.carbon_dioxide
T.air.toxins = T.toxins
T.air.temperature = T.temperature
air_master.add_to_active(T)
// Generators
/datum/mapGenerator/syndicate/empty //walls and floor only
modules = list(/datum/mapGeneratorModule/bottomLayer/syndieFloor, \
/datum/mapGeneratorModule/border/syndieWalls,\
/datum/mapGeneratorModule/bottomLayer/repressurize)
/*
/datum/mapGenerator/syndicate/syndiesonly //walls/floors + mobs
/datum/mapGenerator/syndicate/full //doors + random equipment
*/