A Thing About Digging Sand and Mineral Processor Speed (#7778)

* sand digging/mineral processor speed squashed

* typo moment + stacker also goes fast

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
This commit is contained in:
Hatterhat
2020-12-21 18:34:40 -09:00
committed by GitHub
co-authored by Hatterhat
parent 0c22294a90
commit 8c790d91b4
8 changed files with 99 additions and 20 deletions
+33 -5
View File
@@ -65,7 +65,7 @@
dat += "<A href='?src=\ref[src];choice=claim'>Claim points.</A><br>"
else
dat += "No ID inserted. <A href='?src=\ref[src];choice=insert'>Insert ID.</A><br>"
dat += "High-speed processing is <A href='?src=\ref[src];toggle_speed=1'>[(machine.speed_process ? "<font color='green'>active</font>" : "<font color='red'>inactive</font>")]."
dat += "<hr><table>"
for(var/ore in machine.ores_processing)
@@ -122,6 +122,10 @@
show_all_ores = !show_all_ores
if(href_list["toggle_speed"])
machine.toggle_speed()
if(href_list["choice"])
if(istype(inserted_id))
if(href_list["choice"] == "eject")
@@ -163,6 +167,7 @@
var/list/ores_stored[0]
var/static/list/alloy_data
var/active = FALSE
var/tick = 0
var/points = 0
var/static/list/ore_values = list(
@@ -208,6 +213,25 @@
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)
@@ -217,11 +241,11 @@
return
var/list/tick_alloys = list()
if(speed_process)
tick++
//Grab some more ore to process this tick.
for(var/i = 0,i<sheets_per_tick,i++)
var/obj/item/weapon/ore/O = locate() in input.loc
if(!O) break
for(var/obj/item/weapon/ore/O in input.loc)
if(!isnull(ores_stored[O.material]))
ores_stored[O.material]++
points += ore_values[O.material] // Give Points!
@@ -309,7 +333,11 @@
else
continue
console.updateUsrDialog()
if(!(tick % 10) && speed_process)
console.updateUsrDialog()
tick = 0
else
console.updateUsrDialog()
#undef PROCESS_NONE
#undef PROCESS_SMELT
+12
View File
@@ -109,6 +109,18 @@
return
return
/obj/machinery/mineral/stacking_machine/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/mineral/stacking_machine/process()
if (src.output && src.input)
var/turf/T = get_turf(input)
+12 -1
View File
@@ -10,7 +10,6 @@
var/obj/machinery/mineral/input = null
var/obj/machinery/mineral/output = null
/obj/machinery/mineral/unloading_machine/Initialize()
. = ..()
for(var/dir in cardinal)
@@ -22,6 +21,18 @@
if(output)
break
/obj/machinery/mineral/unloading_machine/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/mineral/unloading_machine/process()
if (src.output && src.input)
if (locate(/obj/structure/ore_box, input.loc))
+5
View File
@@ -21,6 +21,7 @@
w_class = ITEMSIZE_LARGE
matter = list(DEFAULT_WALL_MATERIAL = 3750)
var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO
var/sand_dig = FALSE // does this thing dig sand?
origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1)
attack_verb = list("hit", "pierced", "sliced", "attacked")
var/drill_sound = "pickaxe"
@@ -43,6 +44,7 @@
icon_state = "handdrill"
item_state = "jackhammer"
digspeed = 30
sand_dig = TRUE
origin_tech = list(TECH_MATERIAL = 2, TECH_POWER = 3, TECH_ENGINEERING = 2)
desc = "Yours is the drill that will pierce through the rock walls."
drill_verb = "drilling"
@@ -93,6 +95,7 @@
icon_state = "diamonddrill"
item_state = "jackhammer"
digspeed = 5 //Digs through walls, girders, and can dig up sand
sand_dig = TRUE
origin_tech = list(TECH_MATERIAL = 6, TECH_POWER = 4, TECH_ENGINEERING = 5)
desc = "Yours is the drill that will pierce the heavens!"
drill_verb = "drilling"
@@ -102,6 +105,7 @@
icon_state = "jackhammer"
item_state = "jackhammer"
digspeed = 15
sand_dig = TRUE
desc = "Cracks rocks with sonic blasts. This one seems like an improved design."
drill_verb = "hammering"
@@ -122,6 +126,7 @@
attack_verb = list("bashed", "bludgeoned", "thrashed", "whacked")
sharp = 0
edge = 1
var/digspeed = 40
/obj/item/weapon/shovel/spade
name = "spade"
+13 -12
View File
@@ -303,19 +303,20 @@ turf/simulated/mineral/floor/light_corner
return
if(!density)
var/valid_tool = 0
var/digspeed = 40
var/list/usable_tools = list(
/obj/item/weapon/shovel,
/obj/item/weapon/pickaxe/diamonddrill,
/obj/item/weapon/pickaxe/drill,
/obj/item/weapon/pickaxe/borgdrill
)
if(istype(W, /obj/item/weapon/shovel))
var/obj/item/weapon/shovel/S = W
valid_tool = 1
digspeed = S.digspeed
var/valid_tool
for(var/valid_type in usable_tools)
if(istype(W,valid_type))
if(istype(W, /obj/item/weapon/pickaxe))
var/obj/item/weapon/pickaxe/P = W
if(P.sand_dig)
valid_tool = 1
break
digspeed = P.digspeed
if(valid_tool)
if (sand_dug)
@@ -329,7 +330,7 @@ turf/simulated/mineral/floor/light_corner
to_chat(user, "<span class='notice'>You start digging.</span>")
playsound(user, 'sound/effects/rustle1.ogg', 50, 1)
if(!do_after(user,40)) return
if(!do_after(user,digspeed)) return
to_chat(user, "<span class='notice'>You dug a hole.</span>")
GetDrilled()
@@ -543,7 +544,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