/proc/seedify(obj/item/O, t_max, obj/machinery/seed_extractor/extractor)
var/t_amount = 0
if(t_max == -1)
if(extractor)
t_max = rand(1,4) * extractor.seed_multiplier
else
t_max = rand(1,4)
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown/))
var/obj/item/weapon/reagent_containers/food/snacks/grown/F = O
while(t_amount < t_max)
var/obj/item/seeds/t_prod = new F.seed(O.loc, O)
t_prod.lifespan = F.lifespan
t_prod.endurance = F.endurance
t_prod.maturation = F.maturation
t_prod.production = F.production
t_prod.yield = F.yield
t_prod.potency = F.potency
t_amount++
qdel(O)
return 1
else if(istype(O, /obj/item/weapon/grown/))
var/obj/item/weapon/grown/F = O
if(F.seed)
while(t_amount < t_max)
var/obj/item/seeds/t_prod = new F.seed(O.loc, O)
t_prod.lifespan = F.lifespan
t_prod.endurance = F.endurance
t_prod.maturation = F.maturation
t_prod.production = F.production
t_prod.yield = F.yield
t_prod.potency = F.potency
t_amount++
qdel(O)
return 1
else return 0
/*else if(istype(O, /obj/item/stack/tile/grass))
var/obj/item/stack/tile/grass/S = O
new /obj/item/seeds/grassseed(O.loc)
S.use(1)
return 1*/
else
return 0
/obj/machinery/seed_extractor
name = "seed extractor"
desc = "Extracts and bags seeds from produce."
icon = 'icons/obj/hydroponics/equipment.dmi'
icon_state = "sextractor"
density = 1
anchored = 1
var/piles = list()
var/max_seeds = 1000
var/seed_multiplier = 1
/obj/machinery/seed_extractor/New()
..()
component_parts = list()
component_parts += new /obj/item/weapon/circuitboard/seed_extractor(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
RefreshParts()
/obj/machinery/seed_extractor/RefreshParts()
for(var/obj/item/weapon/stock_parts/matter_bin/B in component_parts)
max_seeds = 1000 * B.rating
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
seed_multiplier = M.rating
/obj/machinery/seed_extractor/attackby(obj/item/O, mob/user, params)
if(default_deconstruction_screwdriver(user, "sextractor_open", "sextractor", O))
return
if(exchange_parts(user, O))
return
if(default_pry_open(O))
return
if(default_unfasten_wrench(user, O))
return
default_deconstruction_crowbar(O)
if(isrobot(user))
return
if (istype(O,/obj/item/weapon/storage/bag/plants))
var/obj/item/weapon/storage/P = O
var/loaded = 0
for(var/obj/item/seeds/G in P.contents)
if(contents.len >= max_seeds)
break
++loaded
add(G)
if (loaded)
user << "You put the seeds from \the [O.name] into [src]."
else
user << "There are no seeds in \the [O.name]."
return
if(!user.drop_item()) //couldn't drop the item
user << "\The [O] is stuck to your hand, you cannot put it in the seed extractor!"
return
if(O && O.loc)
O.loc = src.loc
if(seedify(O,-1))
user << "You extract some seeds."
return
else if (istype(O,/obj/item/seeds))
add(O)
user << "You add [O] to [src.name]."
updateUsrDialog()
return
else
user << "You can't extract any seeds from \the [O.name]!"
/datum/seed_pile
var/name = ""
var/lifespan = 0 //Saved stats
var/endurance = 0
var/maturation = 0
var/production = 0
var/yield = 0
var/potency = 0
var/amount = 0
/datum/seed_pile/New(var/name, var/life, var/endur, var/matur, var/prod, var/yie, var/poten, var/am = 1)
src.name = name
src.lifespan = life
src.endurance = endur
src.maturation = matur
src.production = prod
src.yield = yie
src.potency = poten
src.amount = am
/obj/machinery/seed_extractor/attack_hand(mob/user)
user.set_machine(src)
interact(user)
/obj/machinery/seed_extractor/interact(mob/user)
if (stat)
return 0
var/dat = "Stored seeds:
"
if (contents.len == 0)
dat += "No seeds"
else
dat += "
| Name | Lifespan | Endurance | Maturation | Production | Yield | Potency | Stock |
| [O.name] | [O.lifespan] | [O.endurance] | [O.maturation] | " dat += "[O.production] | [O.yield] | [O.potency] | " dat += "Vend ([O.amount] left) |