From e63ebb94d9743d8e690ffa34d74675a328462f0e Mon Sep 17 00:00:00 2001
From: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>
Date: Wed, 4 Dec 2019 21:56:35 +0100
Subject: [PATCH] adds plumbing machine that can grind/juice items (#47881)
cl
add: plumbing machine to grind/juice objects and put it on duct net
/cl
!! it doesnt move shit you need to add belts to feed it!!
sprite by arcanemagician
---
.../plumbing/plumbers/_plumb_machinery.dm | 5 +-
.../plumbing/plumbers/grinder_chemical.dm | 65 ++++++++++++++++++
icons/obj/plumbing/plumbers.dmi | Bin 14628 -> 15439 bytes
tgstation.dme | 1 +
4 files changed, 70 insertions(+), 1 deletion(-)
create mode 100644 code/modules/plumbing/plumbers/grinder_chemical.dm
diff --git a/code/modules/plumbing/plumbers/_plumb_machinery.dm b/code/modules/plumbing/plumbers/_plumb_machinery.dm
index 24410a114e4..09ce731a747 100644
--- a/code/modules/plumbing/plumbers/_plumb_machinery.dm
+++ b/code/modules/plumbing/plumbers/_plumb_machinery.dm
@@ -26,7 +26,10 @@
. = ..()
anchored = bolt
create_reagents(buffer, reagent_flags)
- AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS )
+ AddComponent(/datum/component/simple_rotation, ROTATION_ALTCLICK | ROTATION_CLOCKWISE | ROTATION_COUNTERCLOCKWISE | ROTATION_VERBS, null, CALLBACK(src, .proc/can_be_rotated))
+
+/obj/machinery/plumbing/proc/can_be_rotated(mob/user,rotation_type)
+ return TRUE
/obj/machinery/plumbing/examine(mob/user)
. = ..()
diff --git a/code/modules/plumbing/plumbers/grinder_chemical.dm b/code/modules/plumbing/plumbers/grinder_chemical.dm
new file mode 100644
index 00000000000..9ef1d192b24
--- /dev/null
+++ b/code/modules/plumbing/plumbers/grinder_chemical.dm
@@ -0,0 +1,65 @@
+/obj/machinery/plumbing/grinder_chemical
+ name = "chemical grinder"
+ desc = "chemical grinder."
+ icon_state = "grinder_chemical"
+ layer = ABOVE_ALL_MOB_LAYER
+ reagent_flags = TRANSPARENT | DRAINABLE
+ rcd_cost = 30
+ rcd_delay = 30
+ buffer = 400
+ var/eat_dir = NORTH
+
+/obj/machinery/plumbing/grinder_chemical/Initialize(mapload, bolt)
+ . = ..()
+ AddComponent(/datum/component/plumbing/simple_supply, bolt)
+
+/obj/machinery/plumbing/grinder_chemical/can_be_rotated(mob/user,rotation_type)
+ if(anchored)
+ to_chat(user, "It is fastened to the floor!")
+ return FALSE
+ switch(eat_dir)
+ if(WEST)
+ eat_dir = NORTH
+ return TRUE
+ if(EAST)
+ eat_dir = SOUTH
+ return TRUE
+ if(NORTH)
+ eat_dir = EAST
+ return TRUE
+ if(SOUTH)
+ eat_dir = WEST
+ return TRUE
+
+/obj/machinery/plumbing/grinder_chemical/CanPass(atom/movable/AM)
+ . = ..()
+ if(!anchored)
+ return
+ var/move_dir = get_dir(loc, AM.loc)
+ if(move_dir == eat_dir)
+ return TRUE
+
+/obj/machinery/plumbing/grinder_chemical/Crossed(atom/movable/AM)
+ . = ..()
+ grind(AM)
+
+/obj/machinery/plumbing/grinder_chemical/proc/grind(atom/AM)
+ if(stat & NOPOWER)
+ return
+ if(reagents.holder_full())
+ return
+ if(!isitem(AM))
+ return
+ var/obj/item/I = AM
+ if(I.juice_results || I.grind_results)
+ if(I.juice_results)
+ I.on_juice()
+ reagents.add_reagent_list(I.juice_results)
+ if(I.reagents)
+ I.reagents.trans_to(src, I.reagents.total_volume, transfered_by = src)
+ qdel(I)
+ return
+ I.on_grind()
+ reagents.add_reagent_list(I.grind_results)
+ qdel(I)
+
diff --git a/icons/obj/plumbing/plumbers.dmi b/icons/obj/plumbing/plumbers.dmi
index b9ce30e4eb62667f99e98a0505c97216ec457365..87b94472e677f044d3d498bc53523ab243142ca2 100644
GIT binary patch
literal 15439
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
diff --git a/tgstation.dme b/tgstation.dme
index 06580ae52ba..428937f3543 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -2408,6 +2408,7 @@
#include "code\modules\plumbing\plumbers\acclimator.dm"
#include "code\modules\plumbing\plumbers\destroyer.dm"
#include "code\modules\plumbing\plumbers\filter.dm"
+#include "code\modules\plumbing\plumbers\grinder_chemical.dm"
#include "code\modules\plumbing\plumbers\pill_press.dm"
#include "code\modules\plumbing\plumbers\pumps.dm"
#include "code\modules\plumbing\plumbers\reaction_chamber.dm"