mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Port TG updating appearances (#17943)
* Get pants that match or else you gonna look silly yo
* Posters
* Fix other hud elements
* Rereviewed
* Update shotglass.dm
* Fix for new merged PRs
* Typo
* Coming across other stuff
* Update theblob.dm
* No takebacksies
* smh i forget to leave a comment
* Updated for the detgun and cards
* Should have rerun langserver again
* No longer plastic, more in scope
* Damn you bluespace
* Reverting turret logic, out of scope at this point
* Tweak that part
* Went over energy guns again, and fixed UI White's sprite sheet
* Welding masks, glasses, and JUSTICE
* Update portable_atmospherics.dm
* Cleaning up, clearing things up
* Review and suggestions
* Update valve.dm
* More tweaks
* Missing character
* Not distinct lightmasks, so they can be overlays
* Update generator.dm
* Add parameter so holodeck doesn't try to make a perfect copy
* Update unsorted.dm
* Spiders
* Better fix for spiders, fix vamps too
* Ghosts
* Update telekinesis.dm
* Cleaning up old procs
* It's set up to not copy datums... Unless they're in a list
* Donuts, duct tape, and detgun. D3VR coming to Early Access
* Update procs that interact with doors so they call update_state instead
* Forgot one spot, and actually might as well just force lock
* Cleaning up other things... Sigh, and kitty ears
* oops
* Getting used to how it works
* blinds
* Going back to the suit obscuring thing, so it doesn't update all the time
* Missed that from merging master
* I made this PR and forgot about it
* Fix runtimes in cards
* Make things a bit more unified
* Update update_icons.dm
* yarn, really?
* Update library_equipment.dm
* Update shieldgen.dm
* Every time Charlie merges something, I go back and see if I can improve things further
* what's this? more?
* Update misc_special.dm
* wow, paper
* Review
* More reviews
* To be sure, seems like being broken messed something sometimes
* Brought airlocks closer to how TG works to iron out some stuff
* Pizza and morgue
* Doesn't seem to hurt, tried with holodeck
* Revert "Doesn't seem to hurt, tried with holodeck"
This reverts commit 158529302b.
* Icon conflict
* Fix organ damage
* Don't ask how. Why. It's like that on prod too.
* Cutting down on things and updating from TG.
* More flexible. Just in case the thing you stuck it on didn't destroy.
* Hydro was one the things I touched earlier on, better rework it
* Reviews
* Cleaning up further, also bri'ish
* Undo a change I did, and switch over to a more recent implementation
* Update biogenerator.dm
* Rolling back to old airlocks, but with new duct taped note
* Functionally the same. I'd just rather not have the smoothing happen there
* Went over APCs again
* Fix welding helmet names in species files
* Update airlock.dm
* Update persistent_overlay.dm
* Oh, topic
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
if(!istype(I)) //Something went wrong
|
||||
return
|
||||
if(!hide_tape) //if TRUE this hides the tape overlay and added examine text
|
||||
RegisterSignal(parent, COMSIG_OBJ_UPDATE_ICON, .proc/add_tape_overlay)
|
||||
RegisterSignal(parent, COMSIG_ATOM_UPDATE_OVERLAYS, .proc/add_tape_overlay)
|
||||
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/add_tape_text)
|
||||
x_offset = x
|
||||
y_offset = y
|
||||
@@ -27,7 +27,7 @@
|
||||
tape_overlay = new('icons/obj/bureaucracy.dmi', "tape")
|
||||
tape_overlay.Shift(EAST, x_offset - 2)
|
||||
tape_overlay.Shift(NORTH, y_offset - 2)
|
||||
O.overlays += tape_overlay
|
||||
O.add_overlay(tape_overlay)
|
||||
|
||||
/datum/component/ducttape/proc/remove_tape(obj/item/I, mob/user)
|
||||
to_chat(user, "<span class='notice'>You tear the tape off [I]!</span>")
|
||||
@@ -38,7 +38,7 @@
|
||||
for(var/datum/action/item_action/remove_tape/RT in I.actions)
|
||||
RT.Remove(user)
|
||||
qdel(RT)
|
||||
I.overlays.Cut(tape_overlay)
|
||||
I.cut_overlay(tape_overlay)
|
||||
user.transfer_fingerprints_to(I)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/datum/component/emissive_blocker
|
||||
/// Stores either the mutable_appearance or a list of them
|
||||
var/stored_blocker
|
||||
|
||||
/datum/component/emissive_blocker/Initialize(_stored_blocker)
|
||||
var/atom/movable/A = parent
|
||||
stored_blocker = _stored_blocker
|
||||
RegisterSignal(parent, COMSIG_ATOM_UPDATE_ICON_STATE, .proc/update_generic_block)
|
||||
A.add_overlay(stored_blocker)
|
||||
|
||||
/datum/component/emissive_blocker/Destroy()
|
||||
stored_blocker = null
|
||||
return ..()
|
||||
|
||||
/// Updates the generic blocker when the icon_state is changed
|
||||
/datum/component/emissive_blocker/proc/update_generic_block(datum/source)
|
||||
var/atom/movable/A = parent
|
||||
if(!A.blocks_emissive && stored_blocker)
|
||||
A.cut_overlay(stored_blocker)
|
||||
stored_blocker = null
|
||||
return
|
||||
if(!A.blocks_emissive)
|
||||
return
|
||||
var/mutable_appearance/gen_emissive_blocker = emissive_blocker(A.icon, A.icon_state, alpha = A.alpha, appearance_flags = A.appearance_flags)
|
||||
gen_emissive_blocker.dir = A.dir
|
||||
if(gen_emissive_blocker != stored_blocker || !A.overlays)
|
||||
A.cut_overlay(stored_blocker)
|
||||
stored_blocker = gen_emissive_blocker
|
||||
A.add_overlay(stored_blocker)
|
||||
@@ -0,0 +1,35 @@
|
||||
/datum/component/persistent_overlay
|
||||
var/image/persistent_overlay = null
|
||||
var/atom/target = null
|
||||
|
||||
/datum/component/persistent_overlay/Initialize(image_overlay, _target, timer)
|
||||
persistent_overlay = image_overlay
|
||||
target = _target
|
||||
if(timer)
|
||||
addtimer(CALLBACK(src, .proc/remove_persistent_overlay), timer)
|
||||
if(target)
|
||||
RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/remove_persistent_overlay)
|
||||
RegisterSignal(parent, COMSIG_PARENT_QDELETING, .proc/remove_persistent_overlay)
|
||||
add_persistent_overlay()
|
||||
|
||||
/datum/component/persistent_overlay/Destroy()
|
||||
persistent_overlay = null
|
||||
target = null
|
||||
return ..()
|
||||
|
||||
/datum/component/persistent_overlay/proc/remove_persistent_overlay(datum/source)
|
||||
var/atom/movable/A
|
||||
if(target)
|
||||
A = target
|
||||
else
|
||||
A = parent
|
||||
A.cut_overlay(persistent_overlay, priority = TRUE)
|
||||
qdel(src)
|
||||
|
||||
/datum/component/persistent_overlay/proc/add_persistent_overlay(datum/source)
|
||||
var/atom/movable/A
|
||||
if(target)
|
||||
A = target
|
||||
else
|
||||
A = parent
|
||||
A.add_overlay(persistent_overlay, priority = TRUE)
|
||||
@@ -364,7 +364,7 @@
|
||||
C.range = 20
|
||||
return C
|
||||
|
||||
/obj/effect/proc_holder/spell/fireball/update_icon()
|
||||
/obj/effect/proc_holder/spell/fireball/update_icon_state()
|
||||
if(!action)
|
||||
return
|
||||
action.button_icon_state = "fireball[active]"
|
||||
|
||||
Reference in New Issue
Block a user