mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
127 lines
3.8 KiB
Plaintext
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) |