/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/CanAllowThrough(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) qdel(I) return I.on_grind() reagents.add_reagent_list(I.grind_results) qdel(I)