Files
CHOMPStation2/modular_chomp/code/game/objects/random/mapping.dm
2023-04-30 15:49:35 +12:00

127 lines
3.8 KiB
Plaintext

//Buncha mapping helpers to make some map work easier
//idk where better to put this lmao
#define Z_TURFS(ZLEVEL) block(locate(1,1,ZLEVEL), locate(world.maxx, world.maxy, ZLEVEL))
/obj/effect/map_helper
icon = 'icons/misc/map_helpers.dmi'
/obj/effect/map_helper/Initialize()
. = ..()
return INITIALIZE_HINT_LATELOAD
/obj/effect/map_helper/LateInitialize()
qdel(src)
/obj/effect/map_helper/base_turf
name = "z-wide baseturf editor"
desc = "I set the provided 'baseturf' to the whole z-level I'm in!"
var/baseturf
/obj/effect/map_helper/base_turf/LateInitialize()
if(baseturf)
using_map.base_turf_by_z["[z]"] = baseturf
qdel(src)
/obj/effect/map_helper/base_turf/area
name = "area-wide baseturf editor"
desc = "I set the provided 'baseturf' var to the whole /area I'm in!"
/obj/effect/map_helper/base_turf/area/LateInitialize()
var/area/our_area = get_area(src)
if(our_area)
our_area.base_turf = baseturf
qdel(src)
/obj/effect/map_helper/no_tele
name = "z-wide teleport block"
desc = "I disable the use of all hand tele's/translocators/bluespace harpoons/telescience in my z-level!"
/obj/effect/map_helper/no_tele/LateInitialize()
/* Wait this doesn't work. Why did I write this.
Until I can figure out a way to get all areas in a z-level I'm just gonna let block_tele handle it instead.
for(var/area/A in world)
if(A.z) //find some way to filter by z-level here, which is stupid since areas can exist in multiple z-levels at once
A.flags += BLUE_SHIELDED
*/
for(var/turf/T in Z_TURFS(z))
T.block_tele = 1
qdel(src)
/obj/effect/map_helper/no_tele/area
name = "area-wide teleport block"
desc = "I disable the use of all hand tele's/translocators/bluespace harpoons/telescience in my area!"
/obj/effect/map_helper/no_tele/area/LateInitialize()
var/area/A = get_area(src)
if(A)
A.flags |= BLUE_SHIELDED
for(var/turf/T in A.contents)
T.block_tele = 1
qdel(src)
/obj/effect/map_helper/make_indoors
name = "z-wide indoors maker"
desc = "I forcibly call make_indoors on every turf on this z-level. Useful for admin late loading maps to fix lighting!"
/obj/effect/map_helper/make_indoors/LateInitialize()
for(var/turf/simulated/T in Z_TURFS(z))
T.make_indoors()
qdel(src)
/obj/effect/map_helper/make_indoors/area
name = "Area indoors maker"
desc = "I forcibly call make_indoors on every turf in this area."
/obj/effect/map_helper/make_indoors/area/LateInitialize()
var/area/A = get_area(src)
if(A)
for(var/turf/simulated/T in A.contents)
T.make_indoors()
qdel(src)
/obj/effect/map_helper/make_outdoors
name = "z-wide outdoors maker"
desc = "I forcibly call make_outdoors on every turf on this z-level."
/obj/effect/map_helper/make_outdoors/LateInitialize()
for(var/turf/simulated/T in Z_TURFS(z))
T.make_outdoors()
qdel(src)
/obj/effect/map_helper/make_outdoors/area
name = "Area outdoors maker"
desc = "I forcibly call make_outdoors on every turf in this area."
/obj/effect/map_helper/make_outdoors/area/LateInitialize()
var/area/A = get_area(src)
if(A)
for(var/turf/simulated/T in A.contents)
T.make_outdoors()
qdel(src)
/*
Make this if you can figure out a way to do it for every area in that z level exclusively
/obj/effect/map_helper/no_phaseshift
name = "area-wide teleport block"
desc = "I disable the use of all hand tele's/translocators/bluespace harpoons/telescience in my area!"
/obj/effect/map_helper/no_phaseshift/LateInitialize()
var/area/A = get_area(src)
if(A)
A.flags += BLUE_SHIELDED
for(var/turf/T in A.contents)
T.block_tele = 1
qdel(src)
*/
/obj/effect/map_helper/no_phaseshift/area
name = "area-wide phaseshift blocker"
desc = "I disable the use of both shadekin and redspace phasing!"
/obj/effect/map_helper/no_phaseshift/area/LateInitialize()
var/area/A = get_area(src)
if(A)
A.flags |= PHASE_SHIELDED
qdel(src)