Starts work on unbreaking CanPass()

This commit is contained in:
Neerti
2019-02-09 20:45:49 -05:00
parent 33efaed83c
commit d880379bbf
10 changed files with 91 additions and 29 deletions

View File

@@ -48,13 +48,10 @@
qdel(src)
return
/obj/machinery/optable/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group || (height==0)) return 1
/obj/machinery/optable/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && mover.checkpass(PASSTABLE))
return 1
else
return 0
return TRUE
return FALSE
/obj/machinery/optable/MouseDrop_T(obj/O as obj, mob/user as mob)

View File

@@ -750,7 +750,7 @@ About the new airlock wires panel:
if (user)
src.attack_ai(user)
/obj/machinery/door/airlock/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
/obj/machinery/door/airlock/CanPass(atom/movable/mover, turf/target)
if (src.isElectrified())
if (istype(mover, /obj/item))
var/obj/item/i = mover

View File

@@ -259,12 +259,14 @@
if(stat & BROKEN)
stat &= ~BROKEN
/obj/machinery/door/blast/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group) return 1
/*
// This replicates the old functionality coded into CanPass() for this object, however it appeared to have made blast doors not airtight.
// If for some reason this is actually needed for something important, uncomment this.
/obj/machinery/door/blast/CanZASPass(turf/T, is_zone)
if(is_zone)
return TRUE
return ..()
*/
// SUBTYPE: Regular
// Your classical blast door, found almost everywhere.

View File

@@ -9,6 +9,7 @@
anchored = 1
opacity = 1
density = 1
can_atmos_pass = ATMOS_PASS_DENSITY
layer = DOOR_OPEN_LAYER
var/open_layer = DOOR_OPEN_LAYER
var/closed_layer = DOOR_CLOSED_LAYER
@@ -135,13 +136,16 @@
else
do_animate("deny")
/obj/machinery/door/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group) return !block_air_zones
/obj/machinery/door/CanPass(atom/movable/mover, turf/target)
if(istype(mover) && mover.checkpass(PASSGLASS))
return !opacity
return !density
/*
/obj/machinery/door/CanZASPass(turf/T, is_zone)
if(is_zone)
return !block_air_zones
return ..()
*/
/obj/machinery/door/proc/bumpopen(mob/user as mob)
if(operating) return
if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit

View File

@@ -25,6 +25,7 @@
density = 1
anchored = 1
opacity = 0
can_atmos_pass = ATMOS_PASS_DENSITY
icon = 'icons/obj/inflatable.dmi'
icon_state = "wall"
@@ -40,9 +41,6 @@
update_nearby_tiles()
return ..()
/obj/structure/inflatable/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
return 0
/obj/structure/inflatable/bullet_act(var/obj/item/projectile/Proj)
var/proj_damage = Proj.get_structure_damage()
if(!proj_damage) return
@@ -168,9 +166,7 @@
/obj/structure/inflatable/door/attack_hand(mob/user as mob)
return TryToSwitchState(user)
/obj/structure/inflatable/door/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(air_group)
return state
/obj/structure/inflatable/door/CanPass(atom/movable/mover, turf/target)
if(istype(mover, /obj/effect/beam))
return !opacity
return !density