/obj/machinery/seed_extractor name = "seed extractor" desc = "Extracts and bags seeds from produce." icon = 'icons/obj/hydroponics_machines.dmi' icon_state = "sextractor" density = 1 anchored = 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() //If you want to make the machine upgradable, this is where you would change any vars basd on its stock parts. return obj/machinery/seed_extractor/attackby(var/obj/item/O as obj, var/mob/user as mob, params) if(default_deconstruction_screwdriver(user, "sextractor_open", "sextractor", O)) return if(exchange_parts(user, O)) return if(default_unfasten_wrench(user, O)) return default_deconstruction_crowbar(O) // Fruits and vegetables. if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/grown) || istype(O, /obj/item/weapon/grown)) user.drop_item(O) var/datum/seed/new_seed_type if(istype(O, /obj/item/weapon/grown)) var/obj/item/weapon/grown/F = O new_seed_type = plant_controller.seeds[F.plantname] else var/obj/item/weapon/reagent_containers/food/snacks/grown/F = O new_seed_type = plant_controller.seeds[F.plantname] if(new_seed_type) to_chat(user, "You extract some seeds from [O].") var/produce = rand(1,4) for(var/i = 0;i<=produce;i++) var/obj/item/seeds/seeds = new(get_turf(src)) seeds.seed_type = new_seed_type.name seeds.update_seed() else to_chat(user, "[O] doesn't seem to have any usable seeds inside it.") qdel(O) //Grass. else if(istype(O, /obj/item/stack/tile/grass)) var/obj/item/stack/tile/grass/S = O to_chat(user, "You extract some seeds from the [S.name].") S.use(1) new /obj/item/seeds/grassseed(loc) return