From c6d6bdcb5822b4f1ecf54c68ba07e56704ef4743 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sat, 28 Jun 2014 14:05:44 +0400 Subject: [PATCH] Added system for overmap building. -metaboject with zlevel info that should be placed on sector/ship zlevel -overmap object that represents a map zlevel -startup hook for building the overmap --- .../WorkInProgress/Chinsky/overmap/sectors.dm | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 code/WorkInProgress/Chinsky/overmap/sectors.dm diff --git a/code/WorkInProgress/Chinsky/overmap/sectors.dm b/code/WorkInProgress/Chinsky/overmap/sectors.dm new file mode 100644 index 0000000000..b6e5ed2e67 --- /dev/null +++ b/code/WorkInProgress/Chinsky/overmap/sectors.dm @@ -0,0 +1,93 @@ +#define OVERMAP_ZLEVEL 1 +//=================================================================================== +//Metaobject for storing information about sector this zlevel is representing. +//Should be placed only once on every zlevel. +//=================================================================================== +/obj/effect/mapinfo/ + name = "map info metaobject" + icon = 'icons/mob/screen1.dmi' + icon_state = "x2" + invisibility = 101 + var/obj_type //type of overmap object it spawns + var/zlevel + var/mapx //coordinates on the + var/mapy //overmap zlevel + +/obj/effect/mapinfo/New() + tag = "sector[z]" + zlevel = z + loc = null + +/obj/effect/mapinfo/sector + name = "generic sector" + desc = "Space sector with some stuff in it." + obj_type = /obj/effect/map/sector + +/obj/effect/mapinfo/ship + name = "generic ship" + desc = "Space faring vessel." + obj_type = /obj/effect/map/ship + +/obj/effect/mapinfo/ship/relaymove(var/mob/user, direction) + step(src,direction) +//=================================================================================== +//Overmap object representing zlevel +//=================================================================================== +/obj/effect/map + name = "map object" + var/map_z = 0 + +/obj/effect/map/New(var/obj/effect/mapinfo/data) + name = data.name + desc = data.desc + map_z = data.zlevel + icon = data.icon + icon_state = data.icon_state + var/new_x = data.mapx + if (!new_x) + new_x = rand(1,world.maxx) + var/new_y = data.mapy + if (!new_y) + new_y = rand(1,world.maxy) + loc = locate(new_x, new_y, OVERMAP_ZLEVEL) + +/obj/effect/map/CanPass(atom/movable/A) + testing("[A] attempts to enter sector\"[name]\"") + if(prob(50)) + testing("[A] was denied access to sector\"[name]\"") + return 0 + return 1 + +/obj/effect/map/Crossed(atom/movable/A) + testing("[A] has entered sector\"[name]\"") + +/obj/effect/map/Uncrossed(atom/movable/A) + testing("[A] has left sector\"[name]\"") + +/obj/effect/map/sector + name = "generic sector" + desc = "Sector with some stuff in it." + anchored = 1 + +/obj/effect/map/ship + name = "generic ship" + desc = "Space faring vessel." + density = 1 + +/obj/effect/map/ship/relaymove(mob/user, direction) + step(src, direction) + +//=================================================================================== +//Hook for building overmap +//=================================================================================== +var/global/list/map_sectors = list() + +/hook/startup/proc/build_map() + testing("Building overmap...") + var/obj/effect/mapinfo/data + for(var/level in 1 to world.maxz) + data = locate("sector[level]") + if (data) + testing("Located sector \"[data.name]\" at [data.mapx],[data.mapy] corresponding to zlevel [level]") + map_sectors["[level]"] = new data.obj_type(data) + return 1