'Unrestricted access from direction' for windoors (#16501)

* Unrestricted Windoor Directions

* Mapping helpers
This commit is contained in:
SabreML
2021-08-12 13:05:42 +01:00
committed by GitHub
parent f8073907eb
commit 5cd4e55063
4 changed files with 18 additions and 9 deletions
+1 -1
View File
@@ -40,7 +40,6 @@
#define BELOW_OPEN_DOOR_LAYER 2.6
#define BLASTDOOR_LAYER 2.65
#define OPEN_DOOR_LAYER 2.7
#define DOOR_HELPER_LAYER 2.71 //keep this above OPEN_DOOR_LAYER
#define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible
#define TABLE_LAYER 2.8
#define BELOW_OBJ_LAYER 2.9
@@ -52,6 +51,7 @@
#define SHUTTER_LAYER 3.12 // HERE BE DRAGONS
#define ABOVE_OBJ_LAYER 3.2
#define ABOVE_WINDOW_LAYER 3.3
#define DOOR_HELPER_LAYER 3.31 // Keep this above doors and windoors
#define SIGN_LAYER 3.4
#define NOT_HIGH_OBJ_LAYER 3.5
#define HIGH_OBJ_LAYER 3.6
+7
View File
@@ -85,6 +85,13 @@
else
do_animate("deny")
/obj/machinery/door/window/unrestricted_side(mob/M)
var/mob_dir = get_dir(src, M)
if(mob_dir == 0) // If the mob is inside the tile
mob_dir = GetOppositeDir(dir) // Set it to the inside direction of the windoor
return mob_dir & unres_sides
/obj/machinery/door/window/CanPass(atom/movable/mover, turf/target, height=0)
if(istype(mover) && mover.checkpass(PASSGLASS))
return 1
+9 -8
View File
@@ -67,6 +67,11 @@
/obj/effect/mapping_helpers/no_lava
icon_state = "no_lava"
/obj/effect/mapping_helpers/no_lava/New()
var/turf/T = get_turf(src)
T.flags |= NO_LAVA_GEN
..()
/obj/effect/mapping_helpers/airlock
layer = DOOR_HELPER_LAYER
@@ -78,13 +83,9 @@
if(!mapload)
log_world("### MAP WARNING, [src] spawned outside of mapload!")
return
var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in src.loc
if(airlock)
airlock.unres_sides ^= dir
var/obj/machinery/door/door = locate(/obj/machinery/door) in loc
if(door)
door.unres_sides ^= dir
else
log_world("### MAP WARNING, [src] failed to find an airlock at [AREACOORD(src)]")
..()
/obj/effect/mapping_helpers/no_lava/New()
var/turf/T = get_turf(src)
T.flags |= NO_LAVA_GEN
. = ..()
..()
@@ -203,6 +203,7 @@
windoor.req_one_access = electronics.selected_accesses
else
windoor.req_access = electronics.selected_accesses
windoor.unres_sides = electronics.unres_access_from
windoor.electronics = src.electronics
electronics.forceMove(windoor)
electronics = null