mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 03:02:54 +00:00
Multi-Z code formatting and utilities.
* Global procs should start with /proc * Use to_chat() macro * Added utility to find all z-levels are connected (transitively adjacent) and utility to test if two levels are connected.
This commit is contained in:
@@ -42,6 +42,8 @@
|
|||||||
|
|
||||||
#define isxeno(A) istype(A, /mob/living/simple_animal/xeno)
|
#define isxeno(A) istype(A, /mob/living/simple_animal/xeno)
|
||||||
|
|
||||||
|
#define isopenspace(A) istype(A, /turf/simulated/open)
|
||||||
|
|
||||||
#define isweakref(A) istype(A, /weakref)
|
#define isweakref(A) istype(A, /weakref)
|
||||||
|
|
||||||
#define RANDOM_BLOOD_TYPE pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+")
|
#define RANDOM_BLOOD_TYPE pick(4;"O-", 36;"O+", 3;"A-", 28;"A+", 1;"B-", 20;"B+", 1;"AB-", 5;"AB+")
|
||||||
|
|||||||
@@ -11,25 +11,35 @@ var/z_levels = 0 // Each bit represents a connection between adjacent levels. S
|
|||||||
qdel(src)
|
qdel(src)
|
||||||
|
|
||||||
// The storage of connections between adjacent levels means some bitwise magic is needed.
|
// The storage of connections between adjacent levels means some bitwise magic is needed.
|
||||||
proc/HasAbove(var/z)
|
/proc/HasAbove(var/z)
|
||||||
if(z >= world.maxz || z > 16 || z < 1)
|
if(z >= world.maxz || z > 16 || z < 1)
|
||||||
return 0
|
return 0
|
||||||
return z_levels & (1 << (z - 1))
|
return z_levels & (1 << (z - 1))
|
||||||
|
|
||||||
proc/HasBelow(var/z)
|
/proc/HasBelow(var/z)
|
||||||
if(z > world.maxz || z > 17 || z < 2)
|
if(z > world.maxz || z > 17 || z < 2)
|
||||||
return 0
|
return 0
|
||||||
return z_levels & (1 << (z - 2))
|
return z_levels & (1 << (z - 2))
|
||||||
|
|
||||||
// Thankfully, no bitwise magic is needed here.
|
// Thankfully, no bitwise magic is needed here.
|
||||||
proc/GetAbove(var/atom/atom)
|
/proc/GetAbove(var/atom/atom)
|
||||||
var/turf/turf = get_turf(atom)
|
var/turf/turf = get_turf(atom)
|
||||||
if(!turf)
|
if(!turf)
|
||||||
return null
|
return null
|
||||||
return HasAbove(turf.z) ? get_step(turf, UP) : null
|
return HasAbove(turf.z) ? get_step(turf, UP) : null
|
||||||
|
|
||||||
proc/GetBelow(var/atom/atom)
|
/proc/GetBelow(var/atom/atom)
|
||||||
var/turf/turf = get_turf(atom)
|
var/turf/turf = get_turf(atom)
|
||||||
if(!turf)
|
if(!turf)
|
||||||
return null
|
return null
|
||||||
return HasBelow(turf.z) ? get_step(turf, DOWN) : null
|
return HasBelow(turf.z) ? get_step(turf, DOWN) : null
|
||||||
|
|
||||||
|
/proc/GetConnectedZlevels(z)
|
||||||
|
. = list(z)
|
||||||
|
for(var/level = z, HasBelow(level), level--)
|
||||||
|
. |= level-1
|
||||||
|
for(var/level = z, HasAbove(level), level++)
|
||||||
|
. |= level+1
|
||||||
|
|
||||||
|
proc/AreConnectedZLevels(var/zA, var/zB)
|
||||||
|
return zA == zB || (zB in GetConnectedZlevels(zA))
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ obj/machinery/atmospherics/pipe/zpipe
|
|||||||
dir = SOUTH
|
dir = SOUTH
|
||||||
initialize_directions = SOUTH
|
initialize_directions = SOUTH
|
||||||
|
|
||||||
|
// node1 is the connection on the same Z
|
||||||
|
// node2 is the connection on the other Z
|
||||||
|
|
||||||
var/minimum_temperature_difference = 300
|
var/minimum_temperature_difference = 300
|
||||||
var/thermal_conductivity = 0 //WALL_HEAT_TRANSFER_COEFFICIENT No
|
var/thermal_conductivity = 0 //WALL_HEAT_TRANSFER_COEFFICIENT No
|
||||||
|
|
||||||
|
|||||||
@@ -122,10 +122,6 @@
|
|||||||
allowed_directions = UP|DOWN
|
allowed_directions = UP|DOWN
|
||||||
icon_state = "ladder11"
|
icon_state = "ladder11"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/obj/structure/stairs
|
/obj/structure/stairs
|
||||||
name = "Stairs"
|
name = "Stairs"
|
||||||
desc = "Stairs leading to another deck. Not too useful if the gravity goes out."
|
desc = "Stairs leading to another deck. Not too useful if the gravity goes out."
|
||||||
|
|||||||
@@ -82,7 +82,7 @@
|
|||||||
return
|
return
|
||||||
var/obj/item/stack/rods/R = C
|
var/obj/item/stack/rods/R = C
|
||||||
if (R.use(1))
|
if (R.use(1))
|
||||||
user << "<span class='notice'>Constructing support lattice ...</span>"
|
to_chat(user, "<span class='notice'>Constructing support lattice ...</span>")
|
||||||
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
|
playsound(src, 'sound/weapons/Genhit.ogg', 50, 1)
|
||||||
ReplaceWithLattice()
|
ReplaceWithLattice()
|
||||||
return
|
return
|
||||||
@@ -99,7 +99,7 @@
|
|||||||
ChangeTurf(/turf/simulated/floor/airless)
|
ChangeTurf(/turf/simulated/floor/airless)
|
||||||
return
|
return
|
||||||
else
|
else
|
||||||
user << "<span class='warning'>The plating is going to need some support.</span>"
|
to_chat(user, "<span class='warning'>The plating is going to need some support.</span>")
|
||||||
|
|
||||||
//To lay cable.
|
//To lay cable.
|
||||||
if(istype(C, /obj/item/stack/cable_coil))
|
if(istype(C, /obj/item/stack/cable_coil))
|
||||||
|
|||||||
Reference in New Issue
Block a user