/*///////////////Circuit Imprinter (By Darem)//////////////////////// Used to print new circuit boards (for computers and similar systems) and AI modules. */ /obj/structure/machinery/r_n_d/fabricator/circuit_imprinter name = "circuit imprinter" desc = "An advanced device that can only be operated via a nearby RnD console, it can print any circuitboard the user requests, provided it has the correct materials to do so." icon_state = "circuit_imprinter" atom_flags = ATOM_FLAG_OPEN_CONTAINER idle_power_usage = 30 active_power_usage = 2500 build_type = IMPRINTER uses_reagents = TRUE fabrication_loop_type = /datum/looping_sound/synth_fab component_types = list( /obj/item/circuitboard/circuit_imprinter, /obj/item/stock_parts/manipulator, /obj/item/reagent_containers/glass/beaker = 2 ) /obj/structure/machinery/r_n_d/fabricator/circuit_imprinter/upgrade_hints(mob/user, distance, is_adjacent) . += ..() . += "- Materials are drawn from the research material silo linked to the same R&D console." . += "- Upgraded manipulators will improve material use efficiency and increase fabrication speed." . += SPAN_NOTICE(" - The current speed increase is [round((1 - (1 / production_speed)) * 100)]%") . += SPAN_NOTICE(" - The current cost reduction is [round((1 - mat_efficiency) * 100)]%") /obj/structure/machinery/r_n_d/fabricator/circuit_imprinter/RefreshParts() ..() var/total_volume = 0 for(var/obj/item/reagent_containers/glass/beaker in component_parts) total_volume += beaker.reagents.maximum_volume create_reagents(total_volume) for(var/obj/item/reagent_containers/glass/beaker in component_parts) beaker.reagents.trans_to_obj(src, beaker.reagents.total_volume) var/manipulator_rating = 0 for(var/obj/item/stock_parts/manipulator/manipulator in component_parts) manipulator_rating += manipulator.rating mat_efficiency = 1 - (manipulator_rating - 1) / 8 production_speed = manipulator_rating update_icon() /obj/structure/machinery/r_n_d/fabricator/circuit_imprinter/update_icon() if(panel_open) icon_state = "circuit_imprinter_t" else if(build_callback_timer) icon_state = "circuit_imprinter_ani" else icon_state = "circuit_imprinter" /obj/structure/machinery/r_n_d/fabricator/circuit_imprinter/dismantle() for(var/obj/item/reagent_containers/glass/beaker in component_parts) reagents.trans_to_obj(beaker, reagents.total_volume) ..() /obj/structure/machinery/r_n_d/fabricator/circuit_imprinter/is_open_container() . = ..() linked_console?.dispatch_fabrication_jobs()