Example #1
0
def convert(array: {str: str}):
    path: {str: str} = {}

    def loop_inner(a: {str: str}, p: str):  # array, path
        for i in a:
            if isinstance(a[i], dict):
                loop_inner(a[i], p + str(i) + ".")

            else:
                path[p + str(i)] = a[i]

    loop_inner(array, "")
    BetterLogger(name="lang_converter").log_deep_debug("Converted", array)
    BetterLogger(name="lang_converter").log_deep_debug("to", path)
    return path
class _SaveManager(EventDispatcher, BetterLogger):
    tick_logger = BetterLogger(name="SaveManager_tick() | ")

    save_clock: ClockEvent = None

    _game_data_updaters: list[callable] = list()

    def __init__(self):
        EventDispatcher.__init__(self)
        BetterLogger.__init__(self, name="SaveManager")

    def setup(self):
        pass

    def start_clock(self):
        self.save_clock = Clock.schedule_interval(lambda _elapsed_time: self.tick(),
                                                  userSettings.getint("time_between_save"))
        self.log_info("Clock started")

    def end_clock(self):
        self.save_clock.cancel()
        self.tick()
        self.log_info("Clock stopped")

    def tick(self):
        t = Thread(target=self._tick)
        self.log_deep_debug("Created thread -", t, " Starting now")
        self.tick_logger.__log_name_suffix__ = str(t.getName())
        t.start()

    def _tick(self):
        logger = self.tick_logger

        logger.log_debug("Getting info to save for gameData")

        for updater in self._game_data_updaters:
            updater()

        logger.log_debug("Getting info to save for userSettings")

        logger.log_info("Saving...")

        gameData.save()
        userSettings.save()

        logger.log_info("Saved")



    def register_update_game_data_function(self, function: callable):
        self._game_data_updaters.append(function)
        self.log_deep_debug("Registered save function -", function)

    def un_register_update_game_data_function(self, function: callable):
        self._game_data_updaters.remove(function)
        self.log_deep_debug("Unregistered save function -", function)
    os.environ["KCFG_KIVY_WINDOW_ICON"] = AppInfo.window_icon_path

    # noinspection PyUnresolvedReferences
    import kivy
    # noinspection PyUnresolvedReferences
    import kivy3
    # noinspection PyUnresolvedReferences
    import kivy.core.window
    # Fixes sigsegv error when loading images because openGL was not initiated-https://github.com/kivy/kivy/issues/6173
    from kivy.logger import Logger
    Logger.info("Base: Kivy module fully loaded")

    from lib.betterLogger import redo_logger_formatting, BetterLogger
    redo_logger_formatting()
    Logger.info("Base: Kivy logger overwritten")
    base_logger: BetterLogger = BetterLogger(name="Base")

    """
    from resources import Resources, setup

    setup()
    Resources.load_all()
    Logger.info("Base: resources setup and loaded")"""

    from lib.saveManager import SaveManager
    SaveManager.setup()
    base_logger.log_info("SaveManager setup")


    import graphics
    graphics.setup()
Example #4
0
def get_sm() -> APP_NAME_ScreenManager:
    BetterLogger().log_deep_debug("get_sm(): Returning screen manager")
    return App.get_running_app().root.current
Example #5
0
def get_sm() -> SpaceBuilderMergeGameScreenManager:
    BetterLogger().log_deep_debug("get_sm(): Returning screen manager")
    return App.get_running_app().root.current
from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    pass

from lib.betterLogger import BetterLogger

logger = BetterLogger(name="GlobalEvents")


class GlobalEvents:
    bindings: dict[str, list] = {}

    @classmethod
    def bind(cls, **kwargs):
        for event_name, function in kwargs.items():
            cls.check_binding(event_name)

            cls.bindings[event_name].append(function)
            logger.log_debug(function, "was bound to event '", event_name, "'")

    @classmethod
    def register(cls, event_name: str):
        cls.bindings[event_name] = list()
        logger.log_debug("Event '", event_name, "' has been created")

    @classmethod
    def dispatch(cls, event_name: str, *args, **kwargs):
        cls.check_binding(event_name)