Bot releases are hidden (Show)
现在有 oreui 的按钮啦!
好耶
Published by shenjackyuanjie 10 months ago
感谢 @InfyniteHeap 进行的重构工作
重构了 Rust 部分的文件结构
去除了早期的 serde-xml-rs
和 xml-rs
依赖
quick-xml
在解析 Option<Vec<T>>
有问题quick-xml
的解析方式更符合规范 ( 或者说更明确 )将所有的 logging 去除
lib-not-dr.loggers
现在飞船保存测试的命令叫作 save
api.screen.BaseScreen
on_draw
self, window: ClientWindow
-> self, dt: float, window: ClientWindow
dt
为上一帧到这一帧的时间间隔dt
is the time interval from the last frame to this frameApi_version
-> api_version
_DR_Status
-> _DRStatus
name
= DR Option
-> DR Status
logging
的依赖改为 lib_not_dr.loggers
lib_not_dr
的 logger 了logging
to lib_not_dr.loggers
lib_not_dr
logger in the futurelib-not-dr
lib-not-dr
requirements.txt
吧requirements.txt
rtoml
的依赖
tomli
和 tomlkit
组合rtoml
dependency
tomli
and tomlkit
combinationrequirement-xxx.txt
gen_require.py 0/1/2
来先生成然后安装依赖python gen_require.py 0 ( 运行 / run only )
python gen_require.py 1 ( 构建 / build )
python gen_require.py 2 ( 开发 / develop )
gen_require.py
会在 requirements.txt
中生成依赖requirement-xxx.txt
gen_require.py 0/1/2
to generate and install dependenciespython gen_require.py 0 ( run only )
python gen_require.py 1 ( build )
python gen_require.py 2 ( develop )
gen_require.py
will generate dependencies in requirements.txt
Published by shenjackyuanjie 10 months ago
(文件是 0.8.7.3 但是内容还是 0.8.7.2
assets/fonts
unifont.otf
unifont v 15.1.02
client
load.font
start
file
error
use_time
client.pyglet_load_fonts_folder
os.walk
遍历文件夹tr
进行日志记录BaseScreen
Options
name
选项来识别名称Options
name
option to identify namegui.widget.PressTextButton
Difficult_Rocket.utils.camera.GroupCamera
Difficult_Rocket.utils.camera.CenterGroupCamera
pyglet.graphics.Group
来实现的 Camera
api.camera
里添加了导出
Difficult_Rocket.utils.camera.GroupCamera
Difficult_Rocket.utils.camera.CenterGroupCamera
Camera
using pyglet.graphics.Group
api.camera
xxCamera
添加了
reset
方法reset
method for all xxCamera
Published by shenjackyuanjie over 1 year ago
实际上最近的时间都去写 lib-not-dr
的指令树和应对期末考试
所以最近没多少更新
(好消息 期末考试年级第 16 班级第 4
重构了一下项目结构
Refactored the project structure
assets/
libs/fonts
-> assets/fonts
configs/lang
-> assets/lang
configs/xxx.xml
-> assets/builtin/xxx.xml
textures
-> assets/textures
assets/
SR1PartData_rs
get_id -> IdType
get_x -> f64
get_y -> f64
get_activate -> bool
get_angle_v -> f64
get_explode -> bool
types.rs
& python.rs
利用可用的 Clippy 改进了代码
types.rs
& python.rs
improved the code with available Clippyemail
win32con
smtplib
win32evtlog
win32evtlogutil
win32api
到 --no-follow-import
email
, win32con
, smtplib
, win32evtlog
, win32evtlogutil
, win32api
to --no-follow-import
include_data_dir
移除 libs/fonts
textures
assets
和 config
DR 0.8.6.0
build for
Linux
MacOS
Windows
dr_game 0.3.1.3
package with
dr_rs 0.2.15.2
build for
cpython 3.8 amd64 windows
cpython 3.10 amd64 windows
cpython 3.11 amd64 windows
cpython 3.8 darwin
cpython 3.8 x86_64 linux-gnu
cpython 3.10 darwin
cpython 3.10 x86_64 linux-gnu
cpython 3.11 x86_64 linux-gnu
pypy 3.8 7.3 amd64 windows
pypy 3.9 7.3 amd64 windows
pypy 3.10 7.3 amd64 windows
Published by shenjackyuanjie over 1 year ago
crash
引用了已经重命名的 Difficult_Rocket.game_version
(Difficult_Rocket.sdk_version
)Camera
和 CenterCamera
添加到 Difficult_Rocket.api.camera
Camera
and CenterCamera
to Difficult_Rocket.api.camera
sr_tr
加载语言文件的路径并没有跟随目录名称改变
sr_tr
does not follow the directory name change when loading the language file pathDifficult_Rocket.api.camera.Camera
类
Difficult_Rocket.api.camera.Camera
classDR 0.8.5.2
build for
Linux
MacOS
Windows
dr_game 0.3.1.1
package with
dr_rs 0.2.15.0
build for
cpython 3.8 amd64 windows
cpython 3.10 amd64 windows
cpython 3.11 amd64 windows
cpython 3.8 darwin
cpython 3.8 x86_64 linux-gnu
cpython 3.10 darwin
cpython 3.10 x86_64 linux-gnu
cpython 3.11 x86_64 linux-gnu
pypy 3.8 7.3 amd64 windows
pypy 3.9 7.3 amd64 windows
pypy 3.10 7.3 amd64 windows
Published by shenjackyuanjie over 1 year ago
Difficult_Rocket.__init__
game_version
-> sdk_version
ModManager
get_mod_module(mod_name: str) -> Optional[ModInfo]
load_mod(mod_path: Path) -> Optional[ModInfo]
find_mods_in_path(extra_mods_path: Optional[List[Path]]) -> List[Path]
unload_mod(mod_id: str, game: Game) -> Optional[ModInfo]
reload_mod(mod_id: str, game: Game)
DR.client.guis.widget.InputBox
TextEntry
已经好了 可以直接用了TextEntry
is ok to usemods
list
reload <mod_id>
utils.camera
Camera
CenterCamera
DR sdk
的关于 mods 的修改
DR sdk
RustConsole
DR sdk
的关于 mods 的修改DR sdk
IdType = i64
PySR1Ship
get_connection -> Vec<(i32, i32, IdType, IdType)>
SR1Ship
写入
SR1Ship
writesr1_ship
中的 Camera_rs
改为 Difficult_Rocket.utils.camera.Camera
Camera_rs
in sr1_ship
to Difficult_Rocket.utils.camera.Camera
render.rs
DR game
的 camera
代替render.rs
DR game
's camera
insteadquick-xml::writer::Writer
的 xml SR1Ship
写入
SR1Ship
write based on quick-xml::writer::Writer
Python::data::PySR1Ship
get_part_box(&self, part_id: i64) -> Option<(f64, f64), (f64, f64)>
DR_sdk
0.8.3.0
的修改types.py
DR.api.types.SR1
中移动过来console.py
PyConsole
DR sdk
的默认控制台方法Windows
上构建会输出到 build\nuitka-windows
Windows
will output to build\nuitka-windows
DR 0.8.5.0
build for
Linux
MacOS
Windows
dr_game 0.3.0.0
package with
dr_rs 0.2.15.0
build for
cpython 3.8 amd64 windows
cpython 3.10 amd64 windows
cpython 3.11 amd64 windows
cpython 3.8 darwin
cpython 3.8 x86_64 linux-gnu
cpython 3.10 darwin
cpython 3.10 x86_64 linux-gnu
cpython 3.11 x86_64 linux-gnu
pypy 3.8 7.3 amd64 windows
pypy 3.9 7.3 amd64 windows
pypy 3.10 7.3 amd64 windows
Published by shenjackyuanjie over 1 year ago
.otf
格式的字体文件的问题dr_game
相关的键值
dr_game
自己的语言文件中了dr_game
dr_game
itselfutils.translate
Tr
lang_path
logging
的配置转移到 __init__
中了
logging
的时候可以正常使用logging
is moved to __init__
logging
can be used normally when calledTrue
/False
了
/
开头的)True
/False
/
)CommandText
find
str.startswith
检测是否以要求的字符串开头
re.match
str.startswith
to detect whether it starts with the required string
re.match
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.8.3.0...0.8.4.0
Published by shenjackyuanjie over 1 year ago
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.8.2.0...0.8.3.0
DR_sdk
0.8.3.0
的修改pyglet_rs
DR_runtime
进行格式化)DR_status
DR_runtime
DR_runtime
-> DR_status
client_running
server_running
Difficult_Rocket.DR_runtime
DR_version
-> DR_status.DR_version
API_version
-> DR_status.API_version
Build_version
-> DR_status.Build_version
default_language
-> DR_status.default_language
Diffiuclt_Rocket.long_version
Version
有一个完整的版本号比较机制)Version
has a complete version comparison mechanism)Difficult_Rocket.DR_rust_available
DR_rs
的耦合了long_version: int = 15
"""
long_version: 一个用于标记内部协议的整数
15: 完全移除 DR_rust 相关内容 解耦完成
14: BaseScreen 的每一个函数都添加了一个参数: window: "ClientWindow"
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
"""
files:
DR 0.8.3.0
build for
Linux
MacOS
Windows
dr_game 0.2.0.0
package with
dr_rs 0.2.10.1
build for
cpython 3.8 amd64 windows
cpython 3.10 amd64 windows
cpython 3.11 amd64 windows
cpython 3.8 darwin
cpython 3.8 x86_64 linux-gnu
(not sure can use)cpython 3.10 darwin
cpython 3.10 x86_64 linux-gnu
cpython 3.11 x86_64 linux-gnu
pypy 3.8 7.3 amd64 windows
pypy 3.9 7.3 amd64 windows
pypy 3.10 7.3 amd64 windows
Published by shenjackyuanjie over 1 year ago
#27 啊啊啊啊啊啊啊 WHY FIX ISSUE AFTER RELEASE
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.8.1.0...0.8.2.0
Published by shenjackyuanjie over 1 year ago
#24
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.8.0.1...0.8.1.0
api.types.SR1
dr_game
中api.types
Version
(libs.MCDR.version.Version
)Difficult_Rocket.api.types.Options
str_option
__str__
__repr__
Options
可以被 print
打印console
类在 get_command
时 没有检查是否为空pyglet
兼容模块
Windows
上 --no-follow-import
pyglet.libs.x11
libs/utils/nuitka.py
生成types.py
DR.api.types.SR1
中移动过来console.py
PyConsole
DR sdk
的默认控制台方法types.rs
Option<Vec<Step>>
的 sr1_data.rs
Vec<Step>
-> Option<Vec<Step>>
无法解析 带 staging 不带 steps的飞船
python::PySR1PartType
get_descriptiton -> String
get_sprite -> String
get_width -> u32
get_height -> u32
get_friction
get_hidden
sr1_data
inflation
Option<bool>
-> Option<f64>
field: "missing field Activate"
<DisconnectedParts/>
types::sr1::get_max_box
types::math::Rotatable
python::console::PyConsole
std::thread
的多线程控制台DR sdk
的默认控制台方法
std::thread
DR sdk
BorrowMutError
Published by shenjackyuanjie over 1 year ago
#19
#20
#21
#22
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.8.0.0...0.8.0.1
Published by shenjackyuanjie over 1 year ago
也许能用?
这回真的更新了好多东西
update logs的搬运(
Difficult_Rocket
_test_
prefixpyglet
pypy3.10
(well······ not success (because OpenGL, blame it))crash-report
have more informationpyglet.app.run()
use multiprocesslibs/
lib when using pyglet
or json5
tools.config()
is tools.load_file()
lang
file have server``client
and window
DEBUGGING
to test or check game run stats
True
it will always make a crash reportDifficult_Rocket.api.translate.Lang
can be used to auto translate text in configs/lang/xxx.json5
translate.tr[xxx]
to use translated info.format
to format info's {}
Lang
will try to find translate in default language translatezh-CN
)crash
now have more information about multiprocessclient
logs/
is not found logger will info logger.mkdir
0.5.2
client.Client
and server.Server
only use net_mode
optionapi.new_thread
have no more extra line of testingconfigs/view.json5
now removedmouse.release
and language
to en-uslanguage
to zh-CN
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 foundtr.lang(xx, xx)
Published by shenjackyuanjie over 1 year ago
Difficult Rocket
will only fit python3.8+
:=
HarmonyOS_Sans
Difficult_Rocket.graphics.widgets.Parts
libs/fonts
now have HarmonyOS_Sans
fonton_key_press
and on_key_release
and on_text
game.config
config filelang/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 notstart.cmd
witch could debug easierwindow
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
t
to call out a message window
/
to open command line/min_fps
/max_fps
/stop
/default
Published by shenjackyuanjie over 1 year ago
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.7.2.1...0.8.0.0
0.8.0.0
+ DR_api 0.1.0.0
+ DR_rs 0.2.7.0
+ 15啊哈! mod 加载来啦!
啊啊啊啊啊 大重构 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
: 关闭调用的来源0.2.7.0
__init__.py
SR1Ship_rs
的 typing
name
description
lift_off
touch_ground
img_pos() -> Tuple[int, int, int, int]
SR1Ship_rs
SR1Ship_rs
types::SR1PartData
get_box(&self, part_type: &SR1PartType) -> (f64, f64, f64, f64)
types::SR1Ship
from_file
Console_rs
game.config
DR_option
& DR_runtime
(long_version
15
)
DR_rust
部分
DR_rust
partclient
不会在 setup()
中调用 DR_runtime
的 find_mods()
方法
client
will not call the find_mods()
method of DR_runtime
in setup()
Difficult_Rocket.crash
write_options
methodwrite_markdown_tablet
method
Option().as_markdown()
Difficult_Rocket.utils.new_thread
Diffiuclt_Rocket.utils.thread
Difficult_Rocket.utils.thread
Threads
main.toml
game.mods.path
Difficult_Rocket.mod.MODInfo
-> Difficult_Rocket.api.mod.ModInfo
Difficult_Rocket.DR_runtime
mod_path: str
字段DR_Mod_List: List[Tuple[str, Version]]
字段load_mods() -> None
方法find_mods -> List[str]
方法
mod_path: str
fieldDR_Mod_List: List[Tuple[str, Version]]
fieldload_mods() -> None
methodfind_mods -> List[str]
methodutils.new_thread
Difficult_Rocket.api
Difficult_Rocket.api.types.Options
( Difficult_Rocket.utils.options.Options
)
options
-> _options
option_with_len(self) ->
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
Options
init mods
init console
init logger
load_file
Difficult_Rocket.command.api.CommandText
find
-> re_find
Difficult_Rocket.api.types.Options
( Difficult_Rocket.utils.options.Options
)
as_markdown
方法
Options
类的所有字段as_markdown
method
Options
class in a human-readable Markdown formatDifficult_Rocket.command.api.CommandText
str.find
的 find(text: str) -> bool
方法find(text: str)
based on str.find
howto/translate.md
SUMMARY.md
howto/translate.md
howto/game/readme.md
contributors
-> Contributing
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 SDKold_self
: Old ModInfo object, can be used to restore information from the last loadPublished by shenjackyuanjie over 1 year ago
Published by shenjackyuanjie over 1 year ago
可算是发布0.7.2.0了
下面就是0.7.3.0的开发了
0.7.2.0
language_set_to
: 设置到对应语言时输出
language_available
: 可用的语言列表
client
config.save.start
config.save.done
Difficult_Rocket.utils.translate
Tr
_language
(@property
) 字段_language
(@property
) fieldinit_translate
lang
参数lang
parametergame.require_DR_rs
DR_rs
才能运行的部分
DR_rs
to runlanguage
TranslateFileNotFound
-> TranslateFileError
lang <language>
lang
命令lang <language>
lang
commandlang <language>
Published by shenjackyuanjie over 1 year ago
说是没有多少东西,你看更新日志有多长就只收到实际上还是写了不少东西的
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
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
dsm.py
dsm.py
BaseScreen
的定义
BaseScreen
cargo fmt
了一遍
cargo fmt
the whole projecttypes::sr1::SR1PartData
types::sr1::SR1PartAttr
-> types::sr1::SR1PartTypeAttr
types::sr1::SR1PartDataAttr
CenterCamera_rs
放回去了
CenterCamera_rs
CenterCamera_rs
back
CenterCamera_rs
Difficult_Rocket.client.render.sr1_ship
Camera_rs
-> CenterCamera_rs
from x import *
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
Difficult_Rocket.client.__init__
Difficult_Rocket.exception.language
Difficult_Rocket.utils.translate
libs.utils.logger
pyproject.toml
中 tool.ruff
的不必要规则忽略
tool.ruff
of pyproject.toml
Published by shenjackyuanjie over 1 year ago
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.7.1.3...0.7.1.4
0.7.1.4
+ DR_rs 0.2.5.4/5
SR1PartType
和 RawPartType
的数据转换方法
Rcs
字段 实际上检测的是 Tank
的问题SR1PartType
and RawPartType
Rcs
field is Tank
SR1PartType
和 RawPartType
的转换Published by shenjackyuanjie over 1 year ago
Full Changelog: https://github.com/shenjackyuanjie/Difficult-Rocket/compare/0.7.1.2...0.7.1.3
0.7.1.3
+ DR_rs 0.2.5.3
+ API 0.0.0.1
+ 13game_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
"""
没别的内容了
version.md
记录了 1.0.0.0
的 Semver++
version.md
records the Semver++
of 1.0.0.0
DR_rs
V 0.2.5.30.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
特征
RawPartType
和 SR1PartType
的互相转换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
add trait SR1PartTypeData
RawPartType
and SR1PartType
to each otheradd convert from sr1_data.rs
to types.rs
DR_rs
V 0.2.5.20.2.5.0
-> 0.2.5.2
sr1_data.rs
PartList.xml
了PartList
对象
PartList.xml
completelyPartList
object after parsingtypes.rs
PartTypes
使其匹配原始 PartList.xml
的数据内容Difficult_Rocket.client.fps.fps_log
FpsLogger
pyglet
Difficult_Rocket.api.__init__.
from .delivery import Delivery
from .delivery import Delivery
.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
Published by shenjackyuanjie over 1 year ago
version.md
记录了 1.0.0.0
的 Semver++
version.md
records the Semver++
of 1.0.0.0
DR_rs
V 0.2.5.30.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
特征
RawPartType
和 SR1PartType
的互相转换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
add trait SR1PartTypeData
RawPartType
and SR1PartType
to each otheradd convert from sr1_data.rs
to types.rs