You empty the plant bag into the biogenerator."
else if(O.contents.len == 0)
user << "You empty the plant bag into the biogenerator, filling it to its capacity."
else
user << "You fill the biogenerator to its capacity."
else if(!istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown))
user << "You cannot put this in [src.name]!"
else
var/i = 0
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/G in contents)
i++
if(i >= max_items)
user << "The biogenerator is full! Activate it."
else
user.unEquip(O)
O.loc = src
user << "You put [O.name] in [src.name]"
if(!processing)
if(default_deconstruction_screwdriver(user, "biogen-empty-o", "biogen-empty", O))
if(beaker)
var/obj/item/weapon/reagent_containers/glass/B = beaker
B.loc = loc
beaker = null
if(exchange_parts(user, O))
return
default_deconstruction_crowbar(O)
update_icon()
return
/obj/machinery/biogenerator/interact(mob/user)
if(stat & BROKEN || panel_open)
return
user.set_machine(src)
var/dat
if(processing)
dat += "Biogenerator is processing! Please wait...
"
else
switch(menustat)
if("nopoints")
dat += "You do not have biomass to create products.
Please, put growns into reactor and activate it.
"
menustat = "menu"
if("complete")
dat += "Operation complete.
"
menustat = "menu"
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"
dat += "Food:
"
dat += ""
dat += "10 milk:
Makex5 ([20/efficiency])
"
dat += "10 cream:
Makex5 ([30/efficiency])
"
dat += "Milk Carton:
Makex5 ([100/efficiency])
"
dat += "Cream Carton:
Makex5 ([300/efficiency])
"
dat += "Monkey cube:
Makex5 ([250/efficiency])"
dat += "
"
dat += "Botany Chemicals:
"
dat += ""
dat += "E-Z-Nutrient:
Makex5 ([10/efficiency])
"
dat += "Left 4 Zed:
Makex5 ([20/efficiency])
"
dat += "Robust Harvest:
Makex5 ([25/efficiency])
"
dat += "Weed Killer:
Makex5 ([50/efficiency])
"
dat += "Pest Killer:
Makex5 ([50/efficiency])
"
dat += "
"
dat += "Leather and Cloth:
"
dat += ""
dat += "Wallet:
Make ([100/efficiency])
"
dat += "Book bag:
Make ([200/efficiency])
"
dat += "Plant bag:
Make ([200/efficiency])
"
dat += "Rag:
Make ([200/efficiency])
"
dat += "Mining satchel:
Make ([200/efficiency])
"
dat += "Chemistry bag:
Make ([200/efficiency])
"
dat += "Botanical gloves:
Make ([250/efficiency])
"
dat += "Utility belt:
Make ([300/efficiency])
"
dat += "Security belt:
Make ([300/efficiency])
"
dat += "Medical belt:
Make ([300/efficiency])
"
dat += "Janitorial belt:
Make ([300/efficiency])
"
dat += "Bandolier belt:
Make ([300/efficiency])
"
dat += "Shoulder holster:
Make ([400/efficiency])
"
dat += "Leather Satchel:
Make ([400/efficiency])
"
dat += "Leather Jacket:
Make ([500/efficiency])
"
dat += "Leather Overcoat:
Make ([1000/efficiency])
"
dat += "Rice Hat:
Make ([300/efficiency])
"
dat += "
"
else
dat += "No container inside, please insert container.
"
var/datum/browser/popup = new(user, "biogen", name, 350, 520)
popup.set_content(dat)
popup.open()
return
/obj/machinery/biogenerator/attack_hand(mob/user)
interact(user)
/obj/machinery/biogenerator/proc/activate()
if (usr.stat != 0)
return
if (src.stat != 0) //NOPOWER etc
return
if(src.processing)
usr << "The biogenerator is in the process of working."
return
var/S = 0
for(var/obj/item/weapon/reagent_containers/food/snacks/grown/I in contents)
S += 5
if(I.reagents.get_reagent_amount("nutriment") < 0.1)
points += 1*productivity
else points += I.reagents.get_reagent_amount("nutriment")*10*productivity
qdel(I)
if(S)
processing = 1
update_icon()
updateUsrDialog()
playsound(src.loc, 'sound/machines/blender.ogg', 50, 1)
use_power(S*30)
sleep(S+15/productivity)
processing = 0
update_icon()
else
menustat = "void"
return
/obj/machinery/biogenerator/proc/check_cost(cost)
if (cost > points)
menustat = "nopoints"
return 1
else
points -= cost
processing = 1
update_icon()
updateUsrDialog()
return 0
/obj/machinery/biogenerator/proc/check_container_volume(reagent_amount)
if(beaker.reagents.total_volume + reagent_amount > beaker.reagents.maximum_volume)
menustat = "nobeakerspace"
return 1
/obj/machinery/biogenerator/proc/create_product(create)
switch(create)
if("milk")
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_container_volume(10)) return 0
else if (check_cost(30/efficiency)) return 0
else beaker.reagents.add_reagent("cream",10)
if("cmilk")
if (check_cost(100/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/food/condiment/milk(src.loc)
if("ccream")
if (check_cost(300/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/food/drinks/bottle/cream(src.loc)
if("meat")
if (check_cost(250/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/food/snacks/monkeycube(src.loc)
if("ez")
if (check_cost(10/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez(src.loc)
if("l4z")
if (check_cost(20/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z(src.loc)
if("rh")
if (check_cost(25/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh(src.loc)
if("wk")
if (check_cost(50/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/glass/bottle/weedkiller(src.loc)
if("pk")
if (check_cost(50/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/glass/bottle/pestkiller(src.loc)
if("wallet")
if (check_cost(100/efficiency)) return 0
else new/obj/item/weapon/storage/wallet(src.loc)
if("bkbag")
if (check_cost(200/efficiency)) return 0
else new/obj/item/weapon/storage/bag/books(src.loc)
if("ptbag")
if (check_cost(200/efficiency)) return 0
else new/obj/item/weapon/storage/bag/plants(src.loc)
if("mnbag")
if (check_cost(200/efficiency)) return 0
else new/obj/item/weapon/storage/bag/ore(src.loc)
if("chbag")
if (check_cost(200/efficiency)) return 0
else new/obj/item/weapon/storage/bag/chemistry(src.loc)
if("rag")
if (check_cost(200/efficiency)) return 0
else new/obj/item/weapon/reagent_containers/glass/rag(src.loc)
if("gloves")
if (check_cost(250/efficiency)) return 0
else new/obj/item/clothing/gloves/botanic_leather(src.loc)
if("tbelt")
if (check_cost(300/efficiency)) return 0
else new/obj/item/weapon/storage/belt/utility(src.loc)
if("sbelt")
if (check_cost(300/efficiency)) return 0
else new/obj/item/weapon/storage/belt/security(src.loc)
if("mbelt")
if (check_cost(300/efficiency)) return 0
else new/obj/item/weapon/storage/belt/medical(src.loc)
if("jbelt")
if (check_cost(300/efficiency)) return 0
else new/obj/item/weapon/storage/belt/janitor(src.loc)
if("bbelt")
if (check_cost(300/efficiency)) return 0
else new/obj/item/weapon/storage/belt/bandolier(src.loc)
if("sholster")
if (check_cost(400/efficiency)) return 0
else new/obj/item/weapon/storage/belt/holster(src.loc)
if("satchel")
if (check_cost(400/efficiency)) return 0
else new/obj/item/weapon/storage/backpack/satchel(src.loc)
if("jacket")
if (check_cost(500/efficiency)) return 0
else new/obj/item/clothing/suit/jacket/leather(src.loc)
if("overcoat")
if (check_cost(1000/efficiency)) return 0
else new/obj/item/clothing/suit/jacket/leather/overcoat(src.loc)
if("rice_hat")
if (check_cost(300/efficiency)) return 0
else new/obj/item/clothing/head/rice_hat(src.loc)
processing = 0
menustat = "complete"
update_icon()
return 1
/obj/machinery/biogenerator/proc/detach()
if(beaker)
beaker.loc = src.loc
beaker = null
update_icon()
/obj/machinery/biogenerator/Topic(href, href_list)
if(..() || panel_open)
return
usr.set_machine(src)
if(href_list["activate"])
activate()
updateUsrDialog()
else if(href_list["detach"])
detach()
updateUsrDialog()
else if(href_list["create"])
var/amount = (text2num(href_list["amount"]))
var/i = amount
var/C = href_list["create"]
if(i <= 0)
return
while(i >= 1)
create_product(C)
i--
updateUsrDialog()
else if(href_list["menu"])
menustat = "menu"
updateUsrDialog()