anchor.diff:  
   //set_machine must be 0 if clicking the machinery doesn't bring up a dialog
   /obj/machinery/attack_hand(mob/user, check_power = 1, set_machine = 1)
  +	if(..())// unbuckling etc
  +		return 1 
   	if(user.lying || user.stat)
   		return 1
   	if(!user.IsAdvancedToolUser())
  
positive.code: 			var/obj/item/weapon/circuitboard/CB = locate(/obj/item/weapon/circuitboard) in component_parts
  			var/P
  			if(W.works_from_distance)
  				display_parts(user)
  			for(var/obj/item/weapon/stock_parts/A in component_parts)
  				for(var/D in CB.req_components)
  					if(ispath(A.type, D))
  
negative.code: 							break
  			RefreshParts()
  		else
  			user << "<span class='notice'>Following parts detected in the machine:</span>"
  			for(var/var/obj/item/C in component_parts)
  				user << "<span class='notice'>   [C.name]</span>"
  		if(shouldplaysound)
  			W.play_rped_sound()
  		return 1
  	return 0
  
  //called on machinery construction (i.e from frame to machinery) but not on initialization
  /obj/machinery/proc/construction()
  