From c7965d3b4a63755cd5dd540c93249de008afa3a0 Mon Sep 17 00:00:00 2001 From: Fermi <33956696+Thalpy@users.noreply.github.com> Date: Mon, 4 Jan 2021 10:53:21 +0000 Subject: [PATCH] Pushing to review diff --- .../chemistry/machinery/chem_dispenser.dm | 14 +++--- .../chemistry/reagents/fermi_reagents.dm | 12 ++++- .../packages/tgui/interfaces/ChemDispenser.js | 50 ++++++++++--------- tgui/packages/tgui/interfaces/ChemMaster.js | 2 +- 4 files changed, 44 insertions(+), 34 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 0fe4898b76..25658df0a5 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -33,7 +33,6 @@ var/nopower_state = "dispenser_nopower" var/has_panel_overlay = TRUE var/obj/item/reagent_containers/beaker = null - var/list/stored_beakers = list() var/list/dispensable_reagents = list( /datum/reagent/hydrogen, /datum/reagent/lithium, @@ -363,10 +362,11 @@ return var/reagent = text2path(params["id"]) var/datum/reagent/R = beaker.reagents.has_reagent(reagent) - if(reagents.total_volume+amount > reagents.maximum_volume) + var/potentialAmount = min(amount, R.volume) + if(reagents.total_volume+potentialAmount > reagents.maximum_volume) say("Not enough storage space left!") return - beaker.reagents.trans_id_to(src, R.type, amount) + beaker.reagents.trans_id_to(src, R.type, potentialAmount) work_animation() . = TRUE @@ -455,13 +455,13 @@ if(M.rating > 3) dispensable_reagents |= upgrade_reagents3 switch(M.rating) - if(0) + if(-INFINITY to 1) dispenceUnit = 5 - if(1) - dispenceUnit = 3 if(2) + dispenceUnit = 3 + if(3) dispenceUnit = 2 - if(3 to INFINITY) + if(4 to INFINITY) dispenceUnit = 1 powerefficiency = round(newpowereff, 0.01) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 453fe50e9c..3e2978ef04 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -345,12 +345,16 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) //Consumes self on addition and shifts pH /datum/reagent/fermi/acidic_buffer/on_new(datapH) + if(!holder) + return ..() + if(holder.reagents_holder_flags & NO_REACT) + return..() if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return ..() data = datapH if(LAZYLEN(holder.reagent_list) == 1) return ..() - holder.pH = ((holder.pH * (holder.total_volume-volume))+(pH * (volume*strength)))/(holder.total_volume + volume) + holder.pH = ((holder.pH * (holder.total_volume-volume))+(pH * volume*strength))/holder.total_volume //This is BEFORE removal holder.my_atom.visible_message("The beaker fizzes as the pH changes!") playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) @@ -382,12 +386,16 @@ datum/reagent/fermi/nanite_b_gone/reaction_obj(obj/O, reac_volume) strength = 0.4 /datum/reagent/fermi/basic_buffer/on_new(datapH) + if(!holder) + return ..() + if(holder.reagents_holder_flags & NO_REACT) + return..() if(holder.has_reagent(/datum/reagent/stabilizing_agent)) return ..() data = datapH if(LAZYLEN(holder.reagent_list) == 1) return ..() - holder.pH = ((holder.pH * (holder.total_volume-volume))+(pH * (volume*strength)))/(holder.total_volume + volume) + holder.pH = ((holder.pH * (holder.total_volume-volume))+(pH * volume*strength))/holder.total_volume //This is BEFORE removal holder.my_atom.visible_message("The beaker froths as the pH changes!") playsound(holder.my_atom, 'sound/FermiChem/bufferadd.ogg', 50, 1) holder.remove_reagent(type, volume, ignore_pH = TRUE) diff --git a/tgui/packages/tgui/interfaces/ChemDispenser.js b/tgui/packages/tgui/interfaces/ChemDispenser.js index 5390552dca..434b447364 100644 --- a/tgui/packages/tgui/interfaces/ChemDispenser.js +++ b/tgui/packages/tgui/interfaces/ChemDispenser.js @@ -111,21 +111,21 @@ export const ChemDispenser = (props, context) => { title="Dispense" buttons={( [ act('amount', { - target: amount, - })} />, + width="65px" + unit="u" + step={data.stepAmount} + stepPixelSize={data.stepAmount} + value={data.amount} + minValue={0} + maxValue={data.beakerMaxVolume} + onDrag={(e, amount) => act('amount', { + target: amount, + })} />,