Buildable and upgradable All-In-One Grinder (#35451)
Circuit is in "Biological Processing" techweb node
This commit is contained in:
committed by
CitadelStationBot
parent
7f7bea7468
commit
cdcb5fc72f
@@ -584,6 +584,12 @@
|
|||||||
else
|
else
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
/obj/item/circuitboard/machine/reagentgrinder
|
||||||
|
name = "Machine Design (All-In-One Grinder)"
|
||||||
|
build_path = /obj/machinery/reagentgrinder/constructed
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/stock_parts/manipulator = 1)
|
||||||
|
|
||||||
/obj/item/circuitboard/machine/chem_master/condi
|
/obj/item/circuitboard/machine/chem_master/condi
|
||||||
name = "CondiMaster 3000 (Machine Board)"
|
name = "CondiMaster 3000 (Machine Board)"
|
||||||
build_path = /obj/machinery/chem_master/condimaster
|
build_path = /obj/machinery/chem_master/condimaster
|
||||||
|
|||||||
@@ -11,11 +11,13 @@
|
|||||||
use_power = IDLE_POWER_USE
|
use_power = IDLE_POWER_USE
|
||||||
idle_power_usage = 5
|
idle_power_usage = 5
|
||||||
active_power_usage = 100
|
active_power_usage = 100
|
||||||
|
circuit = /obj/item/circuitboard/machine/reagentgrinder
|
||||||
pass_flags = PASSTABLE
|
pass_flags = PASSTABLE
|
||||||
resistance_flags = ACID_PROOF
|
resistance_flags = ACID_PROOF
|
||||||
var/operating = FALSE
|
var/operating = FALSE
|
||||||
var/obj/item/reagent_containers/beaker = null
|
var/obj/item/reagent_containers/beaker = null
|
||||||
var/limit = 10
|
var/limit = 10
|
||||||
|
var/speed = 1
|
||||||
var/list/holdingitems
|
var/list/holdingitems
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/Initialize()
|
/obj/machinery/reagentgrinder/Initialize()
|
||||||
@@ -24,8 +26,15 @@
|
|||||||
beaker = new /obj/item/reagent_containers/glass/beaker/large(src)
|
beaker = new /obj/item/reagent_containers/glass/beaker/large(src)
|
||||||
beaker.desc += " May contain blended dust. Don't breathe this in!"
|
beaker.desc += " May contain blended dust. Don't breathe this in!"
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/Destroy()
|
/obj/machinery/reagentgrinder/constructed/Initialize()
|
||||||
|
. = ..()
|
||||||
|
holdingitems = list()
|
||||||
QDEL_NULL(beaker)
|
QDEL_NULL(beaker)
|
||||||
|
update_icon()
|
||||||
|
|
||||||
|
/obj/machinery/reagentgrinder/Destroy()
|
||||||
|
if(beaker)
|
||||||
|
beaker.forceMove(drop_location())
|
||||||
drop_all_items()
|
drop_all_items()
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
@@ -33,6 +42,11 @@
|
|||||||
if(beaker)
|
if(beaker)
|
||||||
beaker.ex_act(severity, target)
|
beaker.ex_act(severity, target)
|
||||||
|
|
||||||
|
/obj/machinery/reagentgrinder/RefreshParts()
|
||||||
|
speed = 1
|
||||||
|
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||||
|
speed = M.rating
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/handle_atom_del(atom/A)
|
/obj/machinery/reagentgrinder/handle_atom_del(atom/A)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(A == beaker)
|
if(A == beaker)
|
||||||
@@ -48,10 +62,6 @@
|
|||||||
AM.forceMove(drop_location())
|
AM.forceMove(drop_location())
|
||||||
holdingitems = list()
|
holdingitems = list()
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/deconstruct(disassembled = TRUE)
|
|
||||||
new /obj/item/stack/sheet/metal (drop_location(), 3)
|
|
||||||
qdel(src)
|
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/update_icon()
|
/obj/machinery/reagentgrinder/update_icon()
|
||||||
if(beaker)
|
if(beaker)
|
||||||
icon_state = "juicer1"
|
icon_state = "juicer1"
|
||||||
@@ -59,9 +69,19 @@
|
|||||||
icon_state = "juicer0"
|
icon_state = "juicer0"
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/attackby(obj/item/I, mob/user, params)
|
/obj/machinery/reagentgrinder/attackby(obj/item/I, mob/user, params)
|
||||||
|
//You can only screw open empty grinder
|
||||||
|
if(!beaker && !length(holdingitems) && default_deconstruction_screwdriver(user, icon_state, icon_state, I))
|
||||||
|
return
|
||||||
|
|
||||||
|
if(default_deconstruction_crowbar(I))
|
||||||
|
return
|
||||||
|
|
||||||
if(default_unfasten_wrench(user, I))
|
if(default_unfasten_wrench(user, I))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if(panel_open) //Can't insert objects when its screwed open
|
||||||
|
return TRUE
|
||||||
|
|
||||||
if (istype(I, /obj/item/reagent_containers) && !(I.flags_1 & ABSTRACT_1) && I.is_open_container())
|
if (istype(I, /obj/item/reagent_containers) && !(I.flags_1 & ABSTRACT_1) && I.is_open_container())
|
||||||
if (!beaker)
|
if (!beaker)
|
||||||
if(!user.transferItemToLoc(I, src))
|
if(!user.transferItemToLoc(I, src))
|
||||||
@@ -231,7 +251,7 @@
|
|||||||
pixel_x = old_px
|
pixel_x = old_px
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/proc/operate_for(time, silent = FALSE, juicing = FALSE)
|
/obj/machinery/reagentgrinder/proc/operate_for(time, silent = FALSE, juicing = FALSE)
|
||||||
shake_for(time)
|
shake_for(time / speed)
|
||||||
updateUsrDialog()
|
updateUsrDialog()
|
||||||
operating = TRUE
|
operating = TRUE
|
||||||
if(!silent)
|
if(!silent)
|
||||||
@@ -239,7 +259,7 @@
|
|||||||
playsound(src, 'sound/machines/blender.ogg', 50, 1)
|
playsound(src, 'sound/machines/blender.ogg', 50, 1)
|
||||||
else
|
else
|
||||||
playsound(src, 'sound/machines/juicer.ogg', 20, 1)
|
playsound(src, 'sound/machines/juicer.ogg', 20, 1)
|
||||||
addtimer(CALLBACK(src, .proc/stop_operating), time)
|
addtimer(CALLBACK(src, .proc/stop_operating), time / speed)
|
||||||
|
|
||||||
/obj/machinery/reagentgrinder/proc/stop_operating()
|
/obj/machinery/reagentgrinder/proc/stop_operating()
|
||||||
operating = FALSE
|
operating = FALSE
|
||||||
|
|||||||
@@ -153,6 +153,13 @@
|
|||||||
build_path = /obj/item/circuitboard/machine/smoke_machine
|
build_path = /obj/item/circuitboard/machine/smoke_machine
|
||||||
category = list ("Medical Machinery")
|
category = list ("Medical Machinery")
|
||||||
|
|
||||||
|
/datum/design/board/reagentgrinder
|
||||||
|
name = "Machine Design (All-In-One Grinder)"
|
||||||
|
desc = "The circuit board for an All-In-One Grinder."
|
||||||
|
id = "reagentgrinder"
|
||||||
|
build_path = /obj/item/circuitboard/machine/reagentgrinder
|
||||||
|
category = list ("Medical Machinery")
|
||||||
|
|
||||||
/datum/design/board/clonecontrol
|
/datum/design/board/clonecontrol
|
||||||
name = "Computer Design (Cloning Machine Console)"
|
name = "Computer Design (Cloning Machine Console)"
|
||||||
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
|
desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console."
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
display_name = "Biological Processing"
|
display_name = "Biological Processing"
|
||||||
description = "From slimes to kitchens."
|
description = "From slimes to kitchens."
|
||||||
prereq_ids = list("biotech")
|
prereq_ids = list("biotech")
|
||||||
design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave")
|
design_ids = list("smartfridge", "gibber", "deepfryer", "monkey_recycler", "processor", "gibber", "microwave", "reagentgrinder")
|
||||||
research_cost = 2500
|
research_cost = 2500
|
||||||
export_price = 5000
|
export_price = 5000
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user