
Building Generator - DM
By:
MeekMill on
Jun 22nd, 2012 | syntax:
None | size: 1.01 KB | hits: 33 | expires: Never
/*
* Random City Generator v1.0.0
*
* @author: Desean Jackson "Meek Mill"
* @date: June 22,2012
*
*/
world/New()
..()
spawn(1) generateBuildings()
proc
generateBuildings()
var/building_location = locate(/area/building_location)
for(var/area/building_location/b in world) for(var/x in global.get_boxes(building_location))
var/height = rand(2, 5), width = 5, turf/pick
for(var/turf/y in x)
if(y.x >= (pick ? pick.x : world.maxx)) continue
pick = y
for(var/turf/y in block(pick, locate(pick.x + width - 1, pick.y + height - 1, pick.z)))
new/turf/building(y)
get_boxes(area/a)
. = new/list()
main:
for(var/turf/t in a)
for(var/x in .) for(var/y in x)
if(y == t) continue main
. += null
.[length(.)] = new/list
global.get_touch(t, a, .[length(.)])
get_touch(turf/t, area/a, array[])
for(var/turf/x in range(1, t))
if( (x.loc != a) || (x in array) ) continue
array += x
.(x, a, array)
#define DEBUG