Merge pull request #4898 from Mechoid/Mining_Optimization

Mining Bag / Box Speedification
This commit is contained in:
Anewbe
2018-02-21 16:15:16 -06:00
committed by GitHub
3 changed files with 94 additions and 4 deletions
+6 -4
View File
@@ -14,12 +14,15 @@
if (istype(W, /obj/item/weapon/ore))
user.remove_from_mob(W)
src.contents += W
if (istype(W, /obj/item/weapon/storage))
else if (istype(W, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = W
if(!S.contents.len)
return
S.hide_from(usr)
for(var/obj/item/weapon/ore/O in S.contents)
S.remove_from_storage(O, src) //This will move the item to this item's contents
user << "<font color='blue'>You empty the satchel into the box.</font>"
to_chat(user,"<span class='notice'>You empty the satchel into the box.</span>")
update_ore_count()
@@ -62,13 +65,12 @@
user << "- [stored_ore[ore]] [ore]"
return
/obj/structure/ore_box/verb/empty_box()
set name = "Empty Ore Box"
set category = "Object"
set src in view(1)
if(!istype(usr, /mob/living/carbon/human)) //Only living, intelligent creatures with hands can empty ore boxes.
if(!istype(usr, /mob/living/carbon/human) && !istype(usr, /mob/living/silicon/robot)) //Only living, intelligent creatures with gripping aparatti can empty ore boxes.
usr << "<font color='red'>You are physically incapable of emptying the ore box.</font>"
return
@@ -885,6 +885,18 @@
cleaned_human.update_inv_shoes(0)
cleaned_human.clean_blood(1)
cleaned_human << "<font color='red'>[src] cleans your face!</font>"
if((module_state_1 && istype(module_state_1, /obj/item/weapon/storage/bag/ore)) || (module_state_2 && istype(module_state_2, /obj/item/weapon/storage/bag/ore)) || (module_state_3 && istype(module_state_3, /obj/item/weapon/storage/bag/ore))) //Borgs and drones can use their mining bags ~automagically~ if they're deployed in a slot. Only mining bags, as they're optimized for mass use.
var/obj/item/weapon/storage/bag/ore/B = null
if(istype(module_state_1, /obj/item/weapon/storage/bag/ore)) //First orebag has priority, if they for some reason have multiple.
B = module_state_1
else if(istype(module_state_2, /obj/item/weapon/storage/bag/ore))
B = module_state_2
else if(istype(module_state_3, /obj/item/weapon/storage/bag/ore))
B = module_state_3
var/turf/tile = loc
if(isturf(tile))
B.gather_all(tile, src, 1) //Shhh, unless the bag fills, don't spam the borg's chat with stuff that's going on every time they move!
return
/mob/living/silicon/robot/proc/self_destruct()