diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm
index ca0e186ac9..d166b52fbe 100644
--- a/code/__defines/mobs.dm
+++ b/code/__defines/mobs.dm
@@ -26,7 +26,7 @@
#define BORGMESON 0x1
#define BORGTHERM 0x2
#define BORGXRAY 0x4
-#define BORGMATERIAL 8
+#define BORGMATERIAL 0x8
#define STANCE_ATTACK 11 // Backwards compatability
#define STANCE_ATTACKING 12 // Ditto
diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm
index 6b60255f46..cea6a3bf7b 100644
--- a/code/game/objects/items/weapons/storage/bags.dm
+++ b/code/game/objects/items/weapons/storage/bags.dm
@@ -124,7 +124,7 @@
to_chat(user, "You fill the [src].")
else if(!silent)
to_chat(user, "You fail to pick anything up with \the [src].")
- if(istype(user.pulling, /obj/structure/ore_box/)) //Bit of a crappy way to do this, as it doubles spam for the user, but it works.
+ if(istype(user.pulling, /obj/structure/ore_box)) //Bit of a crappy way to do this, as it doubles spam for the user, but it works.
var/obj/structure/ore_box/O = user.pulling
O.attackby(src, user)
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index da315f2493..c78520121e 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -85,6 +85,7 @@
data["showAllOres"] = show_all_ores
data["power"] = machine.active
+ data["speed"] = machine.speed_process
return data
@@ -137,6 +138,9 @@
else
to_chat(usr, "No valid ID.")
. = TRUE
+ if("speed_toggle")
+ machine.toggle_speed()
+ . = TRUE
else
return FALSE
@@ -204,6 +208,26 @@
if(src.output) break
return
+/obj/machinery/mineral/processing_unit/proc/toggle_speed(var/forced)
+ var/area/refinery_area = get_area(src)
+ if(forced)
+ speed_process = forced
+ else
+ speed_process = !speed_process // switching gears
+ if(speed_process) // high gear
+ STOP_MACHINE_PROCESSING(src)
+ START_PROCESSING(SSfastprocess, src)
+ else // low gear
+ STOP_PROCESSING(SSfastprocess, src)
+ START_MACHINE_PROCESSING(src)
+ for(var/obj/machinery/mineral/unloading_machine/unloader in refinery_area.contents)
+ unloader.toggle_speed()
+ for(var/obj/machinery/conveyor_switch/cswitch in refinery_area.contents)
+ cswitch.toggle_speed()
+ for(var/obj/machinery/mineral/stacking_machine/stacker in refinery_area.contents)
+ stacker.toggle_speed()
+
+
/obj/machinery/mineral/processing_unit/process()
if (!src.output || !src.input)
@@ -215,9 +239,7 @@
var/list/tick_alloys = list()
//Grab some more ore to process this tick.
- for(var/i = 0,iYou start digging.")
playsound(user, 'sound/effects/rustle1.ogg', 50, 1)
- if(!do_after(user,30)) return //YAWN change. 30 from 40
+ if(!do_after(user,digspeed)) return
to_chat(user, "You dug a hole.")
GetDrilled()
@@ -536,7 +537,7 @@ turf/simulated/mineral/floor/light_corner
if(!density)
if(!sand_dug)
sand_dug = 1
- for(var/i=0;i<(rand(3)+2);i++)
+ for(var/i=0;i<5;i++)
new/obj/item/weapon/ore/glass(src)
update_icon()
return
diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm
index 91b04cf494..37dd909a74 100644
--- a/code/modules/recycling/conveyor2.dm
+++ b/code/modules/recycling/conveyor2.dm
@@ -40,6 +40,18 @@
default_apply_parts()
+/obj/machinery/conveyor/proc/toggle_speed(var/forced)
+ if(forced)
+ speed_process = forced
+ else
+ speed_process = !speed_process // switching gears
+ if(speed_process) // high gear
+ STOP_MACHINE_PROCESSING(src)
+ START_PROCESSING(SSfastprocess, src)
+ else // low gear
+ STOP_PROCESSING(SSfastprocess, src)
+ START_MACHINE_PROCESSING(src)
+
/obj/machinery/conveyor/proc/setmove()
if(operating == FORWARDS)
movedir = forwards
@@ -186,6 +198,7 @@
var/list/conveyors // the list of converyors that are controlled by this switch
anchored = 1
+ var/speed_active = FALSE // are the linked conveyors on SSfastprocess?
@@ -200,6 +213,15 @@
if(C.id == id)
conveyors += C
+/obj/machinery/conveyor_switch/proc/toggle_speed(var/forced)
+ speed_active = !speed_active // switching gears
+ if(speed_active) // high gear
+ for(var/obj/machinery/conveyor/C in conveyors)
+ C.toggle_speed(TRUE)
+ else // low gear
+ for(var/obj/machinery/conveyor/C in conveyors)
+ C.toggle_speed(FALSE)
+
// update the icon depending on the position
/obj/machinery/conveyor_switch/proc/update()
diff --git a/tgui/packages/tgui/interfaces/MiningOreProcessingConsole.js b/tgui/packages/tgui/interfaces/MiningOreProcessingConsole.js
index f1a22fbe8b..1b3721b230 100644
--- a/tgui/packages/tgui/interfaces/MiningOreProcessingConsole.js
+++ b/tgui/packages/tgui/interfaces/MiningOreProcessingConsole.js
@@ -15,6 +15,7 @@ export const MiningOreProcessingConsole = (props, context) => {
ores,
showAllOres,
power,
+ speed,
} = data;
return (
@@ -32,12 +33,20 @@ export const MiningOreProcessingConsole = (props, context) => {
)} />
act("power")}>
- {power ? "Smelting" : "Not Smelting"}
-
+
+
+
+
}>
{
);
-};
\ No newline at end of file
+};