TGUI Research

This commit is contained in:
ShadowLarkens
2020-08-25 13:25:57 -07:00
parent 3de27a9e8f
commit 097d4fa283
144 changed files with 9345 additions and 4773 deletions

View File

@@ -88,15 +88,19 @@
. += "\The [src] can be attached!"
/obj/item/device/assembly/attack_self(mob/user as mob)
if(!user) return 0
if(!user)
return 0
user.set_machine(src)
interact(user)
tgui_interact(user)
return 1
/obj/item/device/assembly/interact(mob/user as mob)
return //HTML MENU FOR WIRES GOES HERE
/obj/item/device/assembly/tgui_state(mob/user)
return GLOB.tgui_deep_inventory_state
/obj/item/device/assembly/nano_host()
if(istype(loc, /obj/item/device/assembly_holder))
return loc.nano_host()
return ..()
/obj/item/device/assembly/tgui_interact(mob/user, datum/tgui/ui)
return // tgui goes here
/obj/item/device/assembly/tgui_host()
if(istype(loc, /obj/item/device/assembly_holder))
return loc.tgui_host()
return ..()

View File

@@ -100,41 +100,38 @@
if(!holder)
visible_message("[bicon(src)] *beep* *beep*")
/obj/item/device/assembly/infra/interact(mob/user as mob)//TODO: change this this to the wire control panel
/obj/item/device/assembly/infra/tgui_interact(mob/user, datum/tgui/ui)
if(!secured)
return
user.set_machine(src)
var/dat = text("<TT><B>Infrared Laser</B>\n<B>Status</B>: []<BR>\n<B>Visibility</B>: []<BR>\n</TT>", (on ? text("<A href='?src=\ref[];state=0'>On</A>", src) : text("<A href='?src=\ref[];state=1'>Off</A>", src)), (src.visible ? text("<A href='?src=\ref[];visible=0'>Visible</A>", src) : text("<A href='?src=\ref[];visible=1'>Invisible</A>", src)))
dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
user << browse(dat, "window=infra")
onclose(user, "infra")
to_chat(user, "<span class='warning'>[src] is unsecured!</span>")
return FALSE
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "AssemblyInfrared", name)
ui.open()
/obj/item/device/assembly/infra/Topic(href, href_list, state = deep_inventory_state)
/obj/item/device/assembly/infra/tgui_data(mob/user)
var/list/data = ..()
data["on"] = on
data["visible"] = visible
return data
/obj/item/device/assembly/infra/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
if(..())
return 1
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=infra")
onclose(usr, "infra")
return
return TRUE
if(href_list["state"])
toggle_state()
if(href_list["visible"])
visible = !(visible)
for(var/ibeam in i_beams)
var/obj/effect/beam/i_beam/I = ibeam
I.visible = visible
CHECK_TICK
if(href_list["close"])
usr << browse(null, "window=infra")
return
if(usr)
attack_self(usr)
switch(action)
if("state")
toggle_state()
return TRUE
if("visible")
visible = !visible
for(var/ibeam in i_beams)
var/obj/effect/beam/i_beam/I = ibeam
I.visible = visible
CHECK_TICK
return TRUE
/obj/item/device/assembly/infra/verb/rotate_clockwise()
set name = "Rotate Infrared Laser Clockwise"

View File

@@ -95,49 +95,49 @@
sense_proximity(range = range, callback = .HasProximity)
sense()
/obj/item/device/assembly/prox_sensor/interact(mob/user as mob)//TODO: Change this to the wires thingy
/obj/item/device/assembly/prox_sensor/tgui_interact(mob/user, datum/tgui/ui)
if(!secured)
user.show_message("<font color='red'>The [name] is unsecured!</font>")
return 0
var/second = time % 60
var/minute = (time - second) / 60
var/dat = text("<TT><B>Proximity Sensor</B>\n[] []:[]\n<A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>\n</TT>", (timing ? text("<A href='?src=\ref[];time=0'>Arming</A>", src) : text("<A href='?src=\ref[];time=1'>Not Arming</A>", src)), minute, second, src, src, src, src)
dat += text("<BR>Range: <A href='?src=\ref[];range=-1'>-</A> [] <A href='?src=\ref[];range=1'>+</A>", src, range, src)
dat += "<BR><A href='?src=\ref[src];scanning=1'>[scanning?"Armed":"Unarmed"]</A> (Movement sensor active when armed!)"
dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
user << browse(dat, "window=prox")
onclose(user, "prox")
to_chat(user, "<span class='warning'>[src] is unsecured!</span>")
return FALSE
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "AssemblyProx", name)
ui.open()
/obj/item/device/assembly/prox_sensor/Topic(href, href_list, state = deep_inventory_state)
/obj/item/device/assembly/prox_sensor/tgui_data(mob/user)
var/list/data = ..()
data["time"] = time * 10
data["timing"] = timing
data["range"] = range
data["maxRange"] = 5
data["scanning"] = scanning
return data
/obj/item/device/assembly/prox_sensor/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
if(..())
return TRUE
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=prox")
onclose(usr, "prox")
return
if(href_list["scanning"])
toggle_scan()
if(href_list["time"])
timing = text2num(href_list["time"])
update_icon()
if(href_list["tp"])
var/tp = text2num(href_list["tp"])
time += tp
time = min(max(round(time), 0), 600)
if(href_list["range"])
var/r = text2num(href_list["range"])
range += r
range = min(max(range, 1), 5)
if(href_list["close"])
usr << browse(null, "window=prox")
return
if(usr)
attack_self(usr)
switch(action)
if("scanning")
toggle_scan()
return TRUE
if("timing")
timing = !timing
update_icon()
return TRUE
if("set_time")
var/real_new_time = 0
var/new_time = params["time"]
var/list/L = splittext(new_time, ":")
if(LAZYLEN(L))
for(var/i in 1 to LAZYLEN(L))
real_new_time += text2num(L[i]) * (60 ** (LAZYLEN(L) - i))
else
real_new_time = text2num(new_time)
time = clamp(real_new_time, 0, 600)
return TRUE
if("range")
range = clamp(params["range"], 1, 5)
return TRUE

View File

@@ -31,14 +31,6 @@
if(holder)
holder.update_icon()
/obj/item/device/assembly/signaler/interact(mob/user)
if(..())
return TRUE
tgui_interact(user)
/obj/item/device/assembly/signaler/tgui_state(mob/user)
return GLOB.tgui_deep_inventory_state
/obj/item/device/assembly/signaler/tgui_interact(mob/user, datum/tgui/ui)
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)

View File

@@ -62,43 +62,38 @@
holder.update_icon()
return
/obj/item/device/assembly/timer/interact(mob/user as mob)//TODO: Have this use the wires
/obj/item/device/assembly/timer/tgui_interact(mob/user, datum/tgui/ui)
if(!secured)
user.show_message("<font color='red'>The [name] is unsecured!</font>")
return 0
var/second = time % 60
var/minute = (time - second) / 60
var/dat = text("<TT><B>Timing Unit</B>\n[] []:[]\n<A href='?src=\ref[];tp=-30'>-</A> <A href='?src=\ref[];tp=-1'>-</A> <A href='?src=\ref[];tp=1'>+</A> <A href='?src=\ref[];tp=30'>+</A>\n</TT>", (timing ? text("<A href='?src=\ref[];time=0'>Timing</A>", src) : text("<A href='?src=\ref[];time=1'>Not Timing</A>", src)), minute, second, src, src, src, src)
dat += "<BR><BR><A href='?src=\ref[src];refresh=1'>Refresh</A>"
dat += "<BR><BR><A href='?src=\ref[src];close=1'>Close</A>"
user << browse(dat, "window=timer")
onclose(user, "timer")
return
to_chat(user, "<span class='warning'>[src] is unsecured!</span>")
return FALSE
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "AssemblyTimer", name)
ui.open()
/obj/item/device/assembly/timer/tgui_data(mob/user)
var/list/data = ..()
data["time"] = time * 10
data["timing"] = timing
return data
/obj/item/device/assembly/timer/Topic(href, href_list, state = deep_inventory_state)
if(..()) return 1
if(!usr.canmove || usr.stat || usr.restrained() || !in_range(loc, usr))
usr << browse(null, "window=timer")
onclose(usr, "timer")
return
/obj/item/device/assembly/timer/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state)
if(..())
return TRUE
if(href_list["time"])
var/new_timing = text2num(href_list["time"])
set_state(new_timing)
update_icon()
if(href_list["tp"])
var/tp = text2num(href_list["tp"])
time += tp
time = min(max(round(time), 0), 600)
if(href_list["close"])
usr << browse(null, "window=timer")
return
if(usr)
attack_self(usr)
return
switch(action)
if("timing")
timing = !timing
update_icon()
return TRUE
if("set_time")
var/real_new_time = 0
var/new_time = params["time"]
var/list/L = splittext(new_time, ":")
if(LAZYLEN(L))
for(var/i in 1 to LAZYLEN(L))
real_new_time += text2num(L[i]) * (60 ** (LAZYLEN(L) - i))
else
real_new_time = text2num(new_time)
time = clamp(real_new_time, 0, 600)
return TRUE