anchor.diff:  #define DISPOSALS_CATEGORY 1
   #define TRANSIT_CATEGORY 2
   
  -#define BUILD_MODE 1
  -#define WRENCH_MODE 2
  -#define DESTROY_MODE 4
  -#define PAINT_MODE 8
  +#define BUILD_MODE (1<<0)
  +#define WRENCH_MODE (1<<1)
  +#define DESTROY_MODE (1<<2)
  +#define PAINT_MODE (1<<3)
   
   
   GLOBAL_LIST_INIT(atmos_pipe_recipes, list(
   	"Pipes" = list(
   		new /datum/pipe_info/pipe("Pipe",				/obj/machinery/atmospherics/pipe/simple),
   		new /datum/pipe_info/pipe("Manifold",			/obj/machinery/atmospherics/pipe/manifold),
  -		new /datum/pipe_info/pipe("Manual Valve",		/obj/machinery/atmospherics/components/binary/valve),
  -		new /datum/pipe_info/pipe("Digital Valve",		/obj/machinery/atmospherics/components/binary/valve/digital),
   		new /datum/pipe_info/pipe("4-Way Manifold",		/obj/machinery/atmospherics/pipe/manifold4w),
   		new /datum/pipe_info/pipe("Layer Manifold",		/obj/machinery/atmospherics/pipe/layer_manifold),
   	),
   	"Devices" = list(
   		new /datum/pipe_info/pipe("Connector",			/obj/machinery/atmospherics/components/unary/portables_connector),
  -		new /datum/pipe_info/pipe("Unary Vent",			/obj/machinery/atmospherics/components/unary/vent_pump),
   		new /datum/pipe_info/pipe("Gas Pump",			/obj/machinery/atmospherics/components/binary/pump),
  -		new /datum/pipe_info/pipe("Passive Gate",		/obj/machinery/atmospherics/components/binary/passive_gate),
   		new /datum/pipe_info/pipe("Volume Pump",		/obj/machinery/atmospherics/components/binary/volume_pump),
  -		new /datum/pipe_info/pipe("Scrubber",			/obj/machinery/atmospherics/components/unary/vent_scrubber),
  -		new /datum/pipe_info/pipe("Injector",			/obj/machinery/atmospherics/components/unary/outlet_injector),
  -		new /datum/pipe_info/pipe("Passive Vent",		/obj/machinery/atmospherics/components/unary/passive_vent),
  -		new /datum/pipe_info/meter("Meter"),
   		new /datum/pipe_info/pipe("Gas Filter",			/obj/machinery/atmospherics/components/trinary/filter),
   		new /datum/pipe_info/pipe("Gas Mixer",			/obj/machinery/atmospherics/components/trinary/mixer),
  +		new /datum/pipe_info/pipe("Passive Gate",		/obj/machinery/atmospherics/components/binary/passive_gate),
  +		new /datum/pipe_info/pipe("Injector",			/obj/machinery/atmospherics/components/unary/outlet_injector),
  +		new /datum/pipe_info/pipe("Scrubber",			/obj/machinery/atmospherics/components/unary/vent_scrubber),
  +		new /datum/pipe_info/pipe("Unary Vent",			/obj/machinery/atmospherics/components/unary/vent_pump),
  +		new /datum/pipe_info/pipe("Passive Vent",		/obj/machinery/atmospherics/components/unary/passive_vent),
  +		new /datum/pipe_info/pipe("Manual Valve",		/obj/machinery/atmospherics/components/binary/valve),
  +		new /datum/pipe_info/pipe("Digital Valve",		/obj/machinery/atmospherics/components/binary/valve/digital),
  +		new /datum/pipe_info/meter("Meter"),
   	),
   	"Heat Exchange" = list(
   		new /datum/pipe_info/pipe("Pipe",				/obj/machinery/atmospherics/pipe/heat_exchanging/simple),
  
positive.code: 			qdel(A)
  		return
  
  	if((mode&PAINT_MODE))
  		if(istype(A, /obj/machinery/atmospherics/pipe) && !istype(A, /obj/machinery/atmospherics/pipe/layer_manifold))
  			var/obj/machinery/atmospherics/pipe/P = A
  			to_chat(user, "<span class='notice'>You start painting \the [P] [paint_color]...</span>")
  
negative.code: 	var/static/list/make_pipe_whitelist
  	if(!make_pipe_whitelist)
  		make_pipe_whitelist = typecacheof(list(/obj/structure/lattice, /obj/structure/girder, /obj/item/pipe, /obj/structure/window, /obj/structure/grille))
  	if(istype(A, /obj/machinery/atmospherics) && (mode & BUILD_MODE && !(mode & PAINT_MODE))) //Reduces pixelhunt when coloring is off.
  		A = get_turf(A)
  	var/can_make_pipe = (isturf(A) || is_type_in_typecache(A, make_pipe_whitelist))
  
  	. = TRUE
  
  	if((mode & DESTROY_MODE) && istype(A, /obj/item/pipe) || istype(A, /obj/structure/disposalconstruct) || istype(A, /obj/structure/c_transit_tube) || istype(A, /obj/structure/c_transit_tube_pod) || istype(A, /obj/item/pipe_meter))
  		to_chat(user, "<span class='notice'>You start destroying a pipe...</span>")
  		playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE)
  		if(do_after(user, destroy_speed, target = A))
  