diff --git a/plugins/utilities/mood_light.py b/plugins/utilities/mood_light.py index b987043..7807d51 100644 --- a/plugins/utilities/mood_light.py +++ b/plugins/utilities/mood_light.py @@ -1,6 +1,8 @@ # ba_meta require api 7 from __future__ import annotations from typing import TYPE_CHECKING, cast +if TYPE_CHECKING: + from typing import Any, Sequence, Callable, List, Dict, Tuple, Optional, Union import ba,_ba import random @@ -9,14 +11,31 @@ from bastd import mainmenu from bastd.ui.party import PartyWindow from bastd.gameutils import SharedObjects from time import sleep -if TYPE_CHECKING: - from typing import Any, Sequence, Callable, List, Dict, Tuple, Optional, Union -# mood light plugin by ʟօʊքɢǟʀօʊ +"""mood light plugin by ʟօʊքɢǟʀօʊ +type ml in chat or use plugin manager to open settings""" +def Print(*args): + out=" ".join(args) + ba.screenmessage(out) -def Print(arg1, arg2="", arg3=""): - ba.screenmessage(str(arg1)+str(arg2)+str(arg3)) +def cprint(*args): + out="\n".join(args) + _ba.chatmessage(out) +# +#class printerr:#for debugging +# #def __init__(self): +# global errcounter +# errcounter=1 +# def __enter__(self): +# _ba.chatmessage("executing") +# +# def __exit__(self, exc_type, exc_value, exc_tb): +# cprint(exc_type, exc_value, exc_tb) +# if not(exc_type==None): +# cprint(exc_type, exc_value, exc_tb) +# else: +# cprint("Executed sucessfully","No error") try: @@ -32,6 +51,7 @@ try: except: ba.app.config["moodlightEnabled"]=True ba.app.config.commit() + loop=True @@ -98,6 +118,7 @@ class SettingWindow(ba.Window): size=(200, 100), position=(150, 550), scale=2, + selectable=False, h_align="center", v_align="center", text="Mood light settings", @@ -111,24 +132,26 @@ class SettingWindow(ba.Window): color=(1,0,0) if loop else (0,1,0), label="DISABLE" if loop else "ENABLE", on_activate_call=self.on_enableButton_press) - - increase_button = ba.buttonwidget( + + + save_button = ba.buttonwidget( parent=self._root_widget, - position=(600, 100), - size=(5, 1), - scale=3.5, - extra_touch_border_scale=2.5, - icon=ba.gettexture("upButton"), - on_activate_call=self.increase_limit) - - decrease_button = ba.buttonwidget( + position=(520, 470), + size=(90, 70), + scale=1.5, + label="SAVE", + on_activate_call=self.save_settings) + + self.close_button = ba.buttonwidget( parent=self._root_widget, - position=(100, 100), - size=(5, 1), - scale=3.5, - extra_touch_border_scale=2.5, - icon=ba.gettexture("downButton"), - on_activate_call=self.decrease_limit) + position=(550, 590), + size=(35, 35), + icon=ba.gettexture("crossOut"), + icon_color=(1, 0.2, 0.2), + scale=2, + color=(1, 0.2, 0.2), + extra_touch_border_scale=5, + on_activate_call=self.close) self.lower_text = ba.textwidget( parent=self._root_widget, @@ -169,6 +192,24 @@ class SettingWindow(ba.Window): h_align="center", v_align="center", text="Limit brightness") + + decrease_button = ba.buttonwidget( + parent=self._root_widget, + position=(100, 100), + size=(5, 1), + scale=3.5, + extra_touch_border_scale=2.5, + icon=ba.gettexture("downButton"), + on_activate_call=self.decrease_limit) + + increase_button = ba.buttonwidget( + parent=self._root_widget, + position=(600, 100), + size=(5, 1), + scale=3.5, + extra_touch_border_scale=2.5, + icon=ba.gettexture("upButton"), + on_activate_call=self.increase_limit) self.warn_text = ba.textwidget( parent=self._root_widget, @@ -177,27 +218,18 @@ class SettingWindow(ba.Window): position=(150, 300), h_align="center", v_align="center", - maxwidth=600) - - self.close_button = ba.buttonwidget( - parent=self._root_widget, - position=(550, 590), - size=(35, 35), - icon=ba.gettexture("crossOut"), - icon_color=(1, 0.2, 0.2), - scale=2, - color=(1, 0.2, 0.2), - extra_touch_border_scale=5, - on_activate_call=self.close) - - save_button = ba.buttonwidget( - parent=self._root_widget, - position=(520, 470), - size=(90, 70), - scale=1.5, - label="SAVE", - on_activate_call=self.save_settings) + maxwidth=600) +#++++++++++++++++for keyboard navigation++++++++++++++++ + ba.widget(edit=self.enable_button,up_widget=decrease_button,down_widget=self.lower_text,left_widget=save_button,right_widget=save_button) + ba.widget(edit=save_button,up_widget=self.close_button,down_widget=self.upper_text,left_widget=self.enable_button,right_widget=self.enable_button) + ba.widget(edit=self.close_button,up_widget=increase_button,down_widget=save_button,left_widget=self.enable_button,right_widget=save_button) + ba.widget(edit=self.lower_text,up_widget=self.enable_button,down_widget=decrease_button,left_widget=self.upper_text,right_widget=self.upper_text) + ba.widget(edit=self.upper_text,up_widget=save_button,down_widget=increase_button,left_widget=self.lower_text,right_widget=self.lower_text) + ba.widget(edit=decrease_button,up_widget=self.lower_text,down_widget=self.enable_button,left_widget=increase_button,right_widget=increase_button) + ba.widget(edit=increase_button,up_widget=self.upper_text,down_widget=self.close_button,left_widget=decrease_button,right_widget=decrease_button) +#-------------------------------------------------------------------------------------------------- + ba.textwidget(edit=self.upper_text, on_activate_call=ba.Call(self.on_text_click, "upper")) ba.textwidget(edit=self.lower_text, on_activate_call=ba.Call(self.on_text_click, "lower")) @@ -210,9 +242,9 @@ class SettingWindow(ba.Window): color=(0,1,0) elif not loop: loop=True - label="DISABLE" + label="DISABLE" color=(1,0,0) - + Print("Restart level to enable") ba.app.config["moodlightEnabled"]=loop ba.app.config.commit() ba.buttonwidget(edit=self.enable_button,label=label,color=color) @@ -226,39 +258,33 @@ class SettingWindow(ba.Window): def close(self): ba.containerwidget(edit=self._root_widget, transition="out_right",) -Map._old_init = Map.__init__ - def new_chat_message(msg: Union[str, ba.Lstr], clients:Sequence[int] = None, sender_override: str = None): - old_fcm(msg, clients, sender_override) - if msg == 'ml': - try: - Ldefault, Udefault=ba.app.config.get("moodlightingSettings") - SettingWindow() - _ba.chatmessage("Mood light settings opened") - except Exception as err: - Print(err) - + old_fcm(msg, clients, sender_override) + if msg == 'ml': + try: + Ldefault, Udefault=ba.app.config.get("moodlightingSettings") + SettingWindow() + cprint("Mood light settings opened") + except Exception as err: + Print(err) + old_fcm = _ba.chatmessage _ba.chatmessage = new_chat_message - +_ba.set_party_icon_always_visible(True) +Map._old_init = Map.__init__ + # ba_meta export plugin - class moodlight(ba.Plugin): def __init__(self): pass def on_app_running(self): - try: _ba.show_progress_bar() - pass - except Exception as err: - Print(err) - def on_plugin_manager_prompt(self):#called by plugin manager - SettingWindow() - + SettingWindow() + def _new_init(self, vr_overlay_offset: Optional[Sequence[float]] = None) -> None: self._old_init(vr_overlay_offset) in_game = not isinstance(_ba.get_foreground_host_session(), mainmenu.MainMenuSession) @@ -269,7 +295,7 @@ class moodlight(ba.Plugin): default_tint=(1.100000023841858, 1.0, 0.8999999761581421) transition_duration=1.0#for future improvements - def changetint(): + def changetint(): if loop: Range = (random.randrange(Ldefault, Udefault)/10, random.randrange(Ldefault, Udefault)/10, random.randrange(Ldefault, Udefault)/10)