Files
siliconsandGitHub c93dd0afe6 virtual level helpers for mapping subsystem (#7488)
used to go in directions when levels are stitched together across
z-levels
2026-01-16 23:57:55 +00:00

29 lines
1.1 KiB
Plaintext

//* This file is explicitly licensed under the MIT license. *//
//* Copyright (c) 2024 Citadel Station Developers *//
/**
* Get virtual distance between two turfs.
* * Does not check vertical distance.
* * Ignores up / down / vertical directions.
*/
/datum/controller/subsystem/mapping/proc/get_virtual_horizontal_dist(turf/A, turf/B)
var/datum/map_level/level_a = ordered_levels[A.z]
var/datum/map_level/level_b = ordered_levels[B.z]
return max(
abs((level_a.virtual_alignment_x + A.x) - (level_b.virtual_alignment_x + B.x)),
abs((level_a.virtual_alignment_y + A.y) - (level_b.virtual_alignment_y + B.y)),
)
/**
* Get virtual distance between two turfs.
* * Does not check vertical distance.
* * Ignores up / down / vertical directions.
*/
/datum/controller/subsystem/mapping/proc/get_virtual_horizontal_euclidean_dist(turf/A, turf/B)
var/datum/map_level/level_a = ordered_levels[A.z]
var/datum/map_level/level_b = ordered_levels[B.z]
return sqrt(
((level_a.virtual_alignment_x + A.x) - (level_b.virtual_alignment_x + B.x)) ** 2 + \
((level_a.virtual_alignment_y + A.y) - (level_b.virtual_alignment_y + B.y)) ** 2
)