Difficult Rocket Update Logs

  • 感谢 Github copilot 的翻译(甚至这句话也是copilot翻译的)
    • 也就意味着以后的更新日志是中文记录+copilot翻译的(当然,也有可能是Easy Translate翻译的)
  • Thanks Github copilot for translate (lazy yes!)
    • Means the update logs will lodge in Chinese and translated by copilot
  • 可惜啊,github copilot 收费了
    • 欸嘿,我现在有 Github 学生包{{footnote: 甚至用的我的课表}}啦
      • Nice, I have Github student pack now

Readme First

most badge can be clicked and jump

关于版本号的说明/about version

Generic badge Generic badge

202305 DR 0.8.0.0 + DR_api 0.1.0.0 + DR_rs 0.2.7.0 + 15

啊哈! mod 加载来啦!

啊啊啊啊啊 大重构 api

现在控制台是 真 多线程了

DR_api 0.1.0.0

  • 大概是一个可用的版本了
  • ModInfo
    • on_load(game: Game, old_self: Optional[ModInfo]) -> bool
      • game: Game 对象 用于存储 DR SDK 的信息
      • old_self: 旧的 ModInfo 对象, 可以用于从上次加载中恢复信息
      • 返回值: 是否加载成功
    • on_client_start(game: Game, client: ClientWindow) -> None
      • game: Game 对象 用于存储 DR SDK 的信息
      • client: ClientWindow 对象 用于传递客户端状态
    • on_client_stop(game: Game, client: ClientWindow, source: str = 'window')
      • game: Game 对象 用于存储 DR SDK 的信息
      • client: ClientWindow 对象 用于传递客户端状态
      • source: 关闭调用的来源

DR_rs 0.2.7.0

  • __init__.py
    • 添加了 SR1Ship_rs 的 typing
      • name
      • description
      • lift_off
      • touch_ground
      • img_pos() -> Tuple[int, int, int, int]
  • 导出了 SR1Ship_rs
    • Exported SR1Ship_rs
  • types::SR1PartData
    • get_box(&self, part_type: &SR1PartType) -> (f64, f64, f64, f64)
  • types::SR1Ship
    • from_file
  • 添加了 Console_rs
    • 用于使用 Rust 多线程读取 stdin
    • Use Rust mutithread to read stdin

Remove

  • game.config
    • 已删除
    • Removed
  • DR_option & DR_runtime(long_version 15)
    • 完全移除 DR_rust 部分
      • Completely removed the DR_rust part
  • 现在 client 不会在 setup() 中调用 DR_runtimefind_mods() 方法
    • Now client will not call the find_mods() method of DR_runtime in setup()
  • Difficult_Rocket.crash
    • Remove write_options method
    • Remove write_markdown_tablet method
      • Replace with Option().as_markdown()
  • Difficult_Rocket.utils.new_thread
    • Moved to Diffiuclt_Rocket.utils.thread
  • Difficult_Rocket.utils.thread
    • Remove Threads

Changes

  • main.toml
    • game.mods.path
      • 存储 mod 的路径
        • Store the path of the mod
  • Difficult_Rocket.mod.MODInfo -> Difficult_Rocket.api.mod.ModInfo
    • 用于存储 mod 的信息
      • Used to store information about the mod
  • Difficult_Rocket.DR_runtime
    • 添加 mod_path: str 字段
    • 添加 DR_Mod_List: List[Tuple[str, Version]] 字段
    • 添加 load_mods() -> None 方法
    • 添加 find_mods -> List[str] 方法
      • Add mod_path: str field
      • Add DR_Mod_List: List[Tuple[str, Version]] field
      • Add load_mods() -> None method
      • Add find_mods -> List[str] method
  • 现在游戏崩溃时会自动在 stdio 中输出崩溃日志 内容跟 crash report 中的基本相同
    • Now when the game crashes, it will automatically output the crash log in stdio
      • The content of the crash log is basically the same as the crash report
  • utils.new_thread
    • 跟随 MCDR 的更新
    • 将记录线程的方式改成 函数回调
      • Follow the update of MCDR
      • Change the way to record threads to function callbacks
  • Difficult_Rocket.api
    • 大重构,移除定义,改为引用
      • Big refactoring, remove definition, change to reference
  • Difficult_Rocket.api.types.Options ( Difficult_Rocket.utils.options.Options )
    • options -> _options
    • option_with_len(self) ->
      • 修改 返回值 类型+类型注释
      • Modify the return value type + type annotation
      • List[Union[List[Tuple[str, Any, Any]], int, Any]]: -> Tuple[List[Tuple[str, Union[Any, Type], Type]], int, int, int]
  • Difficult_Roocket.main.Game
    • 使用 Options 完全重构
    • 分离 init mods init console init logger load_file
      • Completely refactored using Options
      • Separate init mods init console init logger load_file
  • Difficult_Rocket.command.api.CommandText
    • find -> re_find

Add

  • Difficult_Rocket.api.types.Options ( Difficult_Rocket.utils.options.Options )
    • 添加 as_markdown 方法
      • 用于方便的用人类可读的 Markdown 格式 直接输出一个已经实例化的 Options 类的所有字段
    • Add as_markdown method
      • Used to easily output all fields of an instantiated Options class in a human-readable Markdown format
  • Difficult_Rocket.command.api.CommandText
    • 添加基于 str.findfind(text: str) -> bool 方法

    • Add method find(text: str) based on str.find

Docs

  • howto/translate.md
    • 修改为新的 tr 调用方式
      • Modified to the new tr call method
  • SUMMARY.md
    • add howto/translate.md
    • add howto/game/readme.md
    • contributors -> Contributing

Mod Loader

  • ModInfo
    • on_load(game: Game, old_self: Optional[ModInfo]) -> bool
      • game: Game 对象 用于存储 DR SDK 的信息
      • old_self: 旧的 ModInfo 对象, 可以用于从上次加载中恢复信息
      • 返回值: 是否加载成功
        • game: Game object used to store information about the DR SDK
        • old_self: Old ModInfo object, can be used to restore information from the last load
        • Return value: Whether the load is successful

20230422 DR 0.7.2.2 + DR_rs 0.2.6.1 + DR_api 0.0.2.0 + 14

DR_rs V 0.2.6.1

  • python::translate::Translate
    • 正在尝试用 Rust 重写一遍 Difficult_Rocket.utils.translate
      • Trying to rewrite Difficult_Rocket.utils.translate in Rust
  • types::sr1::SR1PartData
    • 正在实现 SR1PartDataTrait
    • 用于转换 RawPartDataSR1PartData
    • 写的真折磨人
    • 移除了 字段 attrOption<T>
      • Implementing SR1PartDataTrait
      • Used to convert RawPartData and SR1PartData
      • It's really torture to write
      • Removed the Option<T> of the field attr
  • types::sr1::SR1PartDataAttr
    • 添加 None 选项
      • Add None option
  • SR1PartDataTrait
    • to_sr_part_data
    • to_raw_part_data

DR_api V 0.0.2.0

  • 用于适应 api.screen 的变化
    • Used to adapt to the changes in api.screen

Changes

  • DR.py
    • 向输出环境信息的地方加入 运行目录 信息
      • Add running directory information to the place where the output environment information
        • os.curdir
        • os.path.abspath(os.curdir)
  • configs/dock1.xml
    • 添加了 DisconnectedParts 部分
    • 用于测试 xml 读取和渲染
      • Added the DisconnectedParts part
      • Used for testing xml reading and rendering
  • Difficult_Rocket.crash
    • 拆分了 write_cache 函数 -> write_cachewrite_info_to_cache
    • 拆分出的函数用于写入日志信息
    • 完善了 typing
      • Split the write_cache function -> write_cache and write_info_to_cache
      • The split function is used to write log information
      • Improved typing
  • 现在 日志 中会输出系统信息
    • (实际上就是用的 crash 的)
      • Now the system information will be output in the log
      • (Actually it's used by crash)
  • api.screen
    • BaseScreen
      • pyglet 提供的函数添加类型提示
        • Add type hints for functions provided by pyglet

breaking changes

  • api.screen
    • BaseScreen
      • 为每一个函数添加了 window: "ClientWindow" 参数
      • 用于传递父窗口信息
        • For each function, add window: "ClientWindow" parameter
        • Used to pass parent window information

Translate

  • 添加
    • main.env.version
      • python
      • DR
      • DR_rs
      • pyglet
      • pyglet_rs
      • 均未使用
        • All not used
  • 修改了中文语言的翻译,在中英混杂的中间加入空格
    • Modified the Chinese translation, and added a space in the middle of Chinese and English

Fix

  • mods 路径不存在时 游戏会崩溃的 bug
    • Bug that the game will crash when the mods path does not exist
  • 游戏崩溃 / 从控制台退出时 WerFault.exe 会跳出来卡住程序的 bug
    • Bug that WerFault.exe will pop up and block the program when the game crashes / exits from the console

20230405 DR 0.7.2.1

Changes

  • Difficult_Rocket.utils.translate
    • 将所有内置字段前面加上了 _
      • Added _ to all built-in fields

20230405 DR 0.7.2.0

Translate

  • 添加
    • language_set_to: 设置到对应语言时输出
      • Display when setting to the corresponding language
    • language_available: 可用的语言列表
      • List of available languages
    • client
      • config.save.start
      • config.save.done
  • Difficult_Rocket.utils.translate
    • Tr
      • 添加了 _language(@property) 字段
      • 用于存储和修改语言
        • Added the _language(@property) field
        • Used to store and modify languages
      • init_translate
        • 添加了 lang 参数
        • 用于设置语言
          • Added the lang parameter
          • Used to set the language
  • game.require_DR_rs
    • 用于标记需要 DR_rs 才能运行的部分
      • Used to mark the parts that need DR_rs to run

Exception

  • language
    • TranslateFileNotFound -> TranslateFileError

Command

  • lang <language>
    • 添加了 lang 命令
    • 直接调用时,会显示可用的语言列表
    • 用法:lang <language>
      • Added the lang command
      • When called directly, the available language list will be displayed
      • Usage: lang <language>

Changes

  • 现在很多输出信息的地方会使用 i18n
    • Now many places that output information will use i18n
  • 现在会在渲染飞船的时候在控制台输出飞船的部件数、总质量、解析时间
    • Now it will output the number of ship parts, total mass, and parsing time when rendering the ship in the console

20230302 DR 0.7.1.5 + Build 1.2.1.0 + DR_rs 0.2.5.6~0.2.6.0 + DR_api 0.0.1.0

文档

  • 现在可以访问 dr.shenjack.top
  • 或者 hws.shenjack.top:81/dr
  • 或者 shenjack.top:81/dr
  • 来访问 DR 的文档页面
    • Now you can visit dr.shenjack.top
    • Or hws.shenjack.top:81/dr
    • Or shenjack.top:81/dr
    • To visit the DR document page

Translate

  • 添加
    • client.sr1_render
      • setup.done
      • setup.use_time
      • xml.loading
      • xml.load_done
      • xml.load_time
      • ship.load
      • ship.load_time
      • ship.info
      • ship.render.done
    • server.use_time
  • 修改
    • client.setup.done -> client.setup.start
    • window.setup.done -> window.setup.start
    • server.setup.done -> server.setup.start

Workflow

  • 新增了 dsm.py
    • 用于将文档部署到服务器
    • 同时保证不会丢下一大堆连接不管
    • 应该吧······
      • Add dsm.py
        • Used to deploy documents to the server
        • At the same time, ensure that there will be no connection left

DR_api V 0.0.1.0

  • 修改了 BaseScreen 的定义
    • 跟随 pyglet master 的修改
      • Modify the definition of BaseScreen
        • Follow the modification of pyglet master

DR_rs V 0.2.6.0

  • 实装了之前的修改 步进版本号

DR_rs V 0.2.5.7

  • 整个项目 cargo fmt 了一遍
    • cargo fmt the whole project
  • types::sr1::SR1PartData
    • 修改了部分字段的定义
    • 补全了缺失的字段
      • Modified the definition of some fields
      • Complete the missing fields
  • types::sr1::SR1PartAttr -> types::sr1::SR1PartTypeAttr
  • +types::sr1::SR1PartDataAttr
    • 用于存储 实际部件 的属性
      • Used to store the attributes of the actual parts
  • 还有一大堆修改,只不过都没实装
    • There are a lot of modifications, but they are not implemented

DR_rs V 0.2.5.6

  • 重新把 CenterCamera_rs 放回去了
    • (事实证明是我确实没好好看文档)
  • 导出了 CenterCamera_rs
    • Replaced CenterCamera_rs back
      • (It turns out that I didn't read the document carefully)
    • Exported CenterCamera_rs

Build V 1.2.1.0

  • Actions 崩溃了 等等吧
  • 恢复了, 摆烂了, 就现在这样挺好的
    • Actions crashed, wait a minute
    • Recovered, it's good now

Build V 1.2.0.0

  • 现在打包之前会移除无用文件
    • Now useless files will be removed before packaging

重命名

  • Difficult_Rocket.client.render.sr1_ship
    • Camera_rs -> CenterCamera_rs

typing

  • 移除了以下文件的 from x import *
    • Remove from x import * in the following files
      • Difficult_Rocket.api.exception.command
      • Difficult_Rocket.api.exception.logger
      • Difficult_Rocket.api.exception.threading
      • Difficult_Rocket.api.exception.unsupport
  • 移除了以下文件的多余引用
    • Remove unnecessary imports in the following files
      • Difficult_Rocket.client.__init__
      • Difficult_Rocket.exception.language
      • Difficult_Rocket.utils.translate
      • libs.utils.logger

移除

  • 移除了 pyproject.tomltool.ruff 的不必要规则忽略
    • Remove unnecessary rule ignore in tool.ruff of pyproject.toml

20230301 DR 0.7.1.4 + DR_rs 0.2.5.4/5

修复了上个版本没有步进版本号的毛病

  • 修复了上个版本没有步进版本号的毛病
    • Fix the problem that the version number of the previous version was not incremented

DR_rs V 0.2.5.5

  • 完成了 SR1PartTypeRawPartType 的数据转换方法
    • 修复了 Rcs 字段 实际上检测的是 Tank 的问题
    • Complete the data conversion method of SR1PartType and RawPartType
      • Fix the problem that the actual detection of Rcs field is Tank

DR_rs V 0.2.5.4

  • 完善了 SR1PartTypeRawPartType 的转换

20230326 DR 0.7.1.3 + DR_rs 0.2.5.3 + API 0.0.0.1 + 13

内部协议 13

from collections import namedtuple
Version = namedtuple("Version", ["version"])  # 版本号 (用于通过 Pycharm 的检查)

game_version = Version("0.7.1.2")  # 游戏版本
build_version = Version("1.1.0.0")  # 编译文件版本(与游戏本体无关)
DR_rust_version = Version("0.2.5.3")  # DR 的 Rust 编写部分的版本
Api_version = Version("0.0.0.1")  # API 版本
long_version: int = 13
"""
long_version: 一个用于标记内部协议的整数
13: 为 DR_runtime 添加 API_version
12: 去除 DR_runtime 的 global_logger
    要 logging 自己拿去(
11: 为 DR_option  添加 use_DR_rust
    修复了一些拼写错误
10: 为 DR_runtime 添加 DR_Rust_get_version
9 : 为 DR_option  添加 pyglet_macosx_dev_test
8 : 为 DR_runtime 添加 DR_rust_version
    为 DR_option  添加 DR_rust_available
    以后就有 DR_rust 了
7 : 为 DR_option 添加 std_font_size
6 : 事实证明, 不如直接用int
5 : 添加 build_version 信息,用于标记编译文件版本,
    游戏版本改为四位数,终于有一个可以让我随便刷的版本号位数了
4 : 把 translate 的字体常量位置改了一下,顺便调换顺序
3 : 就是试试改一下,正好 compiler 要用
2 : 哦,对 longlong 好耶!
1 : 我可算想起来还有这回事了 v0.6.4
"""

没别的内容了

20230326 DR 0.7.1.2 + DR_rs 0.2.5.3

新发布

  • version.md 记录了 1.0.0.0Semver++
    • version.md records the Semver++ of 1.0.0.0
  • Github copilot 翻译了一部分的更新日志
    • Github copilot translated part of the update logs

DR_rs V 0.2.5.3

  • 0.2.5.2 -> 0.2.5.3

  • sr1_data.rs types.rs

    • 公开了一些忘记加 pub 的结构体字段
    • 修改了一些结构体的命名
      • PartType -> RawPartType
      • PartList -> RawPartList
    • 移除了 types.rs 中多余的 PartTypes 方法
    • Damage 实现了 to_damage 方法
    • RawPartType 实现了 to_sr_part_type 方法
      • 写的真够费劲的 (甚至还没写完)
    • 添加 SR1PartTypeData 特征
      • 用于进行 RawPartTypeSR1PartType 的互相转换
    • sr1_data.rs 的各类数据结构做了向 types.rs 的转换
      • 简直折磨人

      • public some forgotten pub fields

      • modify some struct name

        • PartType -> RawPartType
        • PartList -> RawPartList
      • remove redundant PartTypes method in types.rs

      • implement to_damage method for Damage

      • implement to_sr_part_type method for RawPartType

        • write so hard (not finished yet)
      • add trait SR1PartTypeData

        • used to convert RawPartType and SR1PartType to each other
      • add convert from sr1_data.rs to types.rs

        • torture

DR_rs V 0.2.5.2

  • 0.2.5.0 -> 0.2.5.2

  • sr1_data.rs

    • 现在可以完整解析 SR1 的 PartList.xml
    • 解析后会生成一个 PartList 对象
      • Now can parse PartList.xml completely
      • Will generate a PartList object after parsing
  • types.rs

    • 完善 PartTypes 使其匹配原始 PartList.xml 的数据内容

修复

  • 现在编辑器缩放体验会更好 (?)(可能)
    • Now the editor zoom experience will be better (?) (maybe)

更改

  • Difficult_Rocket.client.fps.fps_log
    • class FpsLogger
      • 现在使用类型注释,而不是注释类型
        • Now use type annotation instead of comment type
  • pyglet
    • 现在使用我维护的 local 分支
      • Now use my maintained local branch

删除

  • Difficult_Rocket.api.__init__.
    • 移除了没用的 from .delivery import Delivery
      • Remove unused from .delivery import Delivery
  • 删除了不少的未使用 import
    • Remove unused import

重命名

  • .github/workflows/after_compile.py -> .github/workflows/post_compile.py
  • libs/Difficult_Rocket_rs/src/after_build.py -> libs/Difficult_Rocket_rs/src/post_build.py
  • Difficult_Rocket.crash.crash -> Difficult_Rocket.crash

20230219 V 0.7.1.1

删除了多余的 print

20230219 V 0.7.1.0

命令

  • get_buf
    • 用于截屏 并将文件保存至根目录下面的 test.png

更新

  • 更改了 ClientWindow 启动参数的设置, 实装 ClientOption 的使用
  • SR1PartData 的字段 type_ 重命名为 p_type
  • 现在鼠标滚动更顺滑了

DR_Rs

  • 移动了 SR1PartData 的位置
    • SR1PartData 添加了 connections: Option<Vec<(usize, usize)>> 的字段

20230207 V 0.7.0.2

淦, 忘记步进版本号了(

20230207 V 0.7.0.1

刷个版本号 (确信)

优化

  • 实装 Translate
    • 现在多语言翻译更方便
  • 优化了 action 的构建方式 (应该能开箱即用了)

202301 V 0.7.0.0

啊哈! 现在真就是 0.7 了

毕竟加了一整个 DR_rs

Add

  • libs.Difficult_Rocket_rs (DR_rs) 0.1.0.0
    • get_version_str
      • 返回 DR_rs 的版本号 可以用于检查我有没有忘记跑 after_build.py
      • 别问为啥不是返回一个 Version 对象 问就是懒得转换
    • better_update_pats
      • 用于优化 SR1ShipRender.update_parts 的性能
        • ( Python 原生的 for 循环真慢 )
    • PartDatas
      • 用于在 PyObj 里 暗 渡 陈 仓 装 HashMap<uszie, SR1PartData>
    • Camera_rs
      • 用于闲的没事在 rust 里写个 camera

命令

  • 有点尴尬,sr1 的命令不大好使,改成 debug
  • render
    • reset
      • 用于重置现在这艘船的渲染 (避免你玩着玩着把船玩道不知道什么地方去了)

优化

  • 继续优化未实装的 Translates

20230120 V 0.6.5.0

抱歉,我撒谎了(

0.6 还得来几个版本号

Add

  • 现在将文件拖拽至屏幕内可以渲染默认船只/渲染拖拽上来的解析成功的第一艘船
  • 可以使用类似 SR1 的方式拖拽界面

命令行

  • stop
    • 关闭游戏
  • fps
    • log
      • 输出 fps 信息
    • min
      • 输出 最近 5s 的最小 fps
    • max
      • 输出 最近 5s 的最大 fps
  • default
    • 将窗口大小恢复成默认
  • render
    • 渲染 默认船只
  • sr1
    • 下面的选项都是 DEBUG 用,不保证以后继续保留
    • delta
      • 渲染 SR1 渲染的偏移量
      • mouse
        • 渲染 SR1 渲染的鼠标偏移量
        • delta
          • 渲染 SR1 渲染的鼠标前进偏移量

优化(代码层面)

  • 改掉了 CommandText 里的离谱代码
  • 优化了 tools.load_file 的逻辑(其实是几个版本之前的改动
  • CommandText.match -> CommandText.re_match
  • 感谢 @caffe 的 pyglet macosx 分支
  • 暂未实装
    • Translates 的优化
      • 以后多语言用起来会更方便
    • Tr 的优化
      • Translates 配套
    • Difficult_Rocket_rs
      • DR 的 Rust 优化
      • 基于 pyo3

20221124 V 0.6.4

最后的 0.6 呢

Add

  • Logger!
  • nuitka 文档
  • 准备给我的 5600x 的散热器洗一洗(
  • 一些 client
  • Github Action 的自动 build

Changes

  • utils.translates 中的字体名称常量移动至 api.types.Fonts
  • 删除了 README-cn.md ( 合并到 README.md 中 )
  • README.mdREADME-en.md 的内容统一
  • 重新调整 requirement.txt 的内容 ( 使内容更加有条理性 )
  • 删除了一些无用的代码 ( For second-dev )
  • 更新了 Toml 文件 ( 使其更加规范 )
  • 更新了 screen api
  • 更新了 pyglet 版本
  • 删除了 main.config
  • 更新了 logger
  • 更新了 nuitka.yml
  • 尝试加载 icon
  • 更新了主项目

20220511 V 0.6.3

  • 咕了好久的 update log 了
  • github copilot 卒了,所以没有英文
    • GitHub copy alot break , so no more English

Change

  • api/Exp 改为文件夹 api/Exp/__init__.py
  • 再次重写了 client.load_fonts() 现在改为直接加载单独的 pyglet_load_fonts_folder()
  • 更新了 command/ 里的一大堆东西
  • 退钱!开摆!

202202xx V 0.6.2

Add

  • 添加了 libs.MCDR 文件夹 (new_thread没有包含在内)
    • Add libs.MCDR folder (new_thread not included)
  • 添加对 mod 的支持(还在写啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊)
  • 计划写个设计文档
    • Plan to write a design document

202111 202112xx 20220119 20220207 V 0.6.1

争取12月内发一个release

行了,这都2022年了,我接着摸,等我考完试(20220110)再发

20220207 可算是发了,ruaaaa

Change

  • 修改了 readme 文件的语言切换格式
    • Change the language switch format in readme
  • 更新了所有文件的版权信息 (2021-2022)
    • Update all files copyright information (2021-2022)
  • 重命名 Difficult_Rocket.py -> DR.py
    • 用于修复 Pycharm 检测模块时总是会把主文件检测成主程序,导致一些模块总是检测不到的问题
      • Rename Difficult_Rocket.py -> DR.py
      • Use it to fix Pycharm module detection problem
        • When the main file is detected as the main program, some modules will always be detected as the main program
  • api/translate移动到根目录下
    • move api/translate to root directory
  • 现在命令会慢慢消失,而不是立即消失
    • Now the command will disappear slowly, not immediately
  • 重写了一遍client.load_fonts()
    • rewrite client.load_fonts()
  • 重写了 tools.load_file() 的错误处理和 .config 文件的解析方式
    • 现在 .config 文件解析后会直接返回一个 ConfigParser 对象
    • 也就意味着不能再直接遍历 .config 文件返回的解析 谁遍历.config文件啊
    • 同时也意味着可以直接用解析好的 .config 文件来修改 .config 文件
      • rewrite tools.load_file() error handling and .config file parsing method
        • now .config file parsing after return ConfigParser object
        • that means you can not directly traverse .config file return parsing who traverse .config file
        • also means you can directly use parsed .config file to modify .config file
  • pyglet 添加 Ctrl+CCtrl+V 的快捷键解析
    • add Ctrl+C and Ctrl+V shortcut for pyglet
  • 更新 pyglet2.0dev13
    • update pyglet to 2.0dev13

Command

  • log_tick 指令改为 fps log

    • command log_tick change to fps log
  • maxfps 指令改为 fps max

    • command maxfps change to fps max
  • minfps 指令改为 fps min

    • command minfps change to fps min
  • 命令内容输出使用CommandText而不是str

    • 也就是说可以使用CommandText.match来匹配命令内容
    • command output use CommandText instead of str
      • means you can use CommandText.match to match command content
  • 命令解析现在使用新的CommandText.match

    • command parse now use new CommandText.match

Add

  • 添加内置字体Cascadia_Code
    • add built-in font Cascadia_Code
  • 添加模块 xmltodict pyperclip
    • add modules xmltodict pyperclip
  • 添加了json5 pyglet pyperclip xmltodict 的协议
    • 非常感谢上述模块的作者和维护者们
    • added json5 pyglet pyperclip xmltodict LICENSE
      • thanks a lot to above module's author and maintainer
  • 继续新写了一个基于 HTMLLabelHTMLformatedLabel
    • 同时为他写了一个 decode_text2HTML 工具(这也是咕咕咕的一大部分原因)
    • add a HTMLformatedLabel Label based on HTMLLabel
      • also write a decode_text2HTML tool (also a big reason why lazy)
  • 增加内置模块 toml 和对应的 LICENSE.txt
    • Added built-in module toml and corresponding LICENSE.txt

20211025 V 0.6.0

Command Line Update

Change

  • 现在 Difficult Rocket 只适用于 python3.8+
    • 因为 := 的使用
    • now Difficult Rocket will only fit python3.8+
      • because :=
  • 现在主程序崩溃时的报告处理方式有了新的方式
    • now main crash report handler have new way to handler crash
  • 现在字体文件夹的名字改为 HarmonyOS_Sans
    • now fonts' folder's name is HarmonyOS_Sans

Add

  • Difficult_Rocket.graphics.widgets.Parts
    • have many costume value
  • now libs/fonts have HarmonyOS_Sans font
  • handler of on_key_press and on_key_release and on_text
    • on_key_presson_key_releaseon_text 的处理方式
  • game.config config file
  • lang/en-us.json5 now up to date with lang/zh-CN.json5
  • translate/Lang.翻译 same as Lang.lang
  • command/CommandLine to render command line
  • @new_thread now can option if log this thread to crash or not
  • start.cmd witch could debug easier

Translate

  • Add
    • window
      • message.text
      • command.text
      • text.motion
      • text.motion_select
      • setup.use_time_ns
      • fonts.found
      • game.input_stop
      • game.command_stop
      • game.window_stop
      • game.stop_get
      • game.stop
      • game.end
    • client
      • setup.use_time_ns

Command

  • now you can press t to call out a message window
    • or press / to open command line
    • not done
    • useless until now
  • new command
    • /min_fps
      • get min fps in 5 second
    • /max_fps
      • get max fps in 5 second
    • /stop
      • stop the game
    • /default
      • switch window size to default size

20210928 V 0.5.2

Change

  • now bin folder use the name Difficult_Rocket
  • now test files no longer have _test_ prefix
  • now will always use local pyglet
    • may change later
  • fitting pypy3.10 (well······ not success (because OpenGL, blame it))
  • now crash-report have more information
  • now when pressed, the sprite will rotate randomly
  • now pyglet.app.run() use multiprocess
  • now will always use libs/ lib when using pyglet or json5
  • now tools.config() is tools.load_file()
  • now lang file have server``client and window

Add

  • mods support will be done in 1.0.0
    • just maybe
  • now you can use DEBUGGING to test or check game run stats
    • when True it will always make a crash report
  • now Difficult_Rocket.api.translate.Lang can be used to auto translate text in configs/lang/xxx.json5
    • you can use translate.tr[xxx] to use translated info
    • and use .format to format info's {}
    • if translate is not found, Lang will try to find translate in default language translate
    • (witch was zh-CN)
  • crash now have more information about multiprocess
  • add some unused read_input in client
  • now when logs/ is not found logger will info logger.mkdir

DEBUG

  • now version on the window will be 0.5.2

Delete

  • now client.Client and server.Server only use net_mode option
  • api.new_thread have no more extra line of testing
  • configs/view.json5 now removed

Translate

  • add mouse.release and language to en-us
  • add language to zh-CN
  • add tr.lang(xx, xx) that can solve error on getting item from lang file
    • tr[xxx] can also use but won't solve error when item not found
    • so best use tr.lang(xx, xx)

20210902 V 0.5.1

Change

  • crash report's format
  • crash report now use multithreading!
  • some info in client
  • tools/format_bool now use more clever way to format

Add

  • on_resize(self, width, height): in client
  • auto crash report in bin/crash/create_crash_report
  • bin/api/Exp.py some Exception
  • bin/api/translate to create a translate class that can reload language

20210823 V 0.5.0

Change

  • many sys.path.append() and
  • try: import xxx except: from bin import xxx has been removed
  • and now IDE won't blame you when you open the file anymore!(LOL)
  • Server now use Dev to delivery message between thread(will be done in 0.6.0)
  • test files now use _test_*.py for names

Add

  • crash.py to handle and create crash report (not done)
  • DragSprite (maybe will add in future pyglet update PR has been published)

Delete

  • name_hanlder in configs.py

20210811 V 0.4.6

DEBUG

  • game window doesn't use input (*args, **kwargs) to set up

Change

  • language type zh-cn -> zh-CN
  • game window config now use configs/main.config to config
  • on_mouse_click function's debug message now use self.lang to debug message (witch is multi-language)
  • server client and main now use logging.getLogger()

Add

  • [window_default] in configs/main.config
  • server and client now will output PID and PPID info as INFO
  • client now change to ClientWindow

Delete

  • all game window render has been deleted
    • will be rewritten in 0.5.0
  • delete some useless code
  • delete some useless file

20210723 V 0.4.5

DEBUG

  • new_thread.py link of stackoverflow have an extra 'find' in the middle REMOVED

Add

  • new_thread.py now can use @new_thread to get a threaded fun

Change

  • README.md and README-cn.md change URL to file path
  • README.md and README-cn.md some label style change
  • Pre-installed pyglet upgrade from 1.5.16 -> 1.5.18
  • Pre-installed json5 upgrade from 0.9.5 -> 0.9.6

20210708 V 0.4.4

PS

  • Nice day everyone!
  • I have finish my final exam on grade 8.
  • Will soon reach grade 9, so update will be late very much.

Change

  • function tools.config() way of raise error change tools.report_file_error()
  • function tools.cb() change name to tools.format_bool()
  • config.py clear some useless import class
  • changing configfile to main.config *doing

Test change

  • test_config_file.py
  • test_for_speed.py
  • test_logging_conf.py
  • test_speed_of_sprite.py

20210626 V 0.4.3

DEBUG

  • some name_format bug

Change

  • doing: change render pip line ('m really doing)
  • default FPS from 120 -> 60

Add

  • add performance_test folder
  • add some performances test

20210524 V 0.4.2

DEBUG

  • using python version 3.8.9 still report best3.8+(lang name)(actually is debugging)

Change

  • change back how configs.py/name_format work(replace str) fix some issue
  • doing remake for config sys (lazy yes!)
  • clear bin/pyglet (already exits in bin/lib)

Need Do

  • debug name_format

20210417 V 0.4.1

PS:

  • Va.b.c

  • a : Big Version (Big rewrite times) (now at DEMO making)

  • b : Middle Rewrite Times (Yes I've rewritten for 4 times)

  • c : normal updates

DEBUG

  • solve pre-installed lib can't use
  • solve pre-installed lib's bug
  • some other bugs

Change

  • plan to change config file format to .config (plan to)
  • reformat all files (including libs)

20210409 V 0.2.3/4

Add

  • support many things(also forget)

Change

  • tools.name_handler() now use str.format to handler str
  • DR/sys_value folder now move to DR/configs/sys_value

DEBUG

  • many tools.name_handler() use bug(cause crashes)
  • {date} can be successful use in tools.name_handler() (if you define the format of date)
  • log file's filename incorrect (should be xxxx-xx-xx xx-xx-xx DR.log but be {date} DR.log)

20210327 V 0.2.2/1

Add

  • add local libs
    • pyglet 1.5.15
    • json5 0.9.5

PS: now I'm not sure witch lib will be import first

the local lib or the pip libs

So I'll add some other code to make sure that DR will first try to import pip libs

not the local libs (todo)

DEBUG

  • some bugs(I forget them)
ON THIS PAGE