anchor.diff:  		if(!L.put_in_hands(sigdev))
   			sigdev.forceMove(get_turf(src))
   		sigdev = null
  -	. = ..()
  +	return ..()
   
   /obj/item/device/pressure_plate/hide(yes)
   	if(yes)
  
positive.code: 			hide(TRUE)
  
  /obj/item/device/pressure_plate/Crossed(atom/movable/AM)
  	if(!active)
  		return
  	if(isliving(AM) && trigger_mob)
  		var/mob/living/L = AM
  		step_living(L)
  		crossed = TRUE
  	else if(trigger_item)
  		step_item(AM)
  		crossed = TRUE
  	if(!trigger_silent)
  		if(isturf(loc))
  			loc.visible_message("<span class='danger'>Click!</span>")
  			playsound(loc, trigger_sound, 50, 1)
  	. = ..()
  
  /obj/item/device/pressure_plate/Uncrossed(atom/movable/AM)
  	if(crossed)
  		playsound(loc, trigger_sound, 50, 1)
  		if(isliving(AM))
  			var/mob/living/L = AM
  			to_chat(L, "<span class='warning'>You feel something click back into place as you step off [loc]!</span>")
  		addtimer(CALLBACK(src, .proc/trigger), trigger_delay)
  	. = ..()
  
  /obj/item/device/pressure_plate/proc/trigger()
  	if(istype(sigdev))
  		sigdev.signal()
  
  /obj/item/device/pressure_plate/proc/step_living(mob/living/L)
  	to_chat(L, "<span class='warning'>You feel a click under your feet!</span>")
  
  /obj/item/device/pressure_plate/proc/step_item(atom/movable/AM)
  	return
  
  /obj/item/device/pressure_plate/attackby(obj/item/I, mob/living/L)
  	if(istype(I, /obj/item/device/assembly/signaler) && !istype(sigdev) && removable_signaller && L.transferItemToLoc(I, src))
  		sigdev = I
  		to_chat(L, "<span class='notice'>You attach [I] to [src]!</span>")
  	. = ..()
  
  /obj/item/device/pressure_plate/attack_self(mob/living/L)
  	if(removable_signaller && istype(sigdev))
  
negative.code: 		anchored = TRUE
  		icon_state = null
  		active = TRUE
  		can_trigger = TRUE
  		if(tile_overlay)
  			loc.add_overlay(tile_overlay)
  	else
  		invisibility = initial(invisibility)
  		anchored = FALSE
  		icon_state = initial(icon_state)
  