/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 += "
| Injector Status | " t += "Injection interval (sec) | " t += "Assembly consumption per injection | " t += "Fuel Assembly Port | " t += "Assembly depletion percentage | " t += "
| Fuel Injection Stage: [stage] [active_stage == stage ? " (Currently active)" : "Activate"] | ||||
| [Injector.on && Injector.remote_enabled ? "Operational" : "Unresponsive"] | " t += "[Injector.rate/10] Modify | " t += "[Injector.fuel_usage*100]% Modify | " t += "[Injector.owned_assembly_port ? "[Injector.owned_assembly_port.cur_assembly ? "Loaded": "Empty"]" : "Disconnected" ] | " t += "[Injector.owned_assembly_port && Injector.owned_assembly_port.cur_assembly ? "[100 - Injector.owned_assembly_port.cur_assembly.amount_depleted*100]%" : ""] | " t += "