anchor.diff:  	if(ismovable(parent))
   		RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak)
   		RegisterSignal(parent, list(COMSIG_MOVABLE_CROSSED, COMSIG_ITEM_WEARERCROSSED), .proc/play_squeak_crossed)
  +		RegisterSignal(parent, COMSIG_CROSS_SQUEAKED, .proc/delay_squeak)
   		RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react)
   		if(isitem(parent))
   			RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/play_squeak)
  
positive.code: 	else
  		steps++
  
  /datum/component/squeak/proc/play_squeak_crossed(atom/movable/AM)
  	if(isitem(AM))
  		var/obj/item/I = AM
  		if(I.item_flags & ABSTRACT)
  
negative.code: 		use_delay = use_delay_override
  
  /datum/component/squeak/proc/play_squeak()
  	if(last_squeak + squeak_delay < world.time)
  		return
  	last_squeak = world.time
  	if(prob(squeak_chance))
  		if(!override_squeak_sounds)
  			playsound(parent, pickweight(default_squeak_sounds), volume, 1, -1)
  