diff --git a/code/modules/plumbing/plumbers/bottler.dm b/code/modules/plumbing/plumbers/bottler.dm
index 2a531b3a20c..c6595fc3972 100644
--- a/code/modules/plumbing/plumbers/bottler.dm
+++ b/code/modules/plumbing/plumbers/bottler.dm
@@ -7,6 +7,8 @@
rcd_cost = 50
rcd_delay = 50
buffer = 100
+ ///how much do we fill
+ var/wanted_amount = 10
///where things are sent
var/turf/goodspot = null
///where things are taken
@@ -49,31 +51,29 @@
///changing input ammount with a window
/obj/machinery/plumbing/bottler/interact(mob/user)
. = ..()
- var/vol = min(100, round(input(user,"maximum is 100u","set ammount to fill with") as num|null, 1))
+ wanted_amount = clamp(round(input(user,"maximum is 100u","set ammount to fill with") as num|null, 1), 1, 100)
reagents.clear_reagents()
- create_reagents(vol, TRANSPARENT)
- reagents.maximum_volume = vol
- to_chat(user, " The [src] will now fill for [vol]u.")
+ to_chat(user, " The [src] will now fill for [wanted_amount]u.")
/obj/machinery/plumbing/bottler/process()
if(machine_stat & NOPOWER)
return
- ///see if machine is full (ready)
- if(reagents.holder_full())
+ ///see if machine has enough to fill
+ if(reagents.total_volume >= wanted_amount && anchored)
var/obj/AM = pick(inputspot.contents)///pick a reagent_container that could be used
if(istype(AM, /obj/item/reagent_containers) && (!istype(AM, /obj/item/reagent_containers/hypospray/medipen)))
var/obj/item/reagent_containers/B = AM
///see if it would overflow else inject
- if((B.reagents.total_volume + reagents.total_volume) <= B.reagents.maximum_volume)
- reagents.trans_to(B, reagents.total_volume, transfered_by = src)
+ if((B.reagents.total_volume + wanted_amount) <= B.reagents.maximum_volume)
+ reagents.trans_to(B, wanted_amount, transfered_by = src)
B.forceMove(goodspot)
return
- ///glass was full so we throw it away
+ ///glass was full so we move it away
AM.forceMove(badspot)
if(istype(AM, /obj/item/slime_extract)) ///slime extracts need inject
AM.forceMove(goodspot)
- reagents.trans_to(AM, reagents.total_volume, transfered_by = src, method = INJECT)
+ reagents.trans_to(AM, wanted_amount, transfered_by = src, method = INJECT)
return
if(istype(AM, /obj/item/slimecross/industrial)) ///no need to move slimecross industrial things
- reagents.trans_to(AM, reagents.total_volume, transfered_by = src, method = INJECT)
+ reagents.trans_to(AM, wanted_amount, transfered_by = src, method = INJECT)
return