First polish pass

This commit is contained in:
mochi
2020-07-12 11:46:42 +02:00
parent dfa8cd07b6
commit aaee6b039d
27 changed files with 1188 additions and 985 deletions
@@ -153,7 +153,6 @@
/obj/machinery/chem_dispenser/tgui_data(mob/user)
var/data[0]
data["hasPower"] = !(stat & NOPOWER)
data["amount"] = amount
data["energy"] = cell.charge ? cell.charge * powerefficiency : "0" //To prevent NaN in the UI.
data["maxEnergy"] = cell.maxcharge * powerefficiency
@@ -187,51 +186,49 @@
if(..())
return
. = TRUE
switch(actions)
if("amount")
amount = clamp(round(text2num(params["amount"]), 1), 0, 100) // round to nearest 1 and clamp to 0 - 100
. = TRUE
amount = clamp(round(text2num(params["amount"]), 1), 0, 50) // round to nearest 1 and clamp to 0 - 50
if("dispense")
if(!is_operational() || QDELETED(cell))
return
if(beaker && dispensable_reagents.Find(params["reagent"]))
var/datum/reagents/R = beaker.reagents
var/free = R.maximum_volume - R.total_volume
var/actual = min(amount, (cell.charge * powerefficiency) * 10, free)
if(!cell.use(actual / powerefficiency))
atom_say("Not enough energy to complete operation!")
return
R.add_reagent(params["reagent"], actual)
overlays.Cut()
if(!icon_beaker)
icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position.
icon_beaker.pixel_x = rand(-10, 5)
overlays += icon_beaker
. = TRUE
if(!beaker || !dispensable_reagents.Find(params["reagent"]))
return
var/datum/reagents/R = beaker.reagents
var/free = R.maximum_volume - R.total_volume
var/actual = min(amount, (cell.charge * powerefficiency) * 10, free)
if(!cell.use(actual / powerefficiency))
atom_say("Not enough energy to complete operation!")
return
R.add_reagent(params["reagent"], actual)
overlays.Cut()
if(!icon_beaker)
icon_beaker = mutable_appearance('icons/obj/chemical.dmi', "disp_beaker") //randomize beaker overlay position.
icon_beaker.pixel_x = rand(-10, 5)
overlays += icon_beaker
if("remove")
if(beaker && params["amount"])
var/amount = text2num(params["amount"])
if(isnum(amount) && (amount > 0))
var/datum/reagents/R = beaker.reagents
var/id = params["reagent"]
R.remove_reagent(id, amount)
else if(isnum(amount) && (amount == -1)) //Isolate instead
var/datum/reagents/R = beaker.reagents
var/id = params["reagent"]
R.isolate_reagent(id)
. = TRUE
var/amount = text2num(params["amount"])
if(!beaker || !amount)
return
var/datum/reagents/R = beaker.reagents
var/id = params["reagent"]
if(amount > 0)
R.remove_reagent(id, amount)
else if(amount == -1) //Isolate instead
R.isolate_reagent(id)
if("ejectBeaker")
if(beaker)
beaker.forceMove(loc)
if(Adjacent(usr) && !issilicon(usr))
usr.put_in_hands(beaker)
beaker = null
overlays.Cut()
. = TRUE
if(.)
add_fingerprint(usr)
if(!beaker)
return
beaker.forceMove(loc)
if(Adjacent(usr) && !issilicon(usr))
usr.put_in_hands(beaker)
beaker = null
overlays.Cut()
else
return FALSE
add_fingerprint(usr)
/obj/machinery/chem_dispenser/attackby(obj/item/I, mob/user, params)
if(exchange_parts(user, I))
@@ -257,7 +254,7 @@
to_chat(user, "<span class='notice'>You set [I] on the machine.</span>")
SStgui.update_uis(src) // update all UIs attached to src
if(!icon_beaker)
icon_beaker = image('icons/obj/chemical.dmi', src, "disp_beaker") //randomize beaker overlay position.
icon_beaker = mutable_appearance('icons/obj/chemical.dmi', "disp_beaker") //randomize beaker overlay position.
icon_beaker.pixel_x = rand(-10, 5)
overlays += icon_beaker
return
@@ -41,6 +41,7 @@
beaker = null
icon_state = "mixer0b"
on = FALSE
SStgui.update_uis(src)
/obj/machinery/chem_heater/power_change()
if(powered())
@@ -63,6 +64,7 @@
I.forceMove(src)
to_chat(user, "<span class='notice'>You add the beaker to the machine!</span>")
icon_state = "mixer1b"
SStgui.update_uis(src)
return
if(exchange_parts(user, I))
@@ -100,36 +102,29 @@
if(..())
return
. = TRUE
switch(action)
if("toggle_on")
on = !on
return TRUE
if("adjust_temperature")
var/target = params["target"]
if(text2num(target) != null)
target = text2num(target)
. = TRUE
if(.)
desired_temp = clamp(target, 0, 1000)
desired_temp = clamp(text2num(params["target"]), 0, 1000)
if("eject_beaker")
eject_beaker(usr)
return TRUE
else
return FALSE
/obj/machinery/chem_heater/tgui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/tgui_state/state = GLOB.tgui_default_state)
/obj/machinery/chem_heater/tgui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/tgui_state/state = GLOB.tgui_default_state)
if(user.stat || user.restrained())
return
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
ui = new(user, src, ui_key, "ChemHeater", name, 350, 270, master_ui, state)
ui = new(user, src, ui_key, "ChemHeater", "Chemical Heater", 350, 270, master_ui, state)
ui.open()
ui.set_autoupdate(TRUE)
/obj/machinery/chem_heater/tgui_data(mob/user)
var/data[0]
data["hasPower"] = !(stat & NOPOWER)
data["targetTemp"] = desired_temp
data["isActive"] = on
data["isBeakerLoaded"] = beaker ? 1 : 0
@@ -181,7 +181,7 @@
playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1)
var/obj/item/paper/P = new /obj/item/paper(loc)
P.info = "<CENTER><B>Chemical Analysis</B></CENTER><BR>"
P.info = "<center><b>Chemical Analysis</b></center><br>"
P.info += "<b>Time of analysis:</b> [station_time_timestamp()]<br><br>"
P.info += "<b>Chemical name:</b> [R.name]<br>"
if(istype(R, /datum/reagent/blood))
@@ -395,8 +395,6 @@
tgui_modal_bento(src, id, "Please select the new style for bottles:", null, arguments, bottlesprite, bottle_styles_png)
else
return FALSE
if(TGUI_MODAL_DELEGATE)
// Do something after successful delegate call
if(TGUI_MODAL_ANSWER)
var/answer = params["answer"]
switch(id)
@@ -520,8 +518,6 @@
bottlesprite = new_sprite
else
return FALSE
if(TGUI_MODAL_CLOSE)
//
else
return FALSE