Skip to content

Commit

Permalink
Tint control fix (#955)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает
Дождались ParadiseSS13#23821 и ParadiseSS13#23820,
теперь возвращаем всю логику с оффов, отменяя переопределение
`attack_hand()`. Докручиваем анимацию, чтоб соответствовало новой логике
кнопок.
<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #1234" (где 1234 - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

## Почему это хорошо для игры
Описано в ПРах выше. Анимацию адаптируем, чтоб красиво.
<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

## Тестирование
Было, норм.
<!-- Как вы тестировали свой PR, если делали это вовсе? -->

## Changelog

:cl: Maxiemar
tweak: Кнопки управления электрохромными окнами (tint control),
размещенные во время раунда, теперь работают в пределах комнаты.
fix: Исправлено взаимодействие с кнопками управления электрохромными
окнами (tint control). В частности, ограничение работы при отсутствии
питания, оставление отпечатков и т.п.
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
m-dzianishchyts committed Feb 9, 2024
1 parent 2917381 commit 464a843
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions modular_ss220/aesthetics/windowtint/code/windowtint.dm
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,29 @@
icon_state = "polarizer-0"
layer = ABOVE_WINDOW_LAYER

/obj/machinery/button/windowtint/attack_hand(mob/user)
/obj/machinery/button/windowtint/try_attack_hand(mob/user)
if(..())
return TRUE
if(!allowed(user) && !user.can_advanced_admin_interact())
to_chat(user, span_warning("Access Denied."))
flick("polarizer-denied",src)
playsound(src, pick('modular_ss220/aesthetics/windowtint/sound/button.ogg', 'modular_ss220/aesthetics/windowtint/sound/button_alternate.ogg', 'modular_ss220/aesthetics/windowtint/sound/button_meloboom.ogg'), 20)
return 1
return TRUE
return FALSE

toggle_tint()
icon_state= "polarizer-turning_on"
addtimer(CALLBACK(src, PROC_REF(update_windowtint_icon)), 0.5 SECONDS)
/obj/machinery/button/windowtint/toggle_tint()
..()
if(range != TINT_CONTROL_RANGE_AREA)
animate_windowtint()
return
for(var/obj/machinery/button/windowtint/button in button_area)
if(button.range != TINT_CONTROL_RANGE_AREA || (button.id != id && button.id != TINT_CONTROL_GROUP_NONE))
continue
button.animate_windowtint()

if(!active)
icon_state= "polarizer-turning_off"
addtimer(CALLBACK(src, PROC_REF(update_windowtint_icon)), 0.5 SECONDS)
/obj/machinery/button/windowtint/proc/animate_windowtint()
icon_state = active ? "polarizer-turning_on" : "polarizer-turning_off"
addtimer(CALLBACK(src, PROC_REF(update_windowtint_icon)), 0.5 SECONDS)

/obj/machinery/button/windowtint/proc/update_windowtint_icon()
icon_state = "polarizer-[active]"

0 comments on commit 464a843

Please sign in to comment.