Merge remote-tracking branch 'citadel/master' into sword_point

This commit is contained in:
kevinz000
2020-02-28 13:39:56 -07:00
410 changed files with 1898 additions and 2307 deletions
@@ -0,0 +1,10 @@
//Prevents calling anything in update_icon() like update_icon_state() or update_overlays()
/datum/element/update_icon_blocker/Attach(datum/target)
. = ..()
if(!istype(target, /atom))
return ELEMENT_INCOMPATIBLE
RegisterSignal(target, COMSIG_ATOM_UPDATE_ICON, .proc/block_update_icon)
/datum/element/update_icon_blocker/proc/block_update_icon()
return COMSIG_ATOM_NO_UPDATE_ICON_STATE | COMSIG_ATOM_NO_UPDATE_OVERLAYS
@@ -0,0 +1,16 @@
//update_icon() may change the onmob icons
//Very good name, I know
/datum/element/update_icon_updates_onmob/Attach(datum/target)
. = ..()
if(!istype(target, /obj/item))
return ELEMENT_INCOMPATIBLE
RegisterSignal(target, COMSIG_ATOM_UPDATED_ICON, .proc/update_onmob)
/datum/element/update_icon_updates_onmob/proc/update_onmob(obj/item/target)
if(ismob(target.loc))
var/mob/M = target.loc
if(M.is_holding(target))
M.update_inv_hands()
else
M.regenerate_icons() //yeah this is shit, but we don't know which update_foo() proc to call instead so we'll call them all