TGUI Mulebot

This commit is contained in:
ShadowLarkens
2020-08-12 11:13:52 -07:00
parent 6f9545ea63
commit dd088ae636
2 changed files with 172 additions and 45 deletions

View File

@@ -61,72 +61,57 @@
load(C)
/mob/living/bot/mulebot/attack_hand(var/mob/user)
interact(user)
tgui_interact(user)
/mob/living/bot/mulebot/proc/interact(var/mob/user)
var/dat
dat += "<TT><B>Multiple Utility Load Effector Mk. III</B></TT><BR><BR>"
dat += "ID: [suffix]<BR>"
dat += "Power: [on ? "On" : "Off"]<BR>"
/mob/living/bot/mulebot/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "MuleBot", "Mulebot [suffix ? "([suffix])" : ""]")
ui.open()
if(!open)
dat += "<BR>Current Load: [load ? load.name : "<i>none</i>"]<BR>"
/mob/living/bot/mulebot/tgui_data(mob/user)
var/list/data = list(
"suffix" = suffix,
"power" = on,
"issilicon" = issilicon(user),
"load" = load,
"locked" = locked,
"auto_return" = auto_return,
"crates_only" = crates_only,
"hatch" = open,
"safety" = safety,
)
return data
if(locked)
dat += "<HR>Controls are locked"
else
dat += "<HR>Controls are unlocked<BR><BR>"
if(!locked || issilicon(user))
dat += "<A href='byond://?src=\ref[src];op=power'>Toggle power</A><BR>"
dat += "<A href='byond://?src=\ref[src];op=stop'>Stop</A><BR>"
dat += "<A href='byond://?src=\ref[src];op=go'>Proceed</A><BR>"
dat += "<A href='byond://?src=\ref[src];op=home'>Return to home</A><BR>"
dat += "<A href='byond://?src=\ref[src];op=destination'>Set destination</A><BR>"
dat += "<A href='byond://?src=\ref[src];op=sethome'>Set home</A><BR>"
dat += "<A href='byond://?src=\ref[src];op=autoret'>Toggle auto return home</A> ([auto_return ? "On" : "Off"])<BR>"
dat += "<A href='byond://?src=\ref[src];op=cargotypes'>Toggle non-standard cargo</A> ([crates_only ? "Off" : "On"])<BR>"
if(load)
dat += "<A href='byond://?src=\ref[src];op=unload'>Unload now</A><BR>"
dat += "<HR>The maintenance hatch is closed.<BR>"
else
if(!issilicon(user))
dat += "The maintenance hatch is open.<BR><BR>"
dat += "<A href='byond://?src=\ref[src];op=safety'>Toggle safety</A> ([safety ? "On" : "Off - DANGER"])<BR>"
else
dat += "The bot is in maintenance mode and cannot be controlled.<BR>"
user << browse("<HEAD><TITLE>Mulebot [suffix ? "([suffix])" : ""]</TITLE></HEAD>[dat]", "window=mulebot;size=350x500")
onclose(user, "mulebot")
return
/mob/living/bot/mulebot/Topic(href, href_list)
/mob/living/bot/mulebot/tgui_act(action, params)
if(..())
return
usr.set_machine(src)
return TRUE
add_fingerprint(usr)
switch(href_list["op"])
switch(action)
if("power")
if(on)
turn_off()
else
turn_on()
visible_message("[usr] switches [on ? "on" : "off"] [src].")
. = TRUE
if("stop")
obeyCommand("Stop")
. = TRUE
if("go")
obeyCommand("GoTD")
. = TRUE
if("home")
obeyCommand("Home")
. = TRUE
if("destination")
obeyCommand("SetD")
. = TRUE
if("sethome")
var/new_dest
@@ -138,20 +123,23 @@
if(new_dest)
home = get_turf(beaconlist[new_dest])
homeName = new_dest
. = TRUE
if("unload")
unload()
. = TRUE
if("autoret")
auto_return = !auto_return
. = TRUE
if("cargotypes")
crates_only = !crates_only
. = TRUE
if("safety")
safety = !safety
interact(usr)
. = TRUE
/mob/living/bot/mulebot/attackby(var/obj/item/O, var/mob/user)
..()