# ------------------------------- # Difficult Rocket # Copyright © 2020-2023 by shenjackyuanjie 3695888@qq.com # All rights reserved # ------------------------------- from __future__ import annotations from pathlib import Path from typing import TYPE_CHECKING from Difficult_Rocket.api.types import Options, Version sdk_version = Version("0.9.2.0") # SDK 版本 build_version = Version("3.0.1") # 编译文件版本(与游戏本体无关) api_version = Version("0.1.2.3") # API 版本 __version__ = sdk_version if TYPE_CHECKING: from Difficult_Rocket import ( api, data, client, command, crash, exception, server, mod, utils, main, runtime ) """ width = 1003 height = 715 """ __all__ = [ # __init__ "DR_status", # folder "api", "data", "client", "command", "crash", "exception", "server", "mod", "utils", # file "main", "runtime", "sdk_version", "build_version", "api_version", ] class _DRStatus(Options): """ DR 的特性开关 / 基本状态 """ name = "DR Status" # run status client_running: bool = False server_running: bool = False # feature switch InputBox_use_TextEntry: bool = True record_threads: bool = True report_translate_not_found: bool = True use_multiprocess: bool = False use_cProfile: bool = False # tests playing: bool = False debugging: bool = False crash_report_test: bool = False # game version status DR_version: Version = sdk_version # DR SDK 版本 Build_version: Version = build_version # DR 构建 版本 API_version: Version = api_version # DR SDK API 版本 # game options default_language: str = "zh-CN" # window option gui_scale: float = 1.0 # default 1.0 2.0 -> 2x 3 -> 3x @property def std_font_size(self) -> int: return round(12 * self.gui_scale) DR_status = _DRStatus() def load_logger(): log_config_path = Path("./config/lndl-logger.toml") import tomli warn_config = False if not log_config_path.is_file(): # 生成默认配置文件 from Difficult_Rocket.data import log_config try: log_config_path.write_text(log_config.default_config) except (FileNotFoundError, OSError, PermissionError): print("\033[31mFailed to write default log config file\033[0m") warn_config = True logger_config = tomli.loads(log_config.default_config) else: # 读取配置文件 with open(log_config_path, "rb") as f: logger_config = tomli.load(f) # 输入 lndl 进行配置 from lib_not_dr.loggers.config import read_config, get_logger read_config(logger_config) logger = get_logger("main") logger.info("Logger config loaded", tag="DR-init") logger.info(f"DR status:\n{DR_status.as_markdown()}", tag="DR-init") if warn_config: logger.warn("Failed to load log config file, use default config", tag="DR-init") # 读取日志配置 # 也保证可以直接运行,不带日志 ( 因为有默认配置 ) load_logger() if DR_status.playing: from Difficult_Rocket.utils.thread import new_thread def think_it(something): return something @new_thread("think") def think(some_thing_to_think): gotcha = think_it(some_thing_to_think) return gotcha