Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Task][Bug] Постоянные обновления vision мобов #13094

Open
volas opened this issue May 14, 2024 · 1 comment
Open

[Task][Bug] Постоянные обновления vision мобов #13094

volas opened this issue May 14, 2024 · 1 comment
Labels
Bug Task Задания партии

Comments

@volas
Copy link
Member

volas commented May 14, 2024

Беспорядочные обновления eye_blur в течении практически одного тика, например в life

else if(istype(glasses, /obj/item/clothing/glasses/sunglasses/blindfold) || istype(head, /obj/item/weapon/reagent_containers/glass/bucket)) //resting your eyes with a blindfold heals blurry eyes faster
adjustBlurriness(-3)
blinded = 1
else if(eye_blurry) //blurry eyes heal slowly
adjustBlurriness(-1)

мы "лечим" зрение, и тут же в трейте слепоты

/datum/dna/gene/disability/blindness/OnMobLife(mob/living/carbon/human/M) //#Z2
if(!istype(M)) return
M.setBlurriness(200)
M.eye_blind = 200

или в процессинге органа глаз

/obj/item/organ/internal/eyes/process() //Eye damage replaces the old eye_stat var.
..()
if(is_bruised())
owner.blurEyes(20)

дергаем обратно, и таких мест очень много. Каждый не знает о другом.

Каждое изменение eye_blur вызывает обновление соответствующих фильтров на плейне, что может быть затратно.
И возможно было другой частью проблемы, решаемой в #12430 (смотреть комментарий #12430 (comment)) - до этого фикса мы получается могли обновлять в плохом случае несколько сотен (!!!) фильтров на клиенте в тик.

Сейчас после патчей это два фильтра, и я сейчас еще немного сократил лишние вызовы, но всё равно нуждается в переписывании, может на статус трейты.

@TauKitty TauKitty added the Bug label May 14, 2024
@volas volas added the Task Задания партии label May 14, 2024
@volas
Copy link
Member Author

volas commented May 14, 2024

В целом можно еще посмотреть на /mob/living/carbon/update_sight(), с lighting_alpha такая же ситуация. Все эти обновления идут в лайфе, а не по ивентам, и сложно цеплять какие-нибудь сигналы.

С другими счетчиками "дамага" подозреваю похожие проблемы, типо ear_damage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Task Задания партии
Projects
None yet
Development

No branches or pull requests

2 participants