Ports tgstation/tgstation/pull/15673 (#16495)

* Ports tgstation/tgstation/pull/15673

* Add a small delay to icon updating to cover up SSoverlays

* Fix actions on robot modules
This commit is contained in:
ShadowLarkens
2024-10-20 17:12:24 +02:00
committed by GitHub
parent 37891ba647
commit bcc107c7cd
67 changed files with 562 additions and 384 deletions
-6
View File
@@ -208,12 +208,6 @@ var/list/slot_equipment_priority = list( \
/mob/proc/temporarilyRemoveItemFromInventory(obj/item/I, force = FALSE, idrop = TRUE)
return u_equip(I, force, null, TRUE, idrop)
///sometimes we only want to grant the item's action if it's equipped in a specific slot.
/obj/item/proc/item_action_slot_check(slot, mob/user)
if(slot == SLOT_BACK || slot == LEGS) //these aren't true slots, so avoid granting actions there
return FALSE
return TRUE
///Get the item on the mob in the storage slot identified by the id passed in
/mob/proc/get_item_by_slot(slot_id)
return null
+1 -1
View File
@@ -455,7 +455,7 @@
throw_alert("handcuffed", /obj/screen/alert/restrained/handcuffed, new_master = handcuffed)
else
clear_alert("handcuffed")
update_action_buttons() //some of our action buttons might be unusable when we're handcuffed.
update_action_buttons_icon() //some of our action buttons might be unusable when we're handcuffed.
update_inv_handcuffed()
// Clears blood overlays
@@ -222,7 +222,6 @@ This saves us from having to call add_fingerprint() any time something is put in
else
return 0
update_action_buttons()
return 1
@@ -369,9 +368,6 @@ This saves us from having to call add_fingerprint() any time something is put in
W.hud_layerise()
if(W.action_button_name)
update_action_buttons()
if(W.zoom)
W.zoom()
+1
View File
@@ -1,5 +1,6 @@
/mob/living/death(gibbed)
clear_fullscreens()
update_action_buttons_icon()
if(ai_holder)
ai_holder.go_sleep()
-2
View File
@@ -75,8 +75,6 @@
handle_disabilities() // eye, ear, brain damages
handle_statuses() //all special effects, stunned, weakened, jitteryness, hallucination, sleeping, etc
handle_actions()
update_canmove()
handle_regular_hud_updates()
-16
View File
@@ -524,22 +524,6 @@
/mob/living/proc/reagent_permeability()
return 1
/mob/living/proc/handle_actions()
//Pretty bad, i'd use picked/dropped instead but the parent calls in these are nonexistent
for(var/datum/action/A in actions)
if(A.CheckRemoval(src))
A.Remove(src)
for(var/obj/item/I in src)
if(I.action_button_name)
if(!I.action)
if(I.action_button_is_hands_free)
I.action = new/datum/action/item_action/hands_free
else
I.action = new/datum/action/item_action
I.action.name = I.action_button_name
I.action.target = I
I.action.Grant(src)
return
// Returns a number to determine if something is harder or easier to hit than normal.
/mob/living/proc/get_evasion()
@@ -21,6 +21,9 @@
/mob/living/silicon/robot/proc/uneq_active()
if(isnull(module_active))
return
var/obj/item/I = module_active
for(var/datum/action/A as anything in I.actions)
A.Remove(src)
if(module_state_1 == module_active)
if(istype(module_state_1,/obj/item/borg/sight))
sight_mode &= ~module_state_1:sight_mode
@@ -64,6 +67,9 @@
if (client)
client.screen -= module_state_1
contents -= module_state_1
var/obj/item/I = module_state_1
for(var/datum/action/A as anything in I.actions)
A.Remove(src)
module_state_1:loc = module
module_state_1 = null
inv1.icon_state = "inv1"
@@ -72,6 +78,9 @@
sight_mode &= ~module_state_2:sight_mode
if (client)
client.screen -= module_state_2
var/obj/item/I = module_state_2
for(var/datum/action/A as anything in I.actions)
A.Remove(src)
contents -= module_state_2
module_state_2:loc = module
module_state_2 = null
@@ -81,6 +90,9 @@
sight_mode &= ~module_state_3:sight_mode
if (client)
client.screen -= module_state_3
var/obj/item/I = module_state_3
for(var/datum/action/A as anything in I.actions)
A.Remove(src)
contents -= module_state_3
module_state_3:loc = module
module_state_3 = null
@@ -276,6 +288,9 @@
pounce.icon_state = initial(pounce.icon_state)
pounce.desc = initial(pounce.desc)
pounce.bluespace = initial(pounce.bluespace)
if(O)
for(var/datum/action/A as anything in O.actions)
A.Grant(src)
/mob/living/silicon/robot/put_in_hands(var/obj/item/W) // No hands.
W.forceMove(get_turf(src))
@@ -10,7 +10,6 @@
//Status updates, death etc.
clamp_values()
handle_regular_status_updates()
handle_actions()
handle_instability()
// For some reason borg Life() doesn't call ..()
handle_modifiers()