Re-structure tgui's ui_act

This commit is contained in:
Bjorn Neergaard
2016-01-22 19:25:36 -06:00
parent 4c192d705a
commit 1599742f7e
47 changed files with 713 additions and 621 deletions
@@ -120,29 +120,35 @@
return data
/obj/machinery/chem_dispenser/ui_act(action, params)
if(..())
return
switch(action)
if("amount")
var/amount = text2num(params["amount"])
if(amount in beaker.possible_transfer_amounts)
src.amount = amount
var/target = text2num(params["target"])
if(target in beaker.possible_transfer_amounts)
amount = target
. = TRUE
if("dispense")
if(beaker && dispensable_reagents.Find(params["reagent"]))
var/reagent = params["reagent"]
if(beaker && dispensable_reagents.Find(reagent))
var/datum/reagents/R = beaker.reagents
var/space = R.maximum_volume - R.total_volume
var/free = R.maximum_volume - R.total_volume
var/actual = min(amount, energy * 10, free)
R.add_reagent(params["reagent"], min(amount, energy * 10, space))
energy = max(energy - min(amount, energy * 10, space) / 10, 0)
R.add_reagent(reagent, actual)
energy = max(energy - actual / 10, 0)
. = TRUE
if("remove")
if(beaker)
var/amount = text2num(params["amount"])
if(isnum(amount) && (amount > 0) && (amount in beaker.possible_transfer_amounts))
beaker.reagents.remove_all(amount)
var/amount = text2num(params["amount"])
if(beaker && amount in beaker.possible_transfer_amounts)
beaker.reagents.remove_all(amount)
. = TRUE
if("eject")
if(beaker)
beaker.loc = loc
beaker = null
overlays.Cut()
return 1
. = TRUE
/obj/machinery/chem_dispenser/attackby(obj/item/I, mob/user, params)
if(default_unfasten_wrench(user, I))
@@ -7,7 +7,7 @@
use_power = 1
idle_power_usage = 40
var/obj/item/weapon/reagent_containers/beaker = null
var/desired_temp = 300
var/target_temp = 300
var/heater_coefficient = 0.10
var/on = FALSE
@@ -30,10 +30,10 @@
return
if(on)
if(beaker)
if(beaker.reagents.chem_temp > desired_temp)
beaker.reagents.chem_temp += min(-1, (desired_temp - beaker.reagents.chem_temp) * heater_coefficient)
if(beaker.reagents.chem_temp < desired_temp)
beaker.reagents.chem_temp += max(1, (desired_temp - beaker.reagents.chem_temp) * heater_coefficient)
if(beaker.reagents.chem_temp > target_temp)
beaker.reagents.chem_temp += min(-1, (target_temp - beaker.reagents.chem_temp) * heater_coefficient)
if(beaker.reagents.chem_temp < target_temp)
beaker.reagents.chem_temp += max(1, (target_temp - beaker.reagents.chem_temp) * heater_coefficient)
beaker.reagents.chem_temp = round(beaker.reagents.chem_temp) //stops stuff like 456.12312312302
beaker.reagents.handle_reactions()
@@ -72,17 +72,6 @@
default_deconstruction_crowbar(I)
return 1
/obj/machinery/chem_heater/ui_act(action, params)
switch(action)
if("power")
on = !on
if("temperature")
desired_temp = Clamp(input("Please input the target temperature", name) as num, 0, 1000)
if("eject")
on = FALSE
eject_beaker()
return 1
/obj/machinery/chem_heater/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
datum/tgui/master_ui = null, datum/ui_state/state = default_state)
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
@@ -92,7 +81,7 @@
/obj/machinery/chem_heater/get_ui_data()
var/data = list()
data["targetTemp"] = desired_temp
data["targetTemp"] = target_temp
data["isActive"] = on
data["isBeakerLoaded"] = beaker ? 1 : 0
@@ -107,6 +96,26 @@
data["beakerContents"] = beakerContents
return data
/obj/machinery/chem_heater/ui_act(action, params)
if(..())
return
switch(action)
if("power")
on = !on
. = TRUE
if("temperature")
var/target = text2num(params["target"])
if(target != null)
target_temp = Clamp(target, 0, 1000)
. = TRUE
else
target = input("New target temperature:", name, target_temp) as num|null
. = .(action, list("target" = target))
if("eject")
on = FALSE
eject_beaker()
. = TRUE
/obj/machinery/chem_heater/proc/eject_beaker()
if(beaker)
beaker.loc = get_turf(src)