//Landmarks and other helpers which speed up the mapping process and reduce the number of unique instances/subtypes of items/turf/ect /obj/effect/baseturf_helper //Set the baseturfs of every turf in the /area/ it is placed. name = "baseturf editor" icon = 'icons/effects/mapping_helpers.dmi' icon_state = "" var/list/baseturf_to_replace var/baseturf layer = POINT_LAYER /obj/effect/baseturf_helper/Initialize() . = ..() return INITIALIZE_HINT_LATELOAD /obj/effect/baseturf_helper/LateInitialize() if(!baseturf_to_replace) baseturf_to_replace = typecacheof(/turf/open/space) 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 if(length(baseturf_cache)) for(var/i in baseturf_cache) if(baseturf_to_replace[i]) baseturf_cache -= i else if(baseturf_to_replace[thing.baseturfs]) thing.assemble_baseturfs(baseturf) return thing.PlaceOnBottom(null, baseturf) /obj/effect/baseturf_helper/space name = "space baseturf editor" baseturf = /turf/open/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 /obj/effect/mapping_helpers icon = 'icons/effects/mapping_helpers.dmi' icon_state = "" /obj/effect/mapping_helpers/Initialize() ..() return INITIALIZE_HINT_QDEL //airlock helpers /obj/effect/mapping_helpers/airlock layer = DOOR_HELPER_LAYER /obj/effect/mapping_helpers/airlock/cyclelink_helper name = "airlock cyclelink helper" icon_state = "airlock_cyclelink_helper" /obj/effect/mapping_helpers/airlock/cyclelink_helper/Initialize(mapload) . = ..() if(!mapload) log_world("### MAP WARNING, [src] spawned outside of mapload!") return var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(airlock) if(airlock.cyclelinkeddir) log_world("### MAP WARNING, [src] at [COORD(src)] tried to set [airlock] cyclelinkeddir, but it's already set!") else airlock.cyclelinkeddir = dir else log_world("### MAP WARNING, [src] failed to find an airlock at [COORD(src)]") /obj/effect/mapping_helpers/airlock/locked name = "airlock lock helper" icon_state = "airlock_locked_helper" /obj/effect/mapping_helpers/airlock/locked/Initialize(mapload) . = ..() if(!mapload) log_world("### MAP WARNING, [src] spawned outside of mapload!") return var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in loc if(airlock) if(airlock.locked) log_world("### MAP WARNING, [src] at [COORD(src)] tried to bolt [airlock] but it's already locked!") else airlock.locked = TRUE else log_world("### MAP WARNING, [src] failed to find an airlock at [COORD(src)]") //needs to do its thing before spawn_rivers() is called INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) /obj/effect/mapping_helpers/no_lava icon_state = "no_lava" /obj/effect/mapping_helpers/no_lava/Initialize() . = ..() var/turf/T = get_turf(src) T.flags_1 |= NO_LAVA_GEN_1 //Contains the list of planetary z-levels defined by the planet_z helper. GLOBAL_LIST_EMPTY(z_is_planet) /obj/effect/mapping_helpers/planet_z //adds the map it is on to the z_is_planet list name = "planet z helper" layer = POINT_LAYER /obj/effect/mapping_helpers/planet_z/Initialize() . = ..() var/turf/T = get_turf(src) GLOB.z_is_planet["[T.z]"] = TRUE