mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 17:52:36 +00:00
164 lines
4.9 KiB
Plaintext
164 lines
4.9 KiB
Plaintext
//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/baseturf = null
|
|
layer = POINT_LAYER
|
|
|
|
/obj/effect/baseturf_helper/Initialize()
|
|
. = ..()
|
|
var/area/thearea = get_area(src)
|
|
for(var/turf/T in get_area_turfs(thearea, z))
|
|
replace_baseturf(T)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/baseturf_helper/proc/replace_baseturf(turf/thing)
|
|
if(thing.baseturfs != thing.type)
|
|
thing.baseturfs = 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
|
|
|
|
// Does the same thing as baseturf_helper but only the specified kinds of turf (the kind it's placed on or varedited)
|
|
/obj/effect/baseturf_helper/picky
|
|
var/list/whitelist
|
|
// Can be mapedited as: a single type, a list of types, or a typecache-like list
|
|
// The first 2 make a typecache of the given values
|
|
// The last uses it as is
|
|
|
|
/obj/effect/baseturf_helper/picky/Initialize()
|
|
if(!whitelist)
|
|
whitelist = list(loc.type)
|
|
else if(!islist(whitelist))
|
|
whitelist = list(whitelist)
|
|
else if(whitelist[whitelist[1]]) // Checking if it's a typecache-like list
|
|
return ..()
|
|
whitelist = typecacheof(whitelist)
|
|
return ..()
|
|
|
|
/obj/effect/baseturf_helper/picky/replace_baseturf(turf/thing)
|
|
if(!whitelist[thing.type])
|
|
return
|
|
return ..()
|
|
|
|
/obj/effect/baseturf_helper/picky/lava_land/plating
|
|
name = "picky lavaland plating baseturf helper"
|
|
baseturf = /turf/open/floor/plating/lavaland_baseturf
|
|
|
|
/obj/effect/baseturf_helper/picky/lava_land/basalt
|
|
name = "picky lavaland basalt baseturf helper"
|
|
baseturf = /turf/open/floor/plating/asteroid/basalt/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
|
|
|