mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 01:34:01 +00:00
* first push woohoo * more stuff * Update code/datums/components/z_parallax.dm Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> * mothblockification * fuck * fuck 2 * uh * uh yeah style stuff ig * more changes * last changes * fuck * fuck 2 * i hate potatopotato * i hate potato * 2 * a * god * woops * Update code/modules/mapping/space_management/traits.dm Co-authored-by: Kylerace <kylerlumpkin1@gmail.com> * Update code/modules/mapping/space_management/traits.dm Co-authored-by: Kylerace <kylerlumpkin1@gmail.com> * Update code/modules/mapping/space_management/traits.dm Co-authored-by: Kylerace <kylerlumpkin1@gmail.com> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Kylerace <kylerlumpkin1@gmail.com> Co-authored-by: magatsuchi <88991542+magatsuchi@users.noreply.github.com> Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com> Co-authored-by: Kylerace <kylerlumpkin1@gmail.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
61 lines
1.6 KiB
Plaintext
61 lines
1.6 KiB
Plaintext
/**
|
|
* Component that hooks into the client, listens for COMSIG_MOVABLE_Z_CHANGED, and depending on whether or not the
|
|
* Z-level has ZTRAIT_NOPARALLAX enabled, disable or reenable parallax.
|
|
*/
|
|
|
|
/datum/component/zparallax
|
|
dupe_mode = COMPONENT_DUPE_UNIQUE
|
|
|
|
var/client/tracked
|
|
var/mob/client_mob
|
|
|
|
/datum/component/zparallax/Initialize(client/tracked)
|
|
. = ..()
|
|
if(!istype(tracked))
|
|
stack_trace("Component zparallax has been initialized outside of a client. Deleting.")
|
|
return COMPONENT_INCOMPATIBLE
|
|
|
|
src.tracked = tracked
|
|
client_mob = tracked.mob
|
|
|
|
RegisterSignal(client_mob, COMSIG_MOB_LOGOUT, .proc/mob_change)
|
|
RegisterSignal(client_mob, COMSIG_MOVABLE_Z_CHANGED, .proc/ztrait_checks)
|
|
RegisterSignal(client_mob, COMSIG_MOB_LOGIN, .proc/refresh_client)
|
|
|
|
/datum/component/zparallax/Destroy()
|
|
. = ..()
|
|
unregister_signals()
|
|
|
|
tracked = null
|
|
client_mob = null
|
|
|
|
/datum/component/zparallax/proc/unregister_signals()
|
|
if(!client_mob)
|
|
return
|
|
|
|
UnregisterSignal(client_mob, list(COMSIG_MOB_LOGOUT, COMSIG_MOVABLE_Z_CHANGED))
|
|
|
|
/datum/component/zparallax/proc/refresh_client()
|
|
tracked = client_mob.client
|
|
|
|
/datum/component/zparallax/proc/mob_change()
|
|
SIGNAL_HANDLER
|
|
|
|
if(client_mob.key)
|
|
return
|
|
|
|
unregister_signals()
|
|
|
|
client_mob = tracked.mob
|
|
|
|
RegisterSignal(client_mob, COMSIG_MOB_LOGOUT, .proc/mob_change)
|
|
RegisterSignal(client_mob, COMSIG_MOVABLE_Z_CHANGED, .proc/ztrait_checks)
|
|
RegisterSignal(client_mob, COMSIG_MOB_LOGIN, .proc/refresh_client)
|
|
|
|
/datum/component/zparallax/proc/ztrait_checks()
|
|
SIGNAL_HANDLER
|
|
|
|
var/datum/hud/hud = client_mob.hud_used
|
|
|
|
hud.update_parallax_pref(client_mob)
|