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 +};