anchor.diff: -/obj/machinery/portable_atmospherics/canister
  -	name = "canister"
  -	icon = 'icons/obj/atmos.dmi'
  -	icon_state = "yellow"
  -	density = 1
  -	var/health = 100.0
  -	flags = CONDUCT
  -
  -	var/menu = 0
  -	//used by nanoui: 0 = main menu, 1 = relabel
  -	var/valve_open = 0
  -	var/release_pressure = ONE_ATMOSPHERE
  -
  -	var/list/_color //variable that stores colours
  -	var/list/decals // list that stores the decals
  -	var/list/possibledecals
  -	var/list/oldcolor//lists for check_change()
  -	var/list/olddecals
  -	var/list/possiblemaincolor //these lists contain the possible colors of a canister
  -	var/list/possibleseccolor
  -	var/list/possibletertcolor
  -	var/list/possiblequartcolor
  -	var/list/colorcontainer //passed to the ui to render the color lists
  -
  -	var/can_label = 1
  -	var/filled = 0.5
  -	pressure_resistance = 7*ONE_ATMOSPHERE
  -	var/temperature_resistance = 1000 + T0C
  -	volume = 1000
  -	use_power = 0
  -	var/release_log = ""
  -	var/busy = 0
  -	var/update_flag = 0
  -
  -	New()
  -		..()
  -		_color = list(
  -		"prim" = "yellow",
  -		"sec" = null,
  -		"ter" = null,
  -		"quart" = null)
  -		oldcolor = list()
  -		decals = list()
  -		olddecals = list()
  -		possibledecals = list( //var that stores all possible decals, used by ui
  -			list("name" = "Low temperature canister", "icon" = "cold", "active" = 0),
  -			list("name" = "High temperature canister", "icon" = "hot", "active" = 0),
  -			list("name" = "Plasma containing canister", "icon" = "plasma", "active" = 0)
  -			)
  +/datum/canister_icons
  +	var
   		possiblemaincolor = list( //these lists contain the possible colors of a canister
   			list("name" = "\[N2O\]", "icon" = "redws"),
   			list("name" = "\[N2\]", "icon" = "red"),
  
positive.code: 		overlays += "can-o2"
  	else if(update_flag & 32)
  		overlays += "can-o3"
  
  	update_flag &= ~196 //the flags 128 and 64 represent change, not states. As such, we have to reset them to be able to detect a change on the next go.
  	return
  
  //template modification exploit prevention, used in Topic()
  /obj/machinery/portable_atmospherics/canister/proc/is_a_color(var/inputVar, var/checkColor = "all")
  	if (checkColor == "prim" || checkColor == "all")
  		for(var/list/L in possiblemaincolor)
  			if (L["icon"] == inputVar)
  				return 1
  	if (checkColor == "sec" || checkColor == "all")
  		for(var/list/L in possibleseccolor)
  			if (L["icon"] == inputVar)
  				return 1
  	if (checkColor == "ter" || checkColor == "all")
  		for(var/list/L in possibletertcolor)
  			if (L["icon"] == inputVar)
  				return 1
  	if (checkColor == "quart" || checkColor == "all")
  		for(var/list/L in possiblequartcolor)
  			if (L["icon"] == inputVar)
  				return 1
  	return 0
  
  /obj/machinery/portable_atmospherics/canister/proc/is_a_decal(var/inputVar)
  	for(var/list/L in possibledecals)
  		if (L["icon"] == inputVar)
  			return 1
  	return 0
  
negative.code: 		usr << browse(null, "window=canister")
  		onclose(usr, "canister")
  		return
  	
  	if (href_list["choice"] == "menu")
  		menu = text2num(href_list["mode_target"])
  
  