diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm
index dce78028dd3..511c5807572 100644
--- a/code/modules/hydroponics/biogenerator.dm
+++ b/code/modules/hydroponics/biogenerator.dm
@@ -127,6 +127,9 @@
if("void")
dat += "
Error: No growns inside.
Please, put growns into reactor.
"
menustat = "menu"
+ if("nobeakerspace")
+ dat += "Not enough space left in container. Unable to create product.
"
+ menustat = "menu"
if(beaker)
dat += "Biomass: [points] units.
"
dat += "ActivateDetach Container"
@@ -203,13 +206,20 @@
updateUsrDialog()
return 0
+/obj/machinery/biogenerator/proc/check_container_volume(var/reagent_amount)
+ if(beaker.reagents.total_volume + reagent_amount > beaker.reagents.maximum_volume)
+ menustat = "nobeakerspace"
+ return 1
+
/obj/machinery/biogenerator/proc/create_product(var/create)
switch(create)
if("milk")
- if (check_cost(20/efficiency)) return 0
+ if(check_container_volume(10)) return 0
+ else if (check_cost(20/efficiency)) return 0
else beaker.reagents.add_reagent("milk",10)
if("cream")
- if (check_cost(30/efficiency)) return 0
+ if(check_container_volume(10)) return 0
+ else if (check_cost(30/efficiency)) return 0
else beaker.reagents.add_reagent("cream",10)
if("meat")
if (check_cost(250/efficiency)) return 0
@@ -278,12 +288,11 @@
else if(href_list["create"])
var/amount = (text2num(href_list["amount"]))
var/i = amount
- var/cost = (text2num(href_list["cost"]))
var/C = href_list["create"]
if(i <= 0)
return
while(i >= 1)
- create_product(C, cost, i)
+ create_product(C)
i--
updateUsrDialog()