diff --git a/modular_ss220/aesthetics/windowtint/code/windowtint.dm b/modular_ss220/aesthetics/windowtint/code/windowtint.dm index bf1a409571ab..0d919352a13e 100644 --- a/modular_ss220/aesthetics/windowtint/code/windowtint.dm +++ b/modular_ss220/aesthetics/windowtint/code/windowtint.dm @@ -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]"