mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
TGUI Mulebot
This commit is contained in:
@@ -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)
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user