Files
2023-01-05 19:13:13 -08:00

84 lines
2.6 KiB
Plaintext

/obj/effect/baseturf_helper //Set the baseturfs of every turf in the /area/ it is placed.
name = "baseturf editor"
icon = 'icons/mapping/helpers/mapping_helpers.dmi'
icon_state = ""
var/list/baseturf_to_replace
var/baseturf
layer = ABOVE_WINDOW_LAYER
/obj/effect/baseturf_helper/Initialize(mapload)
. = ..()
return INITIALIZE_HINT_LATELOAD
/obj/effect/baseturf_helper/LateInitialize()
if(!baseturf_to_replace)
baseturf_to_replace = typecacheof(list(/turf/space, /turf/baseturf_bottom))
else if(!length(baseturf_to_replace))
baseturf_to_replace = list(baseturf_to_replace = TRUE)
else if(baseturf_to_replace[baseturf_to_replace[1]] != TRUE) // It's not associative
var/list/formatted = list()
for(var/i in baseturf_to_replace)
formatted[i] = TRUE
baseturf_to_replace = formatted
var/area/our_area = get_area(src)
for(var/i in get_area_turfs(our_area, z))
replace_baseturf(i)
qdel(src)
/obj/effect/baseturf_helper/proc/replace_baseturf(turf/thing)
var/list/baseturf_cache = thing.baseturfs
// todo: this is janky as fuck and at the very least need comments
if(length(baseturf_cache))
for(var/i in baseturf_cache)
if(baseturf_to_replace[i])
baseturf_cache -= i
if(!baseturf_cache.len)
thing.assemble_baseturfs(baseturf)
else
thing.PlaceOnBottom(null, baseturf)
else if(baseturf_to_replace[thing.baseturfs])
thing.assemble_baseturfs(baseturf)
else
thing.PlaceOnBottom(null, baseturf)
/obj/effect/baseturf_helper/space
name = "space baseturf editor"
baseturf = /turf/space
// /obj/effect/baseturf_helper/asteroid
// name = "asteroid baseturf editor"
// baseturf = /turf/open/floor/plating/asteroid
// /obj/effect/baseturf_helper/asteroid/airless
// name = "asteroid airless baseturf editor"
// baseturf = /turf/open/floor/plating/asteroid/airless
// /obj/effect/baseturf_helper/asteroid/basalt
// name = "asteroid basalt baseturf editor"
// baseturf = /turf/open/floor/plating/asteroid/basalt
// /obj/effect/baseturf_helper/asteroid/snow
// name = "asteroid snow baseturf editor"
// baseturf = /turf/open/floor/plating/asteroid/snow
// /obj/effect/baseturf_helper/beach/sand
// name = "beach sand baseturf editor"
// baseturf = /turf/open/floor/plating/beach/sand
// /obj/effect/baseturf_helper/beach/water
// name = "water baseturf editor"
// baseturf = /turf/open/floor/plating/beach/water
// /obj/effect/baseturf_helper/lava
// name = "lava baseturf editor"
// baseturf = /turf/open/lava/smooth
// /obj/effect/baseturf_helper/lava_land/surface
// name = "lavaland baseturf editor"
// baseturf = /turf/open/lava/smooth/lava_land_surface