godot-cli-control 0.2.16__tar.gz → 0.2.17__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/PKG-INFO +1 -1
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/render_api.gd +11 -4
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_render_api.gd +19 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/_version.py +2 -2
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/.gitignore +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/LICENSE +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/CHANGELOG.md +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/LICENSE +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/README.md +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bin/run_cli_control.ps1 +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bin/run_cli_control.sh +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/capture_logger.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/diagnostics_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/error_codes.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/game_bridge.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/game_bridge.gd.uid +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/input_simulation_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/input_simulation_api.gd.uid +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/low_level_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/low_level_api.gd.uid +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/scene_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/time_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/variant_codec.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/wait_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/plugin.cfg +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/plugin.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/plugin.gd.uid +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_diagnostics_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_game_bridge.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_input_simulation_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_low_level_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_scene_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_time_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_variant_codec.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/gut/test_wait_api.gd +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/run_gut.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/run_gut.sh +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/test_init_walkthrough.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/test_walkthrough.sh +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/pyproject.toml +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/README.md +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/__init__.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/__main__.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/_duration.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/bridge.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/cli.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/client.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/daemon.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/init_cmd.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/pytest_plugin.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/registry.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/runner.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/skills_install.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/templates/__init__.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/templates/skill/SKILL.md +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/templates/skill/__init__.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/__init__.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_bridge.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_cli.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_cli_helpers.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_client.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_daemon.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_duration.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_client_direct.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_diag.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_example.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_input.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_record.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_render.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_scene.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_screenshot_gui.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_time.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_init.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_issue_fixes.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_pytest_plugin.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_registry.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_runner.py +0 -0
- {godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_skills_install.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: godot-cli-control
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.17
|
|
4
4
|
Summary: WebSocket bridge for headless / scripted control of Godot scenes.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ClaymanTwinkle/godot-cli-control
|
|
6
6
|
Project-URL: Repository, https://github.com/ClaymanTwinkle/godot-cli-control
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/render_api.gd
RENAMED
|
@@ -30,8 +30,8 @@ func handle_sprite_info(params: Dictionary) -> Dictionary:
|
|
|
30
30
|
)
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
## screenshot --node 的边界计算:节点 local rect → 经 canvas/camera
|
|
34
|
-
##
|
|
33
|
+
## screenshot --node 的边界计算:节点 local rect → 经 canvas/camera + content
|
|
34
|
+
## scale 变换的物理像素坐标 AABB。返回 Rect2,失败返回 error Dictionary(1010)。
|
|
35
35
|
## static:只依赖传入节点自身的变换链,便于 GUT 直接单测(无需真渲染)。
|
|
36
36
|
static func compute_node_screen_rect(node: Node) -> Variant:
|
|
37
37
|
if not (node is CanvasItem):
|
|
@@ -51,9 +51,16 @@ static func compute_node_screen_rect(node: Node) -> Variant:
|
|
|
51
51
|
% node.get_class(),
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
# get_global_transform_with_canvas 含 CanvasLayer / Camera2D
|
|
55
|
-
#
|
|
54
|
+
# get_global_transform_with_canvas 含 CanvasLayer / Camera2D 变换,结果是画布
|
|
55
|
+
# (逻辑设计分辨率)坐标;再乘 viewport.get_final_transform()(content scale 的
|
|
56
|
+
# stretch 缩放 + letterbox 偏移)才与取图侧 get_image() 的物理像素系对齐——
|
|
57
|
+
# 漏乘时 hiDPI / 拉伸窗口下裁剪整体偏左上且偏小(#137)。平窗(物理 == 逻辑)
|
|
58
|
+
# 环境 final transform 为 identity,行为不变。Transform2D * Rect2 返回旋转后
|
|
59
|
+
# 四角的 AABB。
|
|
56
60
|
var xform: Transform2D = (node as CanvasItem).get_global_transform_with_canvas()
|
|
61
|
+
var viewport: Viewport = (node as CanvasItem).get_viewport()
|
|
62
|
+
if viewport != null:
|
|
63
|
+
xform = viewport.get_final_transform() * xform
|
|
57
64
|
return xform * (local_rect_or_null as Rect2)
|
|
58
65
|
|
|
59
66
|
|
|
@@ -184,6 +184,25 @@ func test_screen_rect_sprite2d_centered_with_scale() -> void:
|
|
|
184
184
|
assert_eq(rect as Rect2, Rect2(92, 46, 16, 8))
|
|
185
185
|
|
|
186
186
|
|
|
187
|
+
func test_screen_rect_applies_viewport_final_transform() -> void:
|
|
188
|
+
# content scale(hiDPI / stretch 窗口)回归(#137):rect 必须落在取图侧
|
|
189
|
+
# get_image() 的物理像素系。SubViewport size(200,100) + size_2d_override(100,50)
|
|
190
|
+
# + stretch 构造 final transform = scale 2:Control (10,20,30,40) → (20,40,60,80)。
|
|
191
|
+
# 漏乘 final transform 时返回画布坐标 (10,20,30,40),hiDPI 下裁剪整体错位。
|
|
192
|
+
var viewport := SubViewport.new()
|
|
193
|
+
viewport.size = Vector2i(200, 100)
|
|
194
|
+
viewport.size_2d_override = Vector2i(100, 50)
|
|
195
|
+
viewport.size_2d_override_stretch = true
|
|
196
|
+
add_child_autofree(viewport)
|
|
197
|
+
var ctl := Control.new()
|
|
198
|
+
ctl.position = Vector2(10, 20)
|
|
199
|
+
ctl.size = Vector2(30, 40)
|
|
200
|
+
viewport.add_child(ctl)
|
|
201
|
+
var rect: Variant = RenderApiScript.compute_node_screen_rect(ctl)
|
|
202
|
+
assert_true(rect is Rect2, "stretch viewport 内 Control 应能算出 Rect2,实际: %s" % [rect])
|
|
203
|
+
assert_eq(rect as Rect2, Rect2(20, 40, 60, 80))
|
|
204
|
+
|
|
205
|
+
|
|
187
206
|
func test_screen_rect_non_canvas_item_returns_1010() -> void:
|
|
188
207
|
var plain := Node.new()
|
|
189
208
|
plain.name = "PlainNode"
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.2.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 2,
|
|
21
|
+
__version__ = version = '0.2.17'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 2, 17)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/error_codes.gd
RENAMED
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/game_bridge.gd
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/scene_api.gd
RENAMED
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/time_api.gd
RENAMED
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/bridge/wait_api.gd
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/plugin.gd.uid
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/run_gut.py
RENAMED
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/addons/godot_cli_control/tests/run_gut.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/pytest_plugin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/skills_install.py
RENAMED
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/godot_cli_control/templates/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_client_direct.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godot_cli_control-0.2.16 → godot_cli_control-0.2.17}/python/tests/test_e2e_screenshot_gui.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|