diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index b6721566fb4..700bb2b41d4 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -1,7 +1,3 @@
-#define AUTOLATHE_MAIN_MENU 1
-#define AUTOLATHE_CATEGORY_MENU 2
-#define AUTOLATHE_SEARCH_MENU 3
-
/obj/machinery/autolathe
name = "autolathe"
desc = "It produces items using iron and glass."
@@ -181,7 +177,7 @@
var/multiplier = text2num(params["multiplier"])
if(!multiplier)
- to_chat(usr, "[src] only accepts a numerical multiplier!")
+ to_chat(usr, span_alert("[src] only accepts a numerical multiplier!"))
return
var/is_stack = ispath(being_built.build_path, /obj/item/stack)
multiplier = clamp(round(multiplier),1,50)
@@ -219,27 +215,24 @@
if(materials.has_materials(materials_used))
busy = TRUE
- to_chat(usr, "You print [multiplier] item(s) from the [src]")
+ to_chat(usr, span_notice("You print [multiplier] item(s) from the [src]"))
use_power(power)
icon_state = "autolathe_n"
var/time = is_stack ? 32 : (32 * coeff * multiplier) ** 0.8
addtimer(CALLBACK(src, .proc/make_item, power, materials_used, custom_materials, multiplier, coeff, is_stack, usr), time)
. = TRUE
else
- to_chat(usr, "Not enough materials for this operation.")
+ to_chat(usr, span_alert("Not enough materials for this operation."))
else
- to_chat(usr, "The autolathe is busy. Please wait for completion of previous operation.")
+ to_chat(usr, span_alert("The autolathe is busy. Please wait for completion of previous operation."))
/obj/machinery/autolathe/on_deconstruction()
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
materials.retrieve_all()
/obj/machinery/autolathe/attackby(obj/item/O, mob/living/user, params)
- if (busy)
- to_chat(user, "The autolathe is busy. Please wait for completion of previous operation.")
- return TRUE
-
- if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", O))
+ if(busy)
+ balloon_alert(user, "it's busy!")
return TRUE
if(default_deconstruction_crowbar(O))
@@ -257,7 +250,7 @@
if(istype(O, /obj/item/disk/design_disk))
user.visible_message(span_notice("[user] begins to load \the [O] in \the [src]..."),
- span_notice("You begin to load a design from \the [O]..."),
+ balloon_alert(user, "uploading design..."),
span_hear("You hear the chatter of a floppy drive."))
busy = TRUE
var/obj/item/disk/design_disk/D = O
@@ -268,8 +261,28 @@
busy = FALSE
return TRUE
+ if(panel_open)
+ balloon_alert(user, "close the panel first!")
+ return FALSE
+
return ..()
+/obj/machinery/autolathe/attackby_secondary(obj/item/weapon, mob/living/user, params)
+ if(busy)
+ balloon_alert(user, "it's busy!")
+ return TRUE
+
+ if(default_deconstruction_screwdriver(user, "autolathe_t", "autolathe", weapon))
+ return FALSE //returning this as FALSE prevents the screwdriver from being immediately eaten by the autolathe after you screw the panel open/closed. why? don't ask me
+
+ if(machine_stat)
+ return TRUE
+
+ if(panel_open)
+ balloon_alert(user, "close the panel first!")
+ return FALSE
+
+ return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
/obj/machinery/autolathe/proc/AfterMaterialInsert(obj/item/item_inserted, id_inserted, amount_inserted)
if(istype(item_inserted, /obj/item/stack/ore/bluespace_crystal))