Makes All-In-One Grinders constructable

All-In-One Grinders can now be constructed from a machine frame using the appropriate circuit board, 2 manipulators and a matter bin.
This commit is contained in:
TheSardele
2019-07-19 17:58:52 +02:00
parent f0abbd38d2
commit 30f313cb93
4 changed files with 44 additions and 5 deletions
@@ -591,6 +591,16 @@ to destroy them and players will be able to make replacements.
/obj/item/stock_parts/micro_laser = 1,
/obj/item/stock_parts/console_screen = 1)
/obj/item/circuitboard/reagentgrinder
name = "circuit board (All-In-One Grinder)"
build_path = /obj/machinery/reagentgrinder/empty
board_type = "machine"
origin_tech = "materials=2;engineering=2;biotech=2"
frame_desc = "Requires 2 Manipulators and 1 Matter Bin."
req_components = list(
/obj/item/stock_parts/manipulator = 2,
/obj/item/stock_parts/matter_bin = 1)
//Almost the same recipe as destructive analyzer to give people choices.
/obj/item/circuitboard/experimentor
name = "circuit board (E.X.P.E.R.I-MENTOR)"
@@ -9,7 +9,7 @@
active_power_usage = 100
pass_flags = PASSTABLE
var/operating = 0
var/obj/item/reagent_containers/beaker = null
var/obj/item/reagent_containers/beaker = new /obj/item/reagent_containers/glass/beaker/large
var/limit = 10
//IMPORTANT NOTE! A negative number is a multiplier, a positive number is a flat amount to add. 0 means equal to the amount of the original reagent
@@ -88,10 +88,18 @@
var/list/holdingitems = list()
/obj/machinery/reagentgrinder/empty
icon_state = "juicer0"
beaker = null
/obj/machinery/reagentgrinder/New()
..()
beaker = new /obj/item/reagent_containers/glass/beaker/large(src)
return
component_parts = list()
component_parts += new /obj/item/circuitboard/reagentgrinder(null)
component_parts += new /obj/item/stock_parts/manipulator(null)
component_parts += new /obj/item/stock_parts/manipulator(null)
component_parts += new /obj/item/stock_parts/matter_bin(null)
RefreshParts()
/obj/machinery/reagentgrinder/Destroy()
QDEL_NULL(beaker)
@@ -112,8 +120,16 @@
if(default_unfasten_wrench(user, I))
return
if(anchored && !beaker)
if(default_deconstruction_screwdriver(user, "juicer_open", "juicer0", I))
return
if(panel_open && istype(I, /obj/item/crowbar))
default_deconstruction_crowbar(I)
return
if (istype(I, /obj/item/reagent_containers) && (I.container_type & OPENCONTAINER) )
if (!beaker)
if (!beaker && !panel_open)
if(!user.drop_item())
return 1
beaker = I
@@ -121,7 +137,10 @@
update_icon()
src.updateUsrDialog()
else
to_chat(user, "<span class='warning'>There's already a container inside.</span>")
if(!panel_open)
to_chat(user, "<span class='warning'>There's already a container inside.</span>")
else
to_chat(user, "<span class='warning'>Close the maintenance panel first.</span>")
return 1 //no afterattack
if(is_type_in_list(I, dried_items))
@@ -192,6 +192,16 @@
build_path = /obj/item/circuitboard/chem_heater
category = list ("Medical Machinery")
/datum/design/reagentgrinder
name = "Machine Design (All-In-One Grinder)"
desc = "The circuit board for a chemical heater."
id = "reagentgrinder"
req_tech = list("biotech" = 2, "materials" = 2, "programming" = 2)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000)
build_path = /obj/item/circuitboard/reagentgrinder
category = list ("Medical Machinery")
/datum/design/sleeper
name = "Machine Board (Sleeper)"
desc = "Allows for the construction of circuit boards used to build a Sleeper."
Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB