mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 22:19:30 +01:00
Re-structure tgui's ui_act
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user