/obj/machinery/computer/rust/fuel_control name = "Fuel Injection Control" icon_state = "power" var/list/fuel_injectors var/active_stage = "Cooling" var/announce_fueldepletion = 0 var/announce_stageprogression = 0 //var/obj/machinery/rust/fuel_injector/Injector = null New() //these are the only three stages we can accept //we have another console for SCRAM fuel_injectors = new/list fuel_injectors.Add("One") fuel_injectors["One"] = new/list fuel_injectors.Add("Two") fuel_injectors["Two"] = new/list fuel_injectors.Add("Three") fuel_injectors["Three"] = new/list fuel_injectors.Add("SCRAM") fuel_injectors["SCRAM"] = new/list spawn(0) for(var/obj/machinery/rust/fuel_injector/Injector in world) if(Injector.stage in fuel_injectors) var/list/targetlist = fuel_injectors[Injector.stage] targetlist.Add(Injector) attack_ai(mob/user) attack_hand(user) attack_hand(mob/user) add_fingerprint(user) /*if(stat & (BROKEN|NOPOWER)) return*/ interact(user) /*updateDialog() for(var/mob/M in range(1)) if(M.machine == src) interact(m)*/ Topic(href, href_list) ..() if( href_list["close"] ) usr << browse(null, "window=fuel_monitor") usr.machine = null return if( href_list["beginstage"] ) active_stage = href_list["beginstage"] if(active_stage in fuel_injectors) for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[active_stage]) Injector.BeginInjecting() updateDialog() return if( href_list["restart"] ) updateDialog() return if( href_list["cooldown"] ) if(active_stage in fuel_injectors) for(var/obj/machinery/rust/fuel_injector/Injector in fuel_injectors[active_stage]) Injector.StopInjecting() active_stage = "Cooling" updateDialog() return if( href_list["update"] ) updateDialog() return // if( href_list["disable_fueldepletion"] ) announce_fueldepletion = 0 updateDialog() return if( href_list["announce_fueldepletion"] ) announce_fueldepletion = 1 updateDialog() return if( href_list["broadcast_fueldepletion"] ) announce_fueldepletion = 2 updateDialog() return // if( href_list["disable_stageprogression"] ) announce_stageprogression = 0 updateDialog() return if( href_list["announce_stageprogression"] ) announce_stageprogression = 1 updateDialog() return if( href_list["broadcast_stageprogression"] ) announce_stageprogression = 2 updateDialog() return process() ..() updateDialog() proc interact(mob/user) if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) ) if (!istype(user, /mob/living/silicon)) user.machine = null user << browse(null, "window=fuel_monitor") return var/t = "Reactor Core Fuel Control
" t += "Current fuel injection stage: [active_stage]
" if(active_stage == "Cooling") //t += "Restart injection cycle
" t += "----
" else t += "Enter cooldown phase
" t += "Fuel depletion announcement: " t += "[announce_fueldepletion ? "Disable" : "Disabled"] " t += "[announce_fueldepletion == 1 ? "Announcing" : "Announce"] " t += "[announce_fueldepletion == 2 ? "Broadcasting" : "Broadcast"]
" t += "Stage progression announcement: " t += "[announce_stageprogression ? "Disable" : "Disabled"] " t += "[announce_stageprogression == 1 ? "Announcing" : "Announce"] " t += "[announce_stageprogression == 2 ? "Broadcasting" : "Broadcast"] " t += "
" t += "" t += "" t += "" t += "" t += "" t += "" t += "" for(var/stage in fuel_injectors) var/list/cur_stage = fuel_injectors[stage] t += "" for(var/obj/machinery/rust/fuel_injector/Injector in cur_stage) t += "" t += "" t += "" t += "" t += "" t += "" t += "" t += "
Injector StatusInjection interval (sec)Assembly consumption per injectionFuel Assembly PortAssembly depletion percentage
Fuel Injection Stage: [stage] [active_stage == stage ? " (Currently active)" : "Activate"]
[Injector.on && Injector.remote_enabled ? "Operational" : "Unresponsive"][Injector.rate/10] Modify[Injector.fuel_usage*100]% Modify[Injector.owned_assembly_port ? "[Injector.owned_assembly_port.cur_assembly ? "Loaded": "Empty"]" : "Disconnected" ][Injector.owned_assembly_port && Injector.owned_assembly_port.cur_assembly ? "[100 - Injector.owned_assembly_port.cur_assembly.amount_depleted*100]%" : ""]
" t += "Close
" user << browse(t, "window=fuel_monitor;size=500x800") user.machine = src