mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-04 14:33:30 +00:00
Changes sleeper UI to be centered on the console
This commit is contained in:
@@ -39,10 +39,8 @@
|
||||
|
||||
if(!sleeper)
|
||||
findsleeper()
|
||||
if(sleeper)
|
||||
return sleeper.ui_interact(user)
|
||||
else if(sleeper)
|
||||
return sleeper.ui_interact(user)
|
||||
if(sleeper)
|
||||
return ui_interact(user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Sleeper not found!</span>")
|
||||
|
||||
@@ -59,6 +57,94 @@
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/machinery/sleep_console/ui_interact(var/mob/user, var/ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = outside_state)
|
||||
var/data[0]
|
||||
|
||||
var/obj/machinery/sleeper/S = sleeper
|
||||
var/mob/living/carbon/human/occupant = sleeper.occupant
|
||||
|
||||
data["power"] = S.stat & (NOPOWER|BROKEN) ? 0 : 1
|
||||
|
||||
var/list/reagents = list()
|
||||
for(var/T in S.available_chemicals)
|
||||
var/list/reagent = list()
|
||||
reagent["id"] = T
|
||||
reagent["name"] = S.available_chemicals[T]
|
||||
if(occupant)
|
||||
reagent["amount"] = occupant.reagents.get_reagent_amount(T)
|
||||
reagents += list(reagent)
|
||||
data["reagents"] = reagents.Copy()
|
||||
|
||||
if(occupant)
|
||||
data["occupant"] = 1
|
||||
switch(occupant.stat)
|
||||
if(CONSCIOUS)
|
||||
data["stat"] = "Conscious"
|
||||
if(UNCONSCIOUS)
|
||||
data["stat"] = "Unconscious"
|
||||
if(DEAD)
|
||||
data["stat"] = "<font color='red'>Dead</font>"
|
||||
data["health"] = occupant.health
|
||||
data["maxHealth"] = occupant.getMaxHealth()
|
||||
if(iscarbon(occupant))
|
||||
var/mob/living/carbon/C = occupant
|
||||
data["pulse"] = C.get_pulse(GETPULSE_TOOL)
|
||||
data["brute"] = occupant.getBruteLoss()
|
||||
data["burn"] = occupant.getFireLoss()
|
||||
data["oxy"] = occupant.getOxyLoss()
|
||||
data["tox"] = occupant.getToxLoss()
|
||||
else
|
||||
data["occupant"] = 0
|
||||
if(S.beaker)
|
||||
data["beaker"] = S.beaker.reagents.get_free_space()
|
||||
else
|
||||
data["beaker"] = -1
|
||||
data["filtering"] = S.filtering
|
||||
|
||||
var/stasis_level_name = "Error!"
|
||||
for(var/N in S.stasis_choices)
|
||||
if(S.stasis_choices[N] == S.stasis_level)
|
||||
stasis_level_name = N
|
||||
break
|
||||
data["stasis"] = stasis_level_name
|
||||
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "sleeper.tmpl", "Sleeper UI", 600, 600, state = state)
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
|
||||
/obj/machinery/sleep_console/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
var/obj/machinery/sleeper/S = sleeper
|
||||
|
||||
if(usr == S.occupant)
|
||||
to_chat(usr, "<span class='warning'>You can't reach the controls from the inside.</span>")
|
||||
return
|
||||
|
||||
add_fingerprint(usr)
|
||||
|
||||
if(href_list["eject"])
|
||||
S.go_out()
|
||||
if(href_list["beaker"])
|
||||
S.remove_beaker()
|
||||
if(href_list["sleeper_filter"])
|
||||
if(S.filtering != text2num(href_list["sleeper_filter"]))
|
||||
S.toggle_filter()
|
||||
if(href_list["chemical"] && href_list["amount"])
|
||||
if(S.occupant && S.occupant.stat != DEAD)
|
||||
if(href_list["chemical"] in S.available_chemicals) // Your hacks are bad and you should feel bad
|
||||
S.inject_chemical(usr, href_list["chemical"], text2num(href_list["amount"]))
|
||||
if(href_list["change_stasis"])
|
||||
var/new_stasis = input("Levels deeper than 50% stasis level will render the patient unconscious.","Stasis Level") as null|anything in S.stasis_choices
|
||||
if(new_stasis && CanUseTopic(usr, default_state) == STATUS_INTERACTIVE)
|
||||
S.stasis_level = S.stasis_choices[new_stasis]
|
||||
|
||||
return 1
|
||||
|
||||
/obj/machinery/sleeper
|
||||
name = "sleeper"
|
||||
desc = "A stasis pod with built-in injectors, a dialysis machine, and a limited health scanner."
|
||||
@@ -121,89 +207,6 @@
|
||||
/obj/machinery/sleeper/update_icon()
|
||||
icon_state = "sleeper_[occupant ? "1" : "0"]"
|
||||
|
||||
/obj/machinery/sleeper/ui_interact(var/mob/user, var/ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = outside_state)
|
||||
var/data[0]
|
||||
|
||||
data["power"] = stat & (NOPOWER|BROKEN) ? 0 : 1
|
||||
|
||||
var/list/reagents = list()
|
||||
for(var/T in available_chemicals)
|
||||
var/list/reagent = list()
|
||||
reagent["id"] = T
|
||||
reagent["name"] = available_chemicals[T]
|
||||
if(occupant)
|
||||
reagent["amount"] = occupant.reagents.get_reagent_amount(T)
|
||||
reagents += list(reagent)
|
||||
data["reagents"] = reagents.Copy()
|
||||
|
||||
if(occupant)
|
||||
data["occupant"] = 1
|
||||
switch(occupant.stat)
|
||||
if(CONSCIOUS)
|
||||
data["stat"] = "Conscious"
|
||||
if(UNCONSCIOUS)
|
||||
data["stat"] = "Unconscious"
|
||||
if(DEAD)
|
||||
data["stat"] = "<font color='red'>Dead</font>"
|
||||
data["health"] = occupant.health
|
||||
data["maxHealth"] = occupant.getMaxHealth()
|
||||
if(iscarbon(occupant))
|
||||
var/mob/living/carbon/C = occupant
|
||||
data["pulse"] = C.get_pulse(GETPULSE_TOOL)
|
||||
data["brute"] = occupant.getBruteLoss()
|
||||
data["burn"] = occupant.getFireLoss()
|
||||
data["oxy"] = occupant.getOxyLoss()
|
||||
data["tox"] = occupant.getToxLoss()
|
||||
else
|
||||
data["occupant"] = 0
|
||||
if(beaker)
|
||||
data["beaker"] = beaker.reagents.get_free_space()
|
||||
else
|
||||
data["beaker"] = -1
|
||||
data["filtering"] = filtering
|
||||
|
||||
var/stasis_level_name = "Error!"
|
||||
for(var/N in stasis_choices)
|
||||
if(stasis_choices[N] == stasis_level)
|
||||
stasis_level_name = N
|
||||
break
|
||||
data["stasis"] = stasis_level_name
|
||||
|
||||
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "sleeper.tmpl", "Sleeper UI", 600, 600, state = state)
|
||||
ui.set_initial_data(data)
|
||||
ui.open()
|
||||
ui.set_auto_update(1)
|
||||
|
||||
/obj/machinery/sleeper/Topic(href, href_list)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if(usr == occupant)
|
||||
to_chat(usr, "<span class='warning'>You can't reach the controls from the inside.</span>")
|
||||
return
|
||||
|
||||
add_fingerprint(usr)
|
||||
|
||||
if(href_list["eject"])
|
||||
go_out()
|
||||
if(href_list["beaker"])
|
||||
remove_beaker()
|
||||
if(href_list["sleeper_filter"])
|
||||
if(filtering != text2num(href_list["sleeper_filter"]))
|
||||
toggle_filter()
|
||||
if(href_list["chemical"] && href_list["amount"])
|
||||
if(occupant && occupant.stat != DEAD)
|
||||
if(href_list["chemical"] in available_chemicals) // Your hacks are bad and you should feel bad
|
||||
inject_chemical(usr, href_list["chemical"], text2num(href_list["amount"]))
|
||||
if(href_list["change_stasis"])
|
||||
var/new_stasis = input("Levels deeper than 50% stasis level will render the patient unconscious.","Stasis Level") as null|anything in stasis_choices
|
||||
if(new_stasis && CanUseTopic(usr, default_state) == STATUS_INTERACTIVE)
|
||||
stasis_level = stasis_choices[new_stasis]
|
||||
|
||||
return 1
|
||||
|
||||
/obj/machinery/sleeper/attackby(var/obj/item/I, var/mob/user)
|
||||
add_fingerprint(user)
|
||||
if(istype(I, /obj/item/weapon/grab))
|
||||
|
||||
Reference in New Issue
Block a user