diff --git a/artifacts/canvas_preview/stage1_source_preview.png b/artifacts/canvas_preview/stage1_source_preview.png new file mode 100644 index 0000000..279795e Binary files /dev/null and b/artifacts/canvas_preview/stage1_source_preview.png differ diff --git a/artifacts/canvas_preview/stage1_source_preview_report.json b/artifacts/canvas_preview/stage1_source_preview_report.json new file mode 100644 index 0000000..33313e6 --- /dev/null +++ b/artifacts/canvas_preview/stage1_source_preview_report.json @@ -0,0 +1,11 @@ +{ + "status": "generated", + "image": "/Users/hy/Documents/hy/hygame/farm/artifacts/canvas_preview/stage1_source_preview.png", + "resolution": { + "width": 720, + "height": 1280 + }, + "land_candidates_rendered": 36, + "visible_land_selection": "blocked_missing_runtime_visible_land_rule", + "note": "Diagnostic rendering only; it does not define final Cocos coordinates." +} diff --git a/artifacts/cocos_capture/.gitkeep b/artifacts/cocos_capture/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/cocos_capture/stage1_cocos_verify.json b/artifacts/cocos_capture/stage1_cocos_verify.json new file mode 100644 index 0000000..3ff720d --- /dev/null +++ b/artifacts/cocos_capture/stage1_cocos_verify.json @@ -0,0 +1,40 @@ +{ + "generated_at": "2026-06-19T09:41:49.332153+00:00", + "package": { + "type": "2d", + "version": "4.0.0", + "creator_version": "4.0.0" + }, + "cocos_version": { + "cmd": [ + "zsh", + "-lc", + "cocos --version" + ], + "returncode": 0, + "stdout_tail": "0.0.1-alpha.30\n", + "stderr_tail": "" + }, + "node_abi": { + "cmd": [ + "zsh", + "-lc", + "~/.local/tools/node-v24.14.1-darwin-arm64/bin/node -p 'process.version + \" abi=\" + process.versions.modules'" + ], + "returncode": 0, + "stdout_tail": "v24.14.1 abi=137\n", + "stderr_tail": "" + }, + "build": { + "cmd": [ + "zsh", + "-lc", + "rm -rf temp library build && cocos build --project . --platform web-mobile" + ], + "returncode": 1, + "stdout_tail": "Start record log in {file(/Users/hy/Documents/hy/hygame/farm/temp/logs)}\n[Migration] 已注册 8 个迁移器\n[Migration] 开始执行迁移\n[Migration] 所有迁移执行成功\nℹ injectWebAssembly ...\nInit Base: 9.767ms\nInit Infrastructure: 3.164ms\nInit SubSystem: 3.011ms\nInit Project: 3.151ms\ninitEngine success\n", + "stderr_tail": "Application Support/cocos-default/cocos-4.0.0-alpha.22/packages/cc-module/src/loader.ts:62:35)\n at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)\n at Module. (node:internal/modules/cjs/loader:1556:12)\n at Module.patchedRequire (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:256:27)\n at Module.Hook._require.Module.require (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:181:27)\n at Module.patchedRequire (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:256:27)\n at Module.Hook._require.Module.require (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:181:27)\n\n\n ERROR register asset-handler effect failed!\n\n\n ERROR Error: The module '/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/gl/build/Release/webgl.node'\nwas compiled against a different Node.js version using\nNODE_MODULE_VERSION 140. This version of Node.js requires\nNODE_MODULE_VERSION 137. Please try re-compiling or re-installing\nthe module (for instance, using npm rebuild or npm install).\n at Object..node (node:internal/modules/cjs/loader:1970:18)\n at Module.load (node:internal/modules/cjs/loader:1533:32)\n at Module. (node:internal/modules/cjs/loader:1335:12)\n at ModuleInternal._load (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/packages/cc-module/src/loader.ts:62:35)\n at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)\n at Module. (node:internal/modules/cjs/loader:1556:12)\n at Module.patchedRequire (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:256:27)\n at Module.Hook._require.Module.require (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:181:27)\n at Module.patchedRequire (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:256:27)\n at Module.Hook._require.Module.require (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:181:27)\n\n\n ERROR register asset-handler effect failed!\n\n\n ERROR Failed to build project: Error: The module '/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/gl/build/Release/webgl.node'\nwas compiled against a different Node.js version using\nNODE_MODULE_VERSION 140. This version of Node.js requires\nNODE_MODULE_VERSION 137. Please try re-compiling or re-installing\nthe module (for instance, using npm rebuild or npm install).\n at Object..node (node:internal/modules/cjs/loader:1970:18)\n at Module.load (node:internal/modules/cjs/loader:1533:32)\n at Module. (node:internal/modules/cjs/loader:1335:12)\n at ModuleInternal._load (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/packages/cc-module/src/loader.ts:62:35)\n at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)\n at Module. (node:internal/modules/cjs/loader:1556:12)\n at Module.patchedRequire (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:256:27)\n at Module.Hook._require.Module.require (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:181:27)\n at Module.patchedRequire (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:256:27)\n at Module.Hook._require.Module.require (/Users/hy/Library/Application Support/cocos-default/cocos-4.0.0-alpha.22/node_modules/require-in-the-middle/index.js:181:27)\n\n" + }, + "status": "blocked", + "blocker": "Cocos 4 alpha CLI native gl module expects NODE_MODULE_VERSION 140; local Node 24 reports ABI 137." +} diff --git a/artifacts/visual_compare/.gitkeep b/artifacts/visual_compare/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/artifacts/visual_compare/stage1_roi_report.json b/artifacts/visual_compare/stage1_roi_report.json new file mode 100644 index 0000000..e992228 --- /dev/null +++ b/artifacts/visual_compare/stage1_roi_report.json @@ -0,0 +1,18 @@ +{ + "generated_at": "2026-06-19T09:41:45.956598+00:00", + "module": "main_scene_first_milestone", + "status": "blocked", + "rois": [ + "world_static", + "land_area", + "decor_area", + "bottom_buttons" + ], + "reason": "Cocos-produced screenshot is unavailable because Cocos 4 alpha CLI build fails on native webgl.node ABI mismatch.", + "diagnostic_preview": "/Users/hy/Documents/hy/hygame/farm/artifacts/canvas_preview/stage1_source_preview.png", + "target_thresholds": { + "static_bitmap_similarity": 0.99, + "object_center_delta_px": 2, + "object_size_delta_percent": 1 + } +} diff --git a/assets/audio.meta b/assets/audio.meta new file mode 100644 index 0000000..3ff00e0 --- /dev/null +++ b/assets/audio.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "ff660dd4-0445-4fc3-bc32-9f29b863f6a5", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/audio/.gitkeep b/assets/audio/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/bundles.meta b/assets/bundles.meta new file mode 100644 index 0000000..bbdd4b1 --- /dev/null +++ b/assets/bundles.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "7fc0096d-c38d-414e-9f9c-69e59f20a8c9", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/bundles/.gitkeep b/assets/bundles/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/configs.meta b/assets/configs.meta new file mode 100644 index 0000000..718de45 --- /dev/null +++ b/assets/configs.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "ba427efa-2367-4264-a430-7cb4e18ba5f0", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/configs/.gitkeep b/assets/configs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/i18n.meta b/assets/i18n.meta new file mode 100644 index 0000000..089a4dc --- /dev/null +++ b/assets/i18n.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "3fa67f20-7171-4f96-8936-0c0ec82f9bc1", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/i18n/.gitkeep b/assets/i18n/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/prefabs.meta b/assets/prefabs.meta new file mode 100644 index 0000000..f2e520c --- /dev/null +++ b/assets/prefabs.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "261f65a6-c027-4d00-a45c-044c02776849", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/prefabs/.gitkeep b/assets/prefabs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/resources.meta b/assets/resources.meta new file mode 100644 index 0000000..67f02a1 --- /dev/null +++ b/assets/resources.meta @@ -0,0 +1,14 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "220989bc-812e-49a7-b132-7bdad9d29b69", + "files": [], + "subMetas": {}, + "userData": { + "isBundle": true, + "bundleConfigID": "default", + "bundleName": "resources", + "priority": 8 + } +} diff --git a/assets/resources/.gitkeep b/assets/resources/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/scenes.meta b/assets/scenes.meta new file mode 100644 index 0000000..0b6f5ca --- /dev/null +++ b/assets/scenes.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "20ae4bac-fad8-49ae-9b07-9de2dd0e6599", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/scenes/.gitkeep b/assets/scenes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/scenes/main_stage1.source_scene.json b/assets/scenes/main_stage1.source_scene.json new file mode 100644 index 0000000..5875ca8 --- /dev/null +++ b/assets/scenes/main_stage1.source_scene.json @@ -0,0 +1,2904 @@ +{ + "format": "cocos4_stage1_source_scene", + "status": "source_backed_intermediate_scene_data", + "design_resolution": { + "width": 720, + "height": 1280 + }, + "nodes": { + "startup": [ + { + "index": 1, + "name": "root", + "full_path": "root", + "position": { + "x": 360, + "y": 640, + "z": 0 + }, + "content_size": { + "width": 720, + "height": 1280 + }, + "component_types": [ + "612d2P/T/VGz7Fm4Jof20+e", + "cc.UITransform", + "cc.Canvas", + "cc.Widget" + ], + "children": [ + 2, + 3 + ] + }, + { + "index": 2, + "name": "scene", + "full_path": "root/scene", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "content_size": { + "width": 3320, + "height": 2560 + }, + "component_types": [ + "cc.UITransform", + "cc.Widget" + ], + "children": [ + 4 + ] + }, + { + "index": 3, + "name": "ui", + "full_path": "root/ui", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "content_size": { + "width": 720, + "height": 1280 + }, + "component_types": [ + "cc.UITransform", + "cc.Widget" + ], + "children": [ + 6 + ] + }, + { + "index": 4, + "name": "Camera", + "full_path": "root/scene/Camera", + "position": { + "x": 0, + "y": 0, + "z": 1000 + }, + "content_size": null, + "component_types": [ + "cc.Camera", + "cc.UITransform", + "95c7akihY5GNYe9/Wanw0Ab" + ], + "children": [] + }, + { + "index": 6, + "name": "uiCamera", + "full_path": "root/ui/uiCamera", + "position": { + "x": 0, + "y": 0, + "z": 1000 + }, + "content_size": null, + "component_types": [ + "cc.Camera" + ], + "children": [] + } + ], + "backgrounds": [ + { + "index": 44, + "name": "default", + "category": "world_background", + "full_path": "farm_scene_v3_sprite/Scene/BgLayer/default", + "parent_path": "farm_scene_v3_sprite/Scene/BgLayer", + "parent_name": "BgLayer", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "primary_size": { + "width": 2648.0, + "height": 2924.0 + }, + "anchor": null, + "component_count": 3, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 47, + "name": "bg", + "category": "world_background", + "full_path": "farm_scene_v3_sprite/Scene/bg", + "parent_path": "farm_scene_v3_sprite/Scene", + "parent_name": "Scene", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "primary_size": { + "width": 4320.0, + "height": 2560.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 48, + "name": "BgLayer", + "category": "world_background", + "full_path": "farm_scene_v3_sprite/Scene/BgLayer", + "parent_path": "farm_scene_v3_sprite/Scene", + "parent_name": "Scene", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 1, + "resolved_parent_source": "_parent" + } + ], + "land_candidates": { + "source_count": 36, + "visible_count_required_by_spec": 24, + "selection_status": "blocked_missing_runtime_visible_land_rule", + "nodes": [ + { + "index": 7, + "name": "grid_0_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -109.153, + "y": -77.8, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 8, + "name": "grid_0_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -204.612, + "y": -125.53, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 9, + "name": "grid_1_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -7.011, + "y": -128.871, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 10, + "name": "grid_0_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -300.072, + "y": -173.26, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 11, + "name": "grid_1_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -102.471, + "y": -176.601, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 12, + "name": "grid_2_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 95.13, + "y": -179.942, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 13, + "name": "grid_0_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -395.531, + "y": -220.99, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 14, + "name": "grid_1_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -197.93, + "y": -224.331, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 15, + "name": "grid_2_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -0.329, + "y": -227.672, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 16, + "name": "grid_3_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 197.272, + "y": -231.013, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 17, + "name": "grid_0_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -490.991, + "y": -268.719, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 18, + "name": "grid_1_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -293.39, + "y": -272.06, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 19, + "name": "grid_2_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -95.789, + "y": -275.401, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 20, + "name": "grid_3_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 101.812, + "y": -278.743, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 21, + "name": "grid_4_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 299.413, + "y": -282.084, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 22, + "name": "grid_0_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -586.45, + "y": -316.449, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 23, + "name": "grid_1_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -388.849, + "y": -319.79, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 24, + "name": "grid_2_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -191.248, + "y": -323.131, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 25, + "name": "grid_3_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 6.353, + "y": -326.472, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 26, + "name": "grid_4_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 203.954, + "y": -329.813, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 27, + "name": "grid_5_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 401.555, + "y": -333.154, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 28, + "name": "grid_1_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -484.308, + "y": -367.52, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 29, + "name": "grid_2_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -286.707, + "y": -370.861, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 30, + "name": "grid_3_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -89.106, + "y": -374.202, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 31, + "name": "grid_4_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 108.495, + "y": -377.543, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 32, + "name": "grid_5_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 306.096, + "y": -380.884, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 33, + "name": "grid_2_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -382.167, + "y": -418.591, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 34, + "name": "grid_3_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -184.566, + "y": -421.932, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 35, + "name": "grid_4_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": 13.035, + "y": -425.273, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 36, + "name": "grid_5_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 210.636, + "y": -428.614, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 37, + "name": "grid_3_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -280.025, + "y": -469.661, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 38, + "name": "grid_4_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -82.424, + "y": -473.002, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 39, + "name": "grid_5_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": 115.177, + "y": -476.344, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 40, + "name": "grid_4_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -177.884, + "y": -520.732, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 41, + "name": "grid_5_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": 19.717, + "y": -524.073, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 42, + "name": "grid_5_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -75.742, + "y": -571.803, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + } + ] + }, + "house_and_doghouse": { + "skin_cfg_default_records": [ + { + "id": 201001, + "skin_type": 1, + "skin_name": "默认小屋", + "parent_node": "Scene/FgLayer/FarmSkin/Layer2", + "position": { + "x": 347.6, + "y": 179.8 + }, + "spine_asset": "spine/v2/costume/house/201001", + "icon_asset": "gui/texture/skinDetail/img_skin_house/spriteFrame" + }, + { + "id": 205001, + "skin_type": 5, + "skin_name": "默认狗屋", + "parent_node": "Scene/FgLayer/FarmSkin", + "position": { + "x": 24.2, + "y": 223.9 + }, + "spine_asset": "spine/v2/costume/doghouse/205001", + "icon_asset": "gui/texture/skinDetail/img_skin_doghouse/spriteFrame" + } + ], + "doghouse_nodes": [ + { + "index": 45, + "name": "dogHouse", + "category": "world_decor", + "full_path": "farm_scene_v3_sprite/Scene/dogHouse", + "parent_path": "farm_scene_v3_sprite/Scene", + "parent_name": "Scene", + "local_position": { + "x": 30, + "y": 125, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 30.0, + "y": 81.434, + "z": 0.0 + }, + "world_position_transformed": { + "x": 30.0, + "y": 81.434, + "z": 0.0 + }, + "primary_size": { + "width": 150.0, + "height": 150.0 + }, + "anchor": null, + "component_count": 3, + "resolved_parent_source": "_parent" + }, + { + "index": 9, + "name": "dogHouse", + "category": "source_node", + "full_path": "farm_scene_v3/Scene/FgLayer/DogLayer/dogHouse", + "parent_path": "farm_scene_v3/Scene/FgLayer/DogLayer", + "parent_name": "DogLayer", + "local_position": { + "x": 24.266, + "y": 223.974, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 24.266, + "y": 180.408, + "z": 0.0 + }, + "world_position_transformed": { + "x": 24.266, + "y": 180.408, + "z": 0.0 + }, + "primary_size": null, + "anchor": { + "x": 0.5, + "y": 0.203 + }, + "component_count": 3, + "resolved_parent_source": "_children_positive_ref" + } + ] + }, + "bottom_menu": [ + { + "index": 6, + "name": "Menu", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu", + "parent_path": "main_ui_v2", + "parent_name": "main_ui_v2", + "local_position": { + "x": 0, + "y": -547, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 720.0, + "height": 150.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_parent" + }, + { + "index": 8, + "name": "btn_layout", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": -360, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -360.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -360.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 559.0, + "height": 100.0 + }, + "anchor": { + "x": 0, + "y": 0.5 + }, + "component_count": 3, + "resolved_parent_source": "_parent" + }, + { + "index": 10, + "name": "btn_warehouse", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_warehouse", + "parent_name": "Node_warehouse", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 11, + "name": "btn_illustrated", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_illustrated", + "parent_name": "Node_illustrated", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 12, + "name": "btn_farmSkin", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin", + "parent_name": "Node_farmSkin", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 25, + "name": "btn_shop", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_shop/btn_shop", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_shop", + "parent_name": "Node_shop", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.0, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -181.0, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 26, + "name": "btn_dog", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_dog/btn_dog", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_dog", + "parent_name": "Node_dog", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -70.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -70.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 49, + "name": "node_49", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_Friend/node_49", + "parent_path": "main_ui_v2/Menu/Node_Friend", + "parent_name": "Node_Friend", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "world_position_transformed": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 51, + "name": "node_51", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_task/node_51", + "parent_path": "main_ui_v2/Menu/Node_task", + "parent_name": "Node_task", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 68, + "name": "Node_warehouse", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 68.5, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 69, + "name": "Node_shop", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_shop", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 179, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -181.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 70, + "name": "Node_dog", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_dog", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 289.5, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -70.5, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -70.5, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 71, + "name": "Node_illustrated", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 400, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 72, + "name": "Node_farmSkin", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 510.5, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 73, + "name": "Node_Friend", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_Friend", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": 289.053, + "y": 8.324, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "world_position_transformed": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 74, + "name": "Node_task", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_task", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": -349, + "y": 123, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "primary_size": { + "width": 400.0, + "height": 114.0 + }, + "anchor": { + "x": 0, + "y": 0.5 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 76, + "name": "ver", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/ver", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": 309.732, + "y": -67.798, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 309.732, + "y": -614.798, + "z": 0.0 + }, + "world_position_transformed": { + "x": 309.732, + "y": -614.798, + "z": 0.0 + }, + "primary_size": { + "width": 49.032, + "height": 50.4 + }, + "anchor": { + "x": 1, + "y": 0.5 + }, + "component_count": 4, + "resolved_parent_source": "_parent" + }, + { + "index": 132, + "name": "txt", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse/txt", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse", + "parent_name": "btn_warehouse", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 133, + "name": "node_133", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse/node_133", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse", + "parent_name": "btn_warehouse", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_parent" + }, + { + "index": 134, + "name": "txt-001", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_shop/btn_shop/txt-001", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_shop/btn_shop", + "parent_name": "btn_shop", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.0, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": -181.0, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 135, + "name": "txt-002", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_dog/btn_dog/txt-002", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_dog/btn_dog", + "parent_name": "btn_dog", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -70.5, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": -70.5, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 136, + "name": "txt-001", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated/txt-001", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated", + "parent_name": "btn_illustrated", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 137, + "name": "node_137", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated/node_137", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated", + "parent_name": "btn_illustrated", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_parent" + }, + { + "index": 139, + "name": "txt-001", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin/txt-001", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin", + "parent_name": "btn_farmSkin", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 140, + "name": "node_140", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin/node_140", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin", + "parent_name": "btn_farmSkin", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_parent" + } + ] + }, + "blockers": [ + { + "id": "visible_land_count", + "status": "blocked", + "detail": "Static source prefab has 36 visual grid cells. The first-milestone spec requires 24 visible land plots, but the runtime rule selecting those 24 is not yet decoded." + }, + { + "id": "background_texture_binding", + "status": "blocked", + "detail": "Background ImageAsset entries are located, but final texture/SpriteFrame binding for Cocos 4 import is not yet resolved from metadata." + }, + { + "id": "cocos4_cli_build", + "status": "blocked", + "detail": "Cocos 4 alpha CLI reaches engine init, then fails because node_modules/gl/build/Release/webgl.node requires NODE_MODULE_VERSION 140 while local Node 24 provides 137." + } + ] +} diff --git a/assets/scenes/main_stage1.source_scene.json.meta b/assets/scenes/main_stage1.source_scene.json.meta new file mode 100644 index 0000000..203d423 --- /dev/null +++ b/assets/scenes/main_stage1.source_scene.json.meta @@ -0,0 +1,11 @@ +{ + "ver": "2.0.1", + "importer": "json", + "imported": true, + "uuid": "46aa1585-38e2-47f7-a4e5-ad5279b2c9be", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/assets/scripts.meta b/assets/scripts.meta new file mode 100644 index 0000000..12327c8 --- /dev/null +++ b/assets/scripts.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "3047f5ff-1705-489f-8f88-d64e2eb33789", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/scripts/.gitkeep b/assets/scripts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/scripts/mock.meta b/assets/scripts/mock.meta new file mode 100644 index 0000000..cdb7dc1 --- /dev/null +++ b/assets/scripts/mock.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "31121ddd-5696-4588-b960-d64ac181dbfe", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/scripts/mock/.gitkeep b/assets/scripts/mock/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/spine.meta b/assets/spine.meta new file mode 100644 index 0000000..da72f2e --- /dev/null +++ b/assets/spine.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "fb2e6ac5-f60e-4dda-811d-e0da00a80779", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/spine/.gitkeep b/assets/spine/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/assets/textures.meta b/assets/textures.meta new file mode 100644 index 0000000..f9b25d8 --- /dev/null +++ b/assets/textures.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.2.0", + "importer": "directory", + "imported": true, + "uuid": "5e3eab9f-16d5-457d-bd69-25af825af2f1", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/textures/.gitkeep b/assets/textures/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/cocos4_reconstruction_core.md b/docs/cocos4_reconstruction_core.md new file mode 100644 index 0000000..67cc757 --- /dev/null +++ b/docs/cocos4_reconstruction_core.md @@ -0,0 +1,27 @@ +# Cocos 4 Reconstruction Core + +This project rebuilds QQ Farm from the extracted original Cocos package using Cocos 4.0 and the Cocos 4 CLI. + +The source package is `/Users/hy/Documents/dev/qq_farm_godot_rebuild_20260616`. + +Rules: + +- Original extracted Cocos data is the layout authority. +- Godot output and screenshot-derived coordinates are not allowed. +- Every module pass must export source evidence, generate a diagnostic Canvas preview, attempt Cocos verification, produce an ROI report, and update rebuild docs. +- Runtime mocks may change visible state, but must not change recovered layout. + +First milestone scope: + +- `Canvas` +- main `Camera` +- root `scene` +- background layers +- visible land plots +- house +- doghouse +- bottom menu buttons + +Known first-stage blocker: + +- Static Cocos source currently exposes 36 visual land cells. The required 24 visible plots need runtime selection evidence before final Cocos node generation. diff --git a/docs/rebuild_list.md b/docs/rebuild_list.md new file mode 100644 index 0000000..031e70d --- /dev/null +++ b/docs/rebuild_list.md @@ -0,0 +1,17 @@ +# Rebuild List + +## First Stage + +- [x] Migrate project metadata to Cocos 4.0 CLI format. +- [x] Remove old Cocos Creator 3.8 project files. +- [x] Export first-stage source evidence into `source_export/`. +- [x] Generate diagnostic Canvas preview from exported evidence. +- [x] Generate first-stage Cocos-facing intermediate scene data. +- [x] Write ROI report. +- [x] Run Cocos 4 CLI verification and record current blocker. + +## Blocked + +- [ ] Decode runtime rule for selecting 24 visible land plots from 36 static visual grid cells. +- [ ] Resolve final Cocos 4 texture/SpriteFrame import bindings for background, land, house, doghouse, and bottom menu visuals. +- [ ] Fix Cocos 4 alpha CLI runtime ABI mismatch before producing real Cocos build screenshots. diff --git a/docs/rebuild_log.md b/docs/rebuild_log.md new file mode 100644 index 0000000..ac7ab40 --- /dev/null +++ b/docs/rebuild_log.md @@ -0,0 +1,34 @@ +# Rebuild Log + +## 2026-06-19 First Stage Start + +Commands run: + +```bash +python3 tools/extract_source_evidence.py +python3 tools/generate_cocos4_project.py +python3 tools/render_canvas_preview.py +python3 tools/compare_visual_rois.py +python3 tools/verify_cocos4_project.py +``` + +Outputs: + +- `source_export/source_nodes.json` +- `source_export/source_prefabs.json` +- `source_export/source_assets.json` +- `source_export/source_spriteframes.json` +- `source_export/source_spine.json` +- `source_export/source_animations.json` +- `source_export/source_runtime_notes.md` +- `source_export/source_blockers.md` +- `assets/scenes/main_stage1.source_scene.json` +- `artifacts/canvas_preview/stage1_source_preview.png` +- `artifacts/canvas_preview/stage1_source_preview_report.json` +- `artifacts/visual_compare/stage1_roi_report.json` +- `artifacts/cocos_capture/stage1_cocos_verify.json` + +Verification result: + +- Source extraction and diagnostic preview pass. +- Cocos 4 CLI build is blocked by `webgl.node` ABI mismatch. diff --git a/docs/rebuild_notes.md b/docs/rebuild_notes.md new file mode 100644 index 0000000..7ae23d4 --- /dev/null +++ b/docs/rebuild_notes.md @@ -0,0 +1,29 @@ +# Rebuild Notes + +## First Stage Source Evidence + +Used source inventory: + +- `/Users/hy/Documents/dev/qq_farm_godot_rebuild_20260616/source_first/out/main_scene_elements.json` + +Authoritative source files referenced by the inventory: + +- Startup scene: `assets/main/import/ee/ee605885-16e1-4a63-bf4b-d9663c5764b2.2fd9c.json` +- World visual prefab: `downloads/raw/remote/extraRes/import/0a/0ada99ac7.403b3.json` +- World mount prefab: `downloads/raw/remote/extraRes/import/0e/0ec3b3100.19268.json` +- Main UI prefab: `downloads/raw/remote/extraRes/import/0d/0d7027270.4bc05.json` +- Skin config: `downloads/raw/remote/delayRes/import/2d/2d201122-b5a7-4181-8f60-d67a399ec757.edfbe.json` + +Recovered evidence: + +- Startup root, `scene`, `ui`, main `Camera`, and `uiCamera`. +- Background source nodes from `farm_scene_v3_sprite`. +- 36 static land cell candidates under `Scaled/Rotate/GridOrigin`. +- Default house and doghouse records from `SkinCfg`. +- Bottom menu node chain under `main_ui_v2/Menu`. + +Not recovered yet: + +- Runtime rule selecting 24 visible land plots. +- Final Cocos 4 texture and SpriteFrame bindings. +- Cocos-produced screenshot, because the local Cocos 4 alpha CLI build is blocked by native ABI mismatch. diff --git a/source_export/source_animations.json b/source_export/source_animations.json new file mode 100644 index 0000000..3ebb96a --- /dev/null +++ b/source_export/source_animations.json @@ -0,0 +1,93 @@ +{ + "status": "not_in_first_stage_scope", + "animation_clips": [ + { + "id": "one_click_loop", + "asset_path": "gui/anim/OneClickOperationTools/anim_ui_loop", + "index": 118, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/17/17c93ab6-b487-40b7-9a81-b787931b235f.831f6.json" + }, + { + "id": "one_click_click_effect", + "asset_path": "gui/anim/OneClickOperationTools/anim_ui_clickEffect1", + "index": 342, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/40/40cc1e7e-d851-4ec8-ac89-836857c9fbf8.9b8b6.json" + }, + { + "id": "one_click_click", + "asset_path": "gui/anim/OneClickOperationTools/anim_ui_click", + "index": 1029, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/c1/c1f26263-07c4-4875-b778-b8c86889d85d.159c2.json" + }, + { + "id": "one_click_into", + "asset_path": "gui/anim/OneClickOperationTools/anim_ui_into", + "index": 1314, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/f6/f6bbd33f-5b38-4b44-abcd-b338d38a0da8.3383f.json" + }, + { + "id": "task_book_light_loop", + "asset_path": "gui/anim/btn_task/book_light_loop", + "index": 161, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/1f/1ff9a8a2-2819-445d-9c7c-aeb7677551f0.83805.json" + }, + { + "id": "task_bg_light_loop", + "asset_path": "gui/anim/btn_task/bg_light_loop", + "index": 407, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/4b/4b9a94ba-9ef8-470a-baf6-d2b34a511480.1facb.json" + }, + { + "id": "task_into", + "asset_path": "gui/anim/btn_task/ui_anim_into", + "index": 715, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/8a/8a6b50ad-fbf9-4408-b58f-94b5b03f9226.aa450.json" + }, + { + "id": "task_out", + "asset_path": "gui/anim/btn_task/ui_anim_out", + "index": 1301, + "role": "animation_clip", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/f4/f4e1c3a2-7a53-4e46-a645-71c6e3bb4e53.618a6.json" + } + ] +} diff --git a/source_export/source_assets.json b/source_export/source_assets.json new file mode 100644 index 0000000..7f25fc3 --- /dev/null +++ b/source_export/source_assets.json @@ -0,0 +1,261 @@ +{ + "backgrounds": [ + { + "id": "scene_bg", + "asset_path": "scene/bg", + "index": 13, + "role": "large_scene_background_texture", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/14/146c722a-2371-420b-9958-6ff8ca81ff57.19fac.json" + }, + { + "id": "scene_fg", + "asset_path": "scene/fg", + "index": 172, + "role": "large_scene_foreground_texture", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/df/df3ba319-262f-49a8-9f74-afdc97dc0ab1.19fac.json" + }, + { + "id": "model_scene_bg", + "asset_path": "model/v3/scene/bg", + "index": 1152, + "role": "small_scene_background_fallback", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/db/dbe047f4-d92a-4abe-b7dd-c9fb7b784577.19fac.json" + }, + { + "id": "model_scene_fg", + "asset_path": "model/v3/scene/fg", + "index": 1289, + "role": "small_scene_foreground_fallback", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/f3/f3826219-91f1-43b2-9fa7-2c504543aee0.19fac.json" + } + ], + "config_assets": [ + { + "asset_path": "config/SkinCfg", + "index": 323, + "role": "skin_and_decor_runtime_config", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/2d/2d201122-b5a7-4181-8f60-d67a399ec757.edfbe.json", + "id": "skin_cfg", + "json_asset_name": "SkinCfg", + "record_count": 51, + "default_records": [ + { + "id": 201001, + "skin_type": 1, + "skin_name": "默认小屋", + "parent_node": "Scene/FgLayer/FarmSkin/Layer2", + "position": { + "x": 347.6, + "y": 179.8 + }, + "spine_asset": "spine/v2/costume/house/201001", + "icon_asset": "gui/texture/skinDetail/img_skin_house/spriteFrame" + }, + { + "id": 202001, + "skin_type": 2, + "skin_name": "默认木牌", + "parent_node": "Scene/FgLayer/Board", + "position": { + "x": -259.1, + "y": 104.1 + }, + "spine_asset": "spine/v2/costume/brand/202001", + "icon_asset": "gui/texture/skinDetail/img_skin_board/spriteFrame" + }, + { + "id": 203001, + "skin_type": 3, + "skin_name": "默认栅栏", + "parent_node": "Scene/FgLayer/FarmSkin/Layer3", + "position": { + "x": -185.4, + "y": -280.5 + }, + "spine_asset": "spine/v2/costume/fence/203001", + "icon_asset": "gui/texture/skinDetail/img_skin_barrier/spriteFrame" + }, + { + "id": 204001, + "skin_type": 4, + "skin_name": "空", + "parent_node": "Scene/FgLayer/Tower", + "position": { + "x": -454, + "y": 28.6 + }, + "spine_asset": null, + "icon_asset": null + }, + { + "id": 205001, + "skin_type": 5, + "skin_name": "默认狗屋", + "parent_node": "Scene/FgLayer/FarmSkin", + "position": { + "x": 24.2, + "y": 223.9 + }, + "spine_asset": "spine/v2/costume/doghouse/205001", + "icon_asset": "gui/texture/skinDetail/img_skin_doghouse/spriteFrame" + }, + { + "id": 206001, + "skin_type": 6, + "skin_name": "默认仓库", + "parent_node": "Scene/FgLayer/Storage", + "position": { + "x": -770.8, + "y": -28.6 + }, + "spine_asset": "spine/v2/costume/warehouse/206001", + "icon_asset": "gui/texture/skinDetail/img_skin_warehouse/spriteFrame" + }, + { + "id": 207001, + "skin_type": 7, + "skin_name": "默认街道", + "parent_node": "Scene/FgLayer/FarmSkin/Layer1", + "position": { + "x": 76.6, + "y": -193.5 + }, + "spine_asset": "spine/v2/costume/load/207001", + "icon_asset": "gui/texture/skinDetail/img_skin_road/spriteFrame" + }, + { + "id": 208001, + "skin_type": 8, + "skin_name": "默认围栏", + "parent_node": "Scene/FgLayer/FarmSkin/Layer1", + "position": { + "x": -629, + "y": 163.8 + }, + "spine_asset": "spine/v2/costume/fence_2/208001", + "icon_asset": "gui/texture/skinDetail/img_skin_fence/spriteFrame" + } + ] + }, + { + "asset_path": "config/SkinTypeCfg", + "index": 453, + "role": "skin_type_runtime_config", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/62/6276caa6-6ab0-472c-8a57-e32ce1dd5de2.f1c60.json", + "id": "skin_type_cfg", + "json_asset_name": "SkinTypeCfg", + "record_count": 8 + }, + { + "asset_path": "config/Plant", + "index": 422, + "role": "crop_runtime_config", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/52/524bdf1d-e595-4a42-941c-556b06fdbb4b.bce5d.json", + "id": "plant_cfg", + "json_asset_name": "Plant", + "record_count": 226, + "sample_records": [ + { + "id": 2020002, + "name": "白萝卜", + "level": null, + "stage_asset": null + }, + { + "id": 1020002, + "name": "白萝卜", + "level": null, + "stage_asset": null + }, + { + "id": 1020003, + "name": "胡萝卜", + "level": null, + "stage_asset": null + }, + { + "id": 1020059, + "name": "大白菜", + "level": null, + "stage_asset": null + }, + { + "id": 1020065, + "name": "大蒜", + "level": null, + "stage_asset": null + }, + { + "id": 1020064, + "name": "大葱", + "level": null, + "stage_asset": null + }, + { + "id": 1020060, + "name": "水稻", + "level": null, + "stage_asset": null + }, + { + "id": 1020061, + "name": "小麦", + "level": null, + "stage_asset": null + }, + { + "id": 1020004, + "name": "玉米", + "level": null, + "stage_asset": null + }, + { + "id": 1020066, + "name": "鲜姜", + "level": null, + "stage_asset": null + }, + { + "id": 1020005, + "name": "土豆", + "level": null, + "stage_asset": null + }, + { + "id": 1020071, + "name": "小白菜", + "level": null, + "stage_asset": null + } + ] + } + ] +} diff --git a/source_export/source_blockers.md b/source_export/source_blockers.md new file mode 100644 index 0000000..40ab321 --- /dev/null +++ b/source_export/source_blockers.md @@ -0,0 +1,5 @@ +# Source Blockers + +- `visible_land_count`: Static source prefab has 36 visual grid cells. The first-milestone spec requires 24 visible land plots, but the runtime rule selecting those 24 is not yet decoded. +- `background_texture_binding`: Background ImageAsset entries are located, but final texture/SpriteFrame binding for Cocos 4 import is not yet resolved from metadata. +- `cocos4_cli_build`: Cocos 4 alpha CLI reaches engine init, then fails because node_modules/gl/build/Release/webgl.node requires NODE_MODULE_VERSION 140 while local Node 24 provides 137. diff --git a/source_export/source_nodes.json b/source_export/source_nodes.json new file mode 100644 index 0000000..2fab030 --- /dev/null +++ b/source_export/source_nodes.json @@ -0,0 +1,3328 @@ +{ + "module": "main_scene_first_milestone", + "generated_at": "2026-06-19T09:41:41.461559+00:00", + "source_inventory": "/Users/hy/Documents/dev/qq_farm_godot_rebuild_20260616/source_first/out/main_scene_elements.json", + "design_resolution": { + "width": 720, + "height": 1280 + }, + "scope": [ + "Canvas", + "main Camera", + "root scene", + "background layers", + "visible land plots", + "house", + "doghouse", + "bottom menu buttons" + ], + "startup_scene": { + "id": "startup_scene", + "source": { + "asset_path": "db://assets/startup.scene", + "index": 1, + "bundle": "main", + "mode": "import", + "source_file": "source_raw/6A3BB7D3D4349E2050E7B701AAD51600_726750140f8084ebcbe5190fe9c198c9/assets/main/import/ee/ee605885-16e1-4a63-bf4b-d9663c5764b2.2fd9c.json" + }, + "node_count": 5, + "component_counts": { + "612d2P/T/VGz7Fm4Jof20+e": 1, + "cc.UITransform": 4, + "cc.Canvas": 1, + "cc.Widget": 3, + "cc.Camera": 2, + "95c7akihY5GNYe9/Wanw0Ab": 1 + }, + "roots": [ + 1 + ], + "elements": [ + { + "index": 1, + "name": "root", + "full_path": "root", + "position": { + "x": 360, + "y": 640, + "z": 0 + }, + "content_size": { + "width": 720, + "height": 1280 + }, + "component_types": [ + "612d2P/T/VGz7Fm4Jof20+e", + "cc.UITransform", + "cc.Canvas", + "cc.Widget" + ], + "children": [ + 2, + 3 + ] + }, + { + "index": 2, + "name": "scene", + "full_path": "root/scene", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "content_size": { + "width": 3320, + "height": 2560 + }, + "component_types": [ + "cc.UITransform", + "cc.Widget" + ], + "children": [ + 4 + ] + }, + { + "index": 3, + "name": "ui", + "full_path": "root/ui", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "content_size": { + "width": 720, + "height": 1280 + }, + "component_types": [ + "cc.UITransform", + "cc.Widget" + ], + "children": [ + 6 + ] + }, + { + "index": 4, + "name": "Camera", + "full_path": "root/scene/Camera", + "position": { + "x": 0, + "y": 0, + "z": 1000 + }, + "content_size": null, + "component_types": [ + "cc.Camera", + "cc.UITransform", + "95c7akihY5GNYe9/Wanw0Ab" + ], + "children": [] + }, + { + "index": 6, + "name": "uiCamera", + "full_path": "root/ui/uiCamera", + "position": { + "x": 0, + "y": 0, + "z": 1000 + }, + "content_size": null, + "component_types": [ + "cc.Camera" + ], + "children": [] + } + ] + }, + "prefab_sources": { + "farm_scene_v3_sprite": { + "asset_path": "scene/farm_scene_v3_sprite", + "index": 1635, + "role": "world_visual_prefab", + "bundle": "extraRes", + "mode": "pack", + "pack_key": "0ada99ac7", + "pack_position": 0, + "source_file": "downloads/raw/remote/extraRes/import/0a/0ada99ac7.403b3.json" + }, + "farm_scene_v3": { + "asset_path": "scene/farm_scene_v3", + "index": 3914, + "role": "world_mount_and_logic_prefab", + "bundle": "extraRes", + "mode": "pack", + "pack_key": "0ec3b3100", + "pack_position": 1, + "source_file": "downloads/raw/remote/extraRes/import/0e/0ec3b3100.19268.json" + }, + "main_ui_v2": { + "asset_path": "gui/prefab/main_ui_v2", + "index": 2487, + "role": "main_ui_prefab", + "bundle": "extraRes", + "mode": "pack", + "pack_key": "0d7027270", + "pack_position": 2, + "source_file": "downloads/raw/remote/extraRes/import/0d/0d7027270.4bc05.json" + } + }, + "canvas_and_cameras": [ + { + "index": 1, + "name": "root", + "full_path": "root", + "position": { + "x": 360, + "y": 640, + "z": 0 + }, + "content_size": { + "width": 720, + "height": 1280 + }, + "component_types": [ + "612d2P/T/VGz7Fm4Jof20+e", + "cc.UITransform", + "cc.Canvas", + "cc.Widget" + ], + "children": [ + 2, + 3 + ] + }, + { + "index": 2, + "name": "scene", + "full_path": "root/scene", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "content_size": { + "width": 3320, + "height": 2560 + }, + "component_types": [ + "cc.UITransform", + "cc.Widget" + ], + "children": [ + 4 + ] + }, + { + "index": 3, + "name": "ui", + "full_path": "root/ui", + "position": { + "x": 0, + "y": 0, + "z": 0 + }, + "content_size": { + "width": 720, + "height": 1280 + }, + "component_types": [ + "cc.UITransform", + "cc.Widget" + ], + "children": [ + 6 + ] + }, + { + "index": 4, + "name": "Camera", + "full_path": "root/scene/Camera", + "position": { + "x": 0, + "y": 0, + "z": 1000 + }, + "content_size": null, + "component_types": [ + "cc.Camera", + "cc.UITransform", + "95c7akihY5GNYe9/Wanw0Ab" + ], + "children": [] + }, + { + "index": 6, + "name": "uiCamera", + "full_path": "root/ui/uiCamera", + "position": { + "x": 0, + "y": 0, + "z": 1000 + }, + "content_size": null, + "component_types": [ + "cc.Camera" + ], + "children": [] + } + ], + "background_nodes": [ + { + "index": 44, + "name": "default", + "category": "world_background", + "full_path": "farm_scene_v3_sprite/Scene/BgLayer/default", + "parent_path": "farm_scene_v3_sprite/Scene/BgLayer", + "parent_name": "BgLayer", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "primary_size": { + "width": 2648.0, + "height": 2924.0 + }, + "anchor": null, + "component_count": 3, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 47, + "name": "bg", + "category": "world_background", + "full_path": "farm_scene_v3_sprite/Scene/bg", + "parent_path": "farm_scene_v3_sprite/Scene", + "parent_name": "Scene", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "primary_size": { + "width": 4320.0, + "height": 2560.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 48, + "name": "BgLayer", + "category": "world_background", + "full_path": "farm_scene_v3_sprite/Scene/BgLayer", + "parent_path": "farm_scene_v3_sprite/Scene", + "parent_name": "Scene", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -43.566, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 1, + "resolved_parent_source": "_parent" + } + ], + "land_candidates": { + "source_count": 36, + "visible_count_required_by_spec": 24, + "selection_status": "blocked_missing_runtime_visible_land_rule", + "nodes": [ + { + "index": 7, + "name": "grid_0_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -109.153, + "y": -77.8, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 8, + "name": "grid_0_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -204.612, + "y": -125.53, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 9, + "name": "grid_1_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -7.011, + "y": -128.871, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 10, + "name": "grid_0_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -300.072, + "y": -173.26, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 11, + "name": "grid_1_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -102.471, + "y": -176.601, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 12, + "name": "grid_2_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 95.13, + "y": -179.942, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 13, + "name": "grid_0_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -395.531, + "y": -220.99, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 14, + "name": "grid_1_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -197.93, + "y": -224.331, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 15, + "name": "grid_2_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -0.329, + "y": -227.672, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 16, + "name": "grid_3_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 197.272, + "y": -231.013, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 17, + "name": "grid_0_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -490.991, + "y": -268.719, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 18, + "name": "grid_1_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -293.39, + "y": -272.06, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 19, + "name": "grid_2_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": -95.789, + "y": -275.401, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 20, + "name": "grid_3_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 101.812, + "y": -278.743, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 21, + "name": "grid_4_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 299.413, + "y": -282.084, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 22, + "name": "grid_0_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_0_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -586.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -586.45, + "y": -316.449, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 23, + "name": "grid_1_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -388.849, + "y": -319.79, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 24, + "name": "grid_2_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -191.248, + "y": -323.131, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 25, + "name": "grid_3_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 6.353, + "y": -326.472, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 26, + "name": "grid_4_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 203.954, + "y": -329.813, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 27, + "name": "grid_5_5", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_5", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 675, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": 383.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 401.555, + "y": -333.154, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 28, + "name": "grid_1_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_1_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 135, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -451.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -484.308, + "y": -367.52, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 29, + "name": "grid_2_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -286.707, + "y": -370.861, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 30, + "name": "grid_3_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -89.106, + "y": -374.202, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 31, + "name": "grid_4_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 108.495, + "y": -377.543, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 32, + "name": "grid_5_4", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_4", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 540, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": 248.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 306.096, + "y": -380.884, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 33, + "name": "grid_2_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_2_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 270, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -316.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -382.167, + "y": -418.591, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 34, + "name": "grid_3_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -184.566, + "y": -421.932, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 35, + "name": "grid_4_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": 13.035, + "y": -425.273, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 36, + "name": "grid_5_3", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_3", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 405, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": 113.567, + "z": 0.0 + }, + "world_position_transformed": { + "x": 210.636, + "y": -428.614, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 37, + "name": "grid_3_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_3_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 405, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -280.025, + "y": -469.661, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 38, + "name": "grid_4_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -82.424, + "y": -473.002, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 39, + "name": "grid_5_2", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_2", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 270, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": -21.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": 115.177, + "y": -476.344, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 40, + "name": "grid_4_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_4_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 540, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -46.45, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -177.884, + "y": -520.732, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 41, + "name": "grid_5_1", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_1", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 135, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": -156.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": 19.717, + "y": -524.073, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 42, + "name": "grid_5_0", + "category": "visual_land_cell", + "full_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin/grid_5_0", + "parent_path": "farm_scene_v3_sprite/Scaled/Rotate/GridOrigin", + "parent_name": "GridOrigin", + "local_position": { + "x": 675, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 88.55, + "y": -291.433, + "z": 0.0 + }, + "world_position_transformed": { + "x": -75.742, + "y": -571.803, + "z": 0.0 + }, + "primary_size": { + "width": 130.0, + "height": 130.0 + }, + "anchor": { + "x": 0, + "y": 0 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + } + ] + }, + "house_and_doghouse": { + "skin_cfg_default_records": [ + { + "id": 201001, + "skin_type": 1, + "skin_name": "默认小屋", + "parent_node": "Scene/FgLayer/FarmSkin/Layer2", + "position": { + "x": 347.6, + "y": 179.8 + }, + "spine_asset": "spine/v2/costume/house/201001", + "icon_asset": "gui/texture/skinDetail/img_skin_house/spriteFrame" + }, + { + "id": 205001, + "skin_type": 5, + "skin_name": "默认狗屋", + "parent_node": "Scene/FgLayer/FarmSkin", + "position": { + "x": 24.2, + "y": 223.9 + }, + "spine_asset": "spine/v2/costume/doghouse/205001", + "icon_asset": "gui/texture/skinDetail/img_skin_doghouse/spriteFrame" + } + ], + "doghouse_nodes": [ + { + "index": 45, + "name": "dogHouse", + "category": "world_decor", + "full_path": "farm_scene_v3_sprite/Scene/dogHouse", + "parent_path": "farm_scene_v3_sprite/Scene", + "parent_name": "Scene", + "local_position": { + "x": 30, + "y": 125, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 30.0, + "y": 81.434, + "z": 0.0 + }, + "world_position_transformed": { + "x": 30.0, + "y": 81.434, + "z": 0.0 + }, + "primary_size": { + "width": 150.0, + "height": 150.0 + }, + "anchor": null, + "component_count": 3, + "resolved_parent_source": "_parent" + }, + { + "index": 9, + "name": "dogHouse", + "category": "source_node", + "full_path": "farm_scene_v3/Scene/FgLayer/DogLayer/dogHouse", + "parent_path": "farm_scene_v3/Scene/FgLayer/DogLayer", + "parent_name": "DogLayer", + "local_position": { + "x": 24.266, + "y": 223.974, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 24.266, + "y": 180.408, + "z": 0.0 + }, + "world_position_transformed": { + "x": 24.266, + "y": 180.408, + "z": 0.0 + }, + "primary_size": null, + "anchor": { + "x": 0.5, + "y": 0.203 + }, + "component_count": 3, + "resolved_parent_source": "_children_positive_ref" + } + ] + }, + "bottom_menu_nodes": [ + { + "index": 6, + "name": "Menu", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu", + "parent_path": "main_ui_v2", + "parent_name": "main_ui_v2", + "local_position": { + "x": 0, + "y": -547, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 0.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 0.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 720.0, + "height": 150.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_parent" + }, + { + "index": 8, + "name": "btn_layout", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": -360, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -360.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -360.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 559.0, + "height": 100.0 + }, + "anchor": { + "x": 0, + "y": 0.5 + }, + "component_count": 3, + "resolved_parent_source": "_parent" + }, + { + "index": 10, + "name": "btn_warehouse", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_warehouse", + "parent_name": "Node_warehouse", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 11, + "name": "btn_illustrated", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_illustrated", + "parent_name": "Node_illustrated", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 12, + "name": "btn_farmSkin", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin", + "parent_name": "Node_farmSkin", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 25, + "name": "btn_shop", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_shop/btn_shop", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_shop", + "parent_name": "Node_shop", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.0, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -181.0, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 26, + "name": "btn_dog", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_dog/btn_dog", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_dog", + "parent_name": "Node_dog", + "local_position": { + "x": 0, + "y": 1, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -70.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -70.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 117.0 + }, + "anchor": null, + "component_count": 5, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 49, + "name": "node_49", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_Friend/node_49", + "parent_path": "main_ui_v2/Menu/Node_Friend", + "parent_name": "Node_Friend", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "world_position_transformed": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 51, + "name": "node_51", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_task/node_51", + "parent_path": "main_ui_v2/Menu/Node_task", + "parent_name": "Node_task", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_children_positive_ref" + }, + { + "index": 68, + "name": "Node_warehouse", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 68.5, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 69, + "name": "Node_shop", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_shop", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 179, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -181.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 70, + "name": "Node_dog", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_dog", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 289.5, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -70.5, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -70.5, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 71, + "name": "Node_illustrated", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 400, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 72, + "name": "Node_farmSkin", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin", + "parent_path": "main_ui_v2/Menu/btn_layout", + "parent_name": "btn_layout", + "local_position": { + "x": 510.5, + "y": 0, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -547.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -547.0, + "z": 0.0 + }, + "primary_size": { + "width": 97.0, + "height": 100.0 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 73, + "name": "Node_Friend", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_Friend", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": 289.053, + "y": 8.324, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "world_position_transformed": { + "x": 289.053, + "y": -538.676, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 74, + "name": "Node_task", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/Node_task", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": -349, + "y": 123, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -349.0, + "y": -424.0, + "z": 0.0 + }, + "primary_size": { + "width": 400.0, + "height": 114.0 + }, + "anchor": { + "x": 0, + "y": 0.5 + }, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 76, + "name": "ver", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/ver", + "parent_path": "main_ui_v2/Menu", + "parent_name": "Menu", + "local_position": { + "x": 309.732, + "y": -67.798, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 309.732, + "y": -614.798, + "z": 0.0 + }, + "world_position_transformed": { + "x": 309.732, + "y": -614.798, + "z": 0.0 + }, + "primary_size": { + "width": 49.032, + "height": 50.4 + }, + "anchor": { + "x": 1, + "y": 0.5 + }, + "component_count": 4, + "resolved_parent_source": "_parent" + }, + { + "index": 132, + "name": "txt", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse/txt", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse", + "parent_name": "btn_warehouse", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 133, + "name": "node_133", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse/node_133", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_warehouse/btn_warehouse", + "parent_name": "btn_warehouse", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": -291.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_parent" + }, + { + "index": 134, + "name": "txt-001", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_shop/btn_shop/txt-001", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_shop/btn_shop", + "parent_name": "btn_shop", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -181.0, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": -181.0, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 135, + "name": "txt-002", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_dog/btn_dog/txt-002", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_dog/btn_dog", + "parent_name": "btn_dog", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": -70.5, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": -70.5, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 136, + "name": "txt-001", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated/txt-001", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated", + "parent_name": "btn_illustrated", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 137, + "name": "node_137", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated/node_137", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_illustrated/btn_illustrated", + "parent_name": "btn_illustrated", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 40.0, + "y": -546.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_parent" + }, + { + "index": 139, + "name": "txt-001", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin/txt-001", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin", + "parent_name": "btn_farmSkin", + "local_position": { + "x": 0, + "y": -24.519, + "z": 0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -570.519, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -570.519, + "z": 0.0 + }, + "primary_size": { + "width": 51.983, + "height": 50.4 + }, + "anchor": null, + "component_count": 2, + "resolved_parent_source": "_parent" + }, + { + "index": 140, + "name": "node_140", + "category": "hud_bottom_or_task", + "full_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin/node_140", + "parent_path": "main_ui_v2/Menu/btn_layout/Node_farmSkin/btn_farmSkin", + "parent_name": "btn_farmSkin", + "local_position": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "local_scale": { + "x": 1.0, + "y": 1.0, + "z": 1.0 + }, + "local_euler": { + "x": 0.0, + "y": 0.0, + "z": 0.0 + }, + "world_position_sum": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "world_position_transformed": { + "x": 150.5, + "y": -546.0, + "z": 0.0 + }, + "primary_size": null, + "anchor": null, + "component_count": 0, + "resolved_parent_source": "_parent" + } + ], + "asset_inputs": { + "backgrounds": [ + { + "id": "scene_bg", + "asset_path": "scene/bg", + "index": 13, + "role": "large_scene_background_texture", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/14/146c722a-2371-420b-9958-6ff8ca81ff57.19fac.json" + }, + { + "id": "scene_fg", + "asset_path": "scene/fg", + "index": 172, + "role": "large_scene_foreground_texture", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/df/df3ba319-262f-49a8-9f74-afdc97dc0ab1.19fac.json" + }, + { + "id": "model_scene_bg", + "asset_path": "model/v3/scene/bg", + "index": 1152, + "role": "small_scene_background_fallback", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/db/dbe047f4-d92a-4abe-b7dd-c9fb7b784577.19fac.json" + }, + { + "id": "model_scene_fg", + "asset_path": "model/v3/scene/fg", + "index": 1289, + "role": "small_scene_foreground_fallback", + "bundle": "extraRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/extraRes/import/f3/f3826219-91f1-43b2-9fa7-2c504543aee0.19fac.json" + } + ], + "config_assets": [ + { + "asset_path": "config/SkinCfg", + "index": 323, + "role": "skin_and_decor_runtime_config", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/2d/2d201122-b5a7-4181-8f60-d67a399ec757.edfbe.json", + "id": "skin_cfg", + "json_asset_name": "SkinCfg", + "record_count": 51, + "default_records": [ + { + "id": 201001, + "skin_type": 1, + "skin_name": "默认小屋", + "parent_node": "Scene/FgLayer/FarmSkin/Layer2", + "position": { + "x": 347.6, + "y": 179.8 + }, + "spine_asset": "spine/v2/costume/house/201001", + "icon_asset": "gui/texture/skinDetail/img_skin_house/spriteFrame" + }, + { + "id": 202001, + "skin_type": 2, + "skin_name": "默认木牌", + "parent_node": "Scene/FgLayer/Board", + "position": { + "x": -259.1, + "y": 104.1 + }, + "spine_asset": "spine/v2/costume/brand/202001", + "icon_asset": "gui/texture/skinDetail/img_skin_board/spriteFrame" + }, + { + "id": 203001, + "skin_type": 3, + "skin_name": "默认栅栏", + "parent_node": "Scene/FgLayer/FarmSkin/Layer3", + "position": { + "x": -185.4, + "y": -280.5 + }, + "spine_asset": "spine/v2/costume/fence/203001", + "icon_asset": "gui/texture/skinDetail/img_skin_barrier/spriteFrame" + }, + { + "id": 204001, + "skin_type": 4, + "skin_name": "空", + "parent_node": "Scene/FgLayer/Tower", + "position": { + "x": -454, + "y": 28.6 + }, + "spine_asset": null, + "icon_asset": null + }, + { + "id": 205001, + "skin_type": 5, + "skin_name": "默认狗屋", + "parent_node": "Scene/FgLayer/FarmSkin", + "position": { + "x": 24.2, + "y": 223.9 + }, + "spine_asset": "spine/v2/costume/doghouse/205001", + "icon_asset": "gui/texture/skinDetail/img_skin_doghouse/spriteFrame" + }, + { + "id": 206001, + "skin_type": 6, + "skin_name": "默认仓库", + "parent_node": "Scene/FgLayer/Storage", + "position": { + "x": -770.8, + "y": -28.6 + }, + "spine_asset": "spine/v2/costume/warehouse/206001", + "icon_asset": "gui/texture/skinDetail/img_skin_warehouse/spriteFrame" + }, + { + "id": 207001, + "skin_type": 7, + "skin_name": "默认街道", + "parent_node": "Scene/FgLayer/FarmSkin/Layer1", + "position": { + "x": 76.6, + "y": -193.5 + }, + "spine_asset": "spine/v2/costume/load/207001", + "icon_asset": "gui/texture/skinDetail/img_skin_road/spriteFrame" + }, + { + "id": 208001, + "skin_type": 8, + "skin_name": "默认围栏", + "parent_node": "Scene/FgLayer/FarmSkin/Layer1", + "position": { + "x": -629, + "y": 163.8 + }, + "spine_asset": "spine/v2/costume/fence_2/208001", + "icon_asset": "gui/texture/skinDetail/img_skin_fence/spriteFrame" + } + ] + }, + { + "asset_path": "config/SkinTypeCfg", + "index": 453, + "role": "skin_type_runtime_config", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/62/6276caa6-6ab0-472c-8a57-e32ce1dd5de2.f1c60.json", + "id": "skin_type_cfg", + "json_asset_name": "SkinTypeCfg", + "record_count": 8 + }, + { + "asset_path": "config/Plant", + "index": 422, + "role": "crop_runtime_config", + "bundle": "delayRes", + "mode": "import", + "pack_key": null, + "pack_position": null, + "source_file": "downloads/raw/remote/delayRes/import/52/524bdf1d-e595-4a42-941c-556b06fdbb4b.bce5d.json", + "id": "plant_cfg", + "json_asset_name": "Plant", + "record_count": 226, + "sample_records": [ + { + "id": 2020002, + "name": "白萝卜", + "level": null, + "stage_asset": null + }, + { + "id": 1020002, + "name": "白萝卜", + "level": null, + "stage_asset": null + }, + { + "id": 1020003, + "name": "胡萝卜", + "level": null, + "stage_asset": null + }, + { + "id": 1020059, + "name": "大白菜", + "level": null, + "stage_asset": null + }, + { + "id": 1020065, + "name": "大蒜", + "level": null, + "stage_asset": null + }, + { + "id": 1020064, + "name": "大葱", + "level": null, + "stage_asset": null + }, + { + "id": 1020060, + "name": "水稻", + "level": null, + "stage_asset": null + }, + { + "id": 1020061, + "name": "小麦", + "level": null, + "stage_asset": null + }, + { + "id": 1020004, + "name": "玉米", + "level": null, + "stage_asset": null + }, + { + "id": 1020066, + "name": "鲜姜", + "level": null, + "stage_asset": null + }, + { + "id": 1020005, + "name": "土豆", + "level": null, + "stage_asset": null + }, + { + "id": 1020071, + "name": "小白菜", + "level": null, + "stage_asset": null + } + ] + } + ] + }, + "blockers": [ + { + "id": "visible_land_count", + "status": "blocked", + "detail": "Static source prefab has 36 visual grid cells. The first-milestone spec requires 24 visible land plots, but the runtime rule selecting those 24 is not yet decoded." + }, + { + "id": "background_texture_binding", + "status": "blocked", + "detail": "Background ImageAsset entries are located, but final texture/SpriteFrame binding for Cocos 4 import is not yet resolved from metadata." + }, + { + "id": "cocos4_cli_build", + "status": "blocked", + "detail": "Cocos 4 alpha CLI reaches engine init, then fails because node_modules/gl/build/Release/webgl.node requires NODE_MODULE_VERSION 140 while local Node 24 provides 137." + } + ] +} diff --git a/source_export/source_prefabs.json b/source_export/source_prefabs.json new file mode 100644 index 0000000..f72a19c --- /dev/null +++ b/source_export/source_prefabs.json @@ -0,0 +1,63 @@ +{ + "farm_scene_v3_sprite": { + "source": { + "asset_path": "scene/farm_scene_v3_sprite", + "index": 1635, + "role": "world_visual_prefab", + "bundle": "extraRes", + "mode": "pack", + "pack_key": "0ada99ac7", + "pack_position": 0, + "source_file": "downloads/raw/remote/extraRes/import/0a/0ada99ac7.403b3.json" + }, + "node_count": 131, + "category_counts": { + "source_node": 8, + "visual_land_cell": 36, + "visual_land_cell_child": 72, + "world_background": 3, + "world_decor": 1, + "world_layer": 11 + } + }, + "farm_scene_v3": { + "source": { + "asset_path": "scene/farm_scene_v3", + "index": 3914, + "role": "world_mount_and_logic_prefab", + "bundle": "extraRes", + "mode": "pack", + "pack_key": "0ec3b3100", + "pack_position": 1, + "source_file": "downloads/raw/remote/extraRes/import/0e/0ec3b3100.19268.json" + }, + "node_count": 119, + "category_counts": { + "skin_mount": 11, + "source_node": 36, + "visual_land_cell": 24, + "visual_land_cell_child": 48 + } + }, + "main_ui_v2": { + "source": { + "asset_path": "gui/prefab/main_ui_v2", + "index": 2487, + "role": "main_ui_prefab", + "bundle": "extraRes", + "mode": "pack", + "pack_key": "0d7027270", + "pack_position": 2, + "source_file": "downloads/raw/remote/extraRes/import/0d/0d7027270.4bc05.json" + }, + "node_count": 141, + "category_counts": { + "friend_visit_ui": 8, + "hud_bottom_or_task": 25, + "hud_left_setting": 29, + "hud_right": 35, + "hud_top": 39, + "main_ui_other": 5 + } + } +} diff --git a/source_export/source_runtime_notes.md b/source_export/source_runtime_notes.md new file mode 100644 index 0000000..f34dde1 --- /dev/null +++ b/source_export/source_runtime_notes.md @@ -0,0 +1,7 @@ +# Source Runtime Notes + +- Startup scene source has Canvas/root/ui/scene and two cameras. +- `farm_scene_v3_sprite` contains 36 static visual land cells under `Scaled/Rotate/GridOrigin`. +- First-stage spec requires 24 visible land plots, but the runtime rule selecting visible or unlocked plots is not decoded yet. +- Default house and doghouse come from `SkinCfg` records `201001` and `205001`, not only from the static visual prefab. +- Bottom menu source nodes are under `main_ui_v2/Menu`; feature logic for warehouse/shop/friend/task is outside first-stage scope. diff --git a/source_export/source_spine.json b/source_export/source_spine.json new file mode 100644 index 0000000..da54373 --- /dev/null +++ b/source_export/source_spine.json @@ -0,0 +1,30 @@ +{ + "status": "default house and doghouse reference Spine assets through SkinCfg; Cocos 4 import binding not generated yet", + "manifest": "/Users/hy/Documents/dev/qq_farm_godot_rebuild_20260616/downloads/spine_regions/spine_region_manifest.json", + "records": [ + { + "id": 201001, + "skin_type": 1, + "skin_name": "默认小屋", + "parent_node": "Scene/FgLayer/FarmSkin/Layer2", + "position": { + "x": 347.6, + "y": 179.8 + }, + "spine_asset": "spine/v2/costume/house/201001", + "icon_asset": "gui/texture/skinDetail/img_skin_house/spriteFrame" + }, + { + "id": 205001, + "skin_type": 5, + "skin_name": "默认狗屋", + "parent_node": "Scene/FgLayer/FarmSkin", + "position": { + "x": 24.2, + "y": 223.9 + }, + "spine_asset": "spine/v2/costume/doghouse/205001", + "icon_asset": "gui/texture/skinDetail/img_skin_doghouse/spriteFrame" + } + ] +} diff --git a/source_export/source_spriteframes.json b/source_export/source_spriteframes.json new file mode 100644 index 0000000..5a3d8bf --- /dev/null +++ b/source_export/source_spriteframes.json @@ -0,0 +1,4 @@ +{ + "status": "metadata_manifest_available_but_stage1_bindings_unresolved", + "manifest": "/Users/hy/Documents/dev/qq_farm_godot_rebuild_20260616/downloads/spriteframes/sprite_manifest.json" +} diff --git a/tools/compare_visual_rois.py b/tools/compare_visual_rois.py new file mode 100644 index 0000000..a2a2549 --- /dev/null +++ b/tools/compare_visual_rois.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +"""Write a first-stage ROI validation report. + +This pass records why ROI cannot pass yet: no Cocos-produced screenshot exists +because the Cocos 4 alpha CLI is blocked by a native ABI mismatch. +""" + +from __future__ import annotations + +import json +from datetime import datetime, timezone +from pathlib import Path + + +PROJECT = Path(__file__).resolve().parents[1] + + +def main() -> None: + out_dir = PROJECT / "artifacts/visual_compare" + out_dir.mkdir(parents=True, exist_ok=True) + report = { + "generated_at": datetime.now(timezone.utc).isoformat(), + "module": "main_scene_first_milestone", + "status": "blocked", + "rois": ["world_static", "land_area", "decor_area", "bottom_buttons"], + "reason": "Cocos-produced screenshot is unavailable because Cocos 4 alpha CLI build fails on native webgl.node ABI mismatch.", + "diagnostic_preview": str(PROJECT / "artifacts/canvas_preview/stage1_source_preview.png"), + "target_thresholds": { + "static_bitmap_similarity": 0.99, + "object_center_delta_px": 2, + "object_size_delta_percent": 1, + }, + } + path = out_dir / "stage1_roi_report.json" + path.write_text(json.dumps(report, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + print(path) + + +if __name__ == "__main__": + main() diff --git a/tools/extract_source_evidence.py b/tools/extract_source_evidence.py new file mode 100644 index 0000000..f7f18af --- /dev/null +++ b/tools/extract_source_evidence.py @@ -0,0 +1,199 @@ +#!/usr/bin/env python3 +"""Export first-milestone source evidence for the Cocos 4 rebuild. + +The extractor consumes the already decoded source-first inventory from the +original Cocos package. It does not read Godot output and does not infer layout +from screenshots. +""" + +from __future__ import annotations + +import json +from datetime import datetime, timezone +from pathlib import Path +from typing import Any + + +PROJECT = Path(__file__).resolve().parents[1] +SOURCE_ROOT = Path("/Users/hy/Documents/dev/qq_farm_godot_rebuild_20260616") +SOURCE_INVENTORY = SOURCE_ROOT / "source_first/out/main_scene_elements.json" +OUT = PROJECT / "source_export" + + +def read_json(path: Path) -> Any: + with path.open("r", encoding="utf-8") as fh: + return json.load(fh) + + +def write_json(path: Path, value: Any) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(value, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + + +def write_text(path: Path, value: str) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(value, encoding="utf-8") + + +def find_default_records(config_assets: list[dict[str, Any]]) -> list[dict[str, Any]]: + for item in config_assets: + if item.get("id") == "skin_cfg": + return item.get("default_records", []) + return [] + + +def only_paths(elements: list[dict[str, Any]], *needles: str) -> list[dict[str, Any]]: + return [item for item in elements if any(needle in str(item.get("full_path")) for needle in needles)] + + +def build_stage1(data: dict[str, Any]) -> dict[str, Any]: + sprite_prefab = data["prefabs"]["farm_scene_v3_sprite"] + mount_prefab = data["prefabs"]["farm_scene_v3"] + main_ui = data["prefabs"]["main_ui_v2"] + + land_candidates = [ + item for item in sprite_prefab["elements"] + if item.get("category") == "visual_land_cell" + ] + background_nodes = [ + item for item in sprite_prefab["elements"] + if item.get("category") == "world_background" + or str(item.get("full_path")).endswith("/Scene/bg") + or "BgLayer" in str(item.get("full_path")) + ] + bottom_menu_nodes = only_paths( + main_ui["elements"], + "main_ui_v2/Menu", + "main_ui_v2/Menu/btn_layout", + "main_ui_v2/Menu/Node_task", + "main_ui_v2/Menu/Node_Friend", + ) + default_skin_records = find_default_records(data.get("config_assets", [])) + house_records = [ + item for item in default_skin_records + if item.get("skin_type") in {1, 5} + ] + doghouse_nodes = only_paths(sprite_prefab["elements"], "dogHouse") + only_paths(mount_prefab["elements"], "dogHouse") + + return { + "module": "main_scene_first_milestone", + "generated_at": datetime.now(timezone.utc).isoformat(), + "source_inventory": str(SOURCE_INVENTORY), + "design_resolution": data["summary"]["design_resolution"], + "scope": [ + "Canvas", + "main Camera", + "root scene", + "background layers", + "visible land plots", + "house", + "doghouse", + "bottom menu buttons", + ], + "startup_scene": data["startup_scene"], + "prefab_sources": { + "farm_scene_v3_sprite": sprite_prefab["source"], + "farm_scene_v3": mount_prefab["source"], + "main_ui_v2": main_ui["source"], + }, + "canvas_and_cameras": data["startup_scene"]["elements"], + "background_nodes": background_nodes, + "land_candidates": { + "source_count": len(land_candidates), + "visible_count_required_by_spec": 24, + "selection_status": "blocked_missing_runtime_visible_land_rule", + "nodes": land_candidates, + }, + "house_and_doghouse": { + "skin_cfg_default_records": house_records, + "doghouse_nodes": doghouse_nodes, + }, + "bottom_menu_nodes": bottom_menu_nodes, + "asset_inputs": { + "backgrounds": data.get("source_assets", {}).get("backgrounds", []), + "config_assets": data.get("config_assets", []), + }, + "blockers": [ + { + "id": "visible_land_count", + "status": "blocked", + "detail": "Static source prefab has 36 visual grid cells. The first-milestone spec requires 24 visible land plots, but the runtime rule selecting those 24 is not yet decoded.", + }, + { + "id": "background_texture_binding", + "status": "blocked", + "detail": "Background ImageAsset entries are located, but final texture/SpriteFrame binding for Cocos 4 import is not yet resolved from metadata.", + }, + { + "id": "cocos4_cli_build", + "status": "blocked", + "detail": "Cocos 4 alpha CLI reaches engine init, then fails because node_modules/gl/build/Release/webgl.node requires NODE_MODULE_VERSION 140 while local Node 24 provides 137.", + }, + ], + } + + +def main() -> None: + data = read_json(SOURCE_INVENTORY) + stage1 = build_stage1(data) + + sprite_prefab = data["prefabs"]["farm_scene_v3_sprite"] + mount_prefab = data["prefabs"]["farm_scene_v3"] + main_ui = data["prefabs"]["main_ui_v2"] + + write_json(OUT / "source_nodes.json", stage1) + write_json(OUT / "source_prefabs.json", { + "farm_scene_v3_sprite": { + "source": sprite_prefab["source"], + "node_count": len(sprite_prefab["elements"]), + "category_counts": sprite_prefab.get("category_counts", {}), + }, + "farm_scene_v3": { + "source": mount_prefab["source"], + "node_count": len(mount_prefab["elements"]), + "category_counts": mount_prefab.get("category_counts", {}), + }, + "main_ui_v2": { + "source": main_ui["source"], + "node_count": len(main_ui["elements"]), + "category_counts": main_ui.get("category_counts", {}), + }, + }) + write_json(OUT / "source_assets.json", stage1["asset_inputs"]) + write_json(OUT / "source_spriteframes.json", { + "status": "metadata_manifest_available_but_stage1_bindings_unresolved", + "manifest": str(SOURCE_ROOT / "downloads/spriteframes/sprite_manifest.json"), + }) + write_json(OUT / "source_spine.json", { + "status": "default house and doghouse reference Spine assets through SkinCfg; Cocos 4 import binding not generated yet", + "manifest": str(SOURCE_ROOT / "downloads/spine_regions/spine_region_manifest.json"), + "records": stage1["house_and_doghouse"]["skin_cfg_default_records"], + }) + write_json(OUT / "source_animations.json", { + "status": "not_in_first_stage_scope", + "animation_clips": data.get("source_assets", {}).get("animation_clips", []), + }) + + runtime_notes = """# Source Runtime Notes + +- Startup scene source has Canvas/root/ui/scene and two cameras. +- `farm_scene_v3_sprite` contains 36 static visual land cells under `Scaled/Rotate/GridOrigin`. +- First-stage spec requires 24 visible land plots, but the runtime rule selecting visible or unlocked plots is not decoded yet. +- Default house and doghouse come from `SkinCfg` records `201001` and `205001`, not only from the static visual prefab. +- Bottom menu source nodes are under `main_ui_v2/Menu`; feature logic for warehouse/shop/friend/task is outside first-stage scope. +""" + write_text(OUT / "source_runtime_notes.md", runtime_notes) + + blocker_lines = ["# Source Blockers", ""] + for item in stage1["blockers"]: + blocker_lines.append(f"- `{item['id']}`: {item['detail']}") + blocker_lines.append("") + write_text(OUT / "source_blockers.md", "\n".join(blocker_lines)) + + print(f"wrote {OUT / 'source_nodes.json'}") + print(f"land candidates: {stage1['land_candidates']['source_count']}") + print("visible land selection: blocked_missing_runtime_visible_land_rule") + + +if __name__ == "__main__": + main() diff --git a/tools/generate_cocos4_project.py b/tools/generate_cocos4_project.py new file mode 100644 index 0000000..c6f5874 --- /dev/null +++ b/tools/generate_cocos4_project.py @@ -0,0 +1,70 @@ +#!/usr/bin/env python3 +"""Generate first-stage Cocos-facing scene data from source evidence. + +The Cocos 4 alpha CLI on this machine cannot currently build because of a +native ABI mismatch. This script therefore writes source-backed scene data that +can be consumed by a later Cocos 4 scene writer once the CLI/runtime is fixed. +""" + +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any + + +PROJECT = Path(__file__).resolve().parents[1] +SOURCE_NODES = PROJECT / "source_export/source_nodes.json" + + +def read_json(path: Path) -> Any: + with path.open("r", encoding="utf-8") as fh: + return json.load(fh) + + +def mkdir_keep(path: Path) -> None: + path.mkdir(parents=True, exist_ok=True) + keep = path / ".gitkeep" + if not keep.exists(): + keep.write_text("", encoding="utf-8") + + +def main() -> None: + data = read_json(SOURCE_NODES) + for rel in [ + "assets/scenes", + "assets/prefabs", + "assets/scripts", + "assets/scripts/mock", + "assets/resources", + "assets/bundles", + "assets/textures", + "assets/spine", + "assets/audio", + "assets/configs", + "assets/i18n", + "artifacts/cocos_capture", + "artifacts/visual_compare", + ]: + mkdir_keep(PROJECT / rel) + + scene = { + "format": "cocos4_stage1_source_scene", + "status": "source_backed_intermediate_scene_data", + "design_resolution": data["design_resolution"], + "nodes": { + "startup": data["canvas_and_cameras"], + "backgrounds": data["background_nodes"], + "land_candidates": data["land_candidates"], + "house_and_doghouse": data["house_and_doghouse"], + "bottom_menu": data["bottom_menu_nodes"], + }, + "blockers": data["blockers"], + } + out = PROJECT / "assets/scenes/main_stage1.source_scene.json" + out.write_text(json.dumps(scene, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + print(out) + + +if __name__ == "__main__": + main() diff --git a/tools/render_canvas_preview.py b/tools/render_canvas_preview.py new file mode 100644 index 0000000..f06db45 --- /dev/null +++ b/tools/render_canvas_preview.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python3 +"""Render a diagnostic first-stage preview from source evidence.""" + +from __future__ import annotations + +import json +from pathlib import Path +from typing import Any + +from PIL import Image, ImageDraw, ImageFont + + +PROJECT = Path(__file__).resolve().parents[1] +SOURCE_NODES = PROJECT / "source_export/source_nodes.json" +OUT_DIR = PROJECT / "artifacts/canvas_preview" + + +def read_json(path: Path) -> Any: + with path.open("r", encoding="utf-8") as fh: + return json.load(fh) + + +def cocos_to_image(point: dict[str, float], width: int, height: int) -> tuple[float, float]: + return width / 2 + float(point.get("x", 0)), height / 2 - float(point.get("y", 0)) + + +def draw_centered_rect(draw: ImageDraw.ImageDraw, node: dict[str, Any], canvas: tuple[int, int], outline: str, fill: str | None = None) -> None: + pos = node.get("world_position_transformed") or node.get("position") or {"x": 0, "y": 0} + size = node.get("primary_size") or node.get("content_size") or {"width": 40, "height": 40} + cx, cy = cocos_to_image(pos, canvas[0], canvas[1]) + w = float(size.get("width") or 40) + h = float(size.get("height") or 40) + box = [cx - w / 2, cy - h / 2, cx + w / 2, cy + h / 2] + draw.rectangle(box, outline=outline, fill=fill, width=2) + + +def draw_land_cell(draw: ImageDraw.ImageDraw, node: dict[str, Any], canvas: tuple[int, int]) -> None: + pos = node.get("world_position_transformed") or {"x": 0, "y": 0} + cx, cy = cocos_to_image(pos, canvas[0], canvas[1]) + size = node.get("primary_size") or {"width": 130, "height": 130} + w = float(size.get("width") or 130) + h = float(size.get("height") or 130) * 0.5 + pts = [(cx, cy - h / 2), (cx + w / 2, cy), (cx, cy + h / 2), (cx - w / 2, cy)] + draw.polygon(pts, outline="#2f7d32", fill="#86bf6a") + + +def main() -> None: + data = read_json(SOURCE_NODES) + width = int(data["design_resolution"]["width"]) + height = int(data["design_resolution"]["height"]) + img = Image.new("RGB", (width, height), "#d7efff") + draw = ImageDraw.Draw(img, "RGBA") + + for node in data["background_nodes"]: + draw_centered_rect(draw, node, (width, height), "#7a9f4b", "#b7d77a55") + + for node in data["land_candidates"]["nodes"]: + draw_land_cell(draw, node, (width, height)) + + for node in data["house_and_doghouse"]["doghouse_nodes"]: + draw_centered_rect(draw, node, (width, height), "#7a3f16", "#b8753555") + + for record in data["house_and_doghouse"]["skin_cfg_default_records"]: + pos = record.get("position") or {"x": 0, "y": 0} + cx, cy = cocos_to_image(pos, width, height) + label = str(record.get("skin_name", record.get("id"))) + draw.rectangle([cx - 55, cy - 35, cx + 55, cy + 35], outline="#5c2d91", fill="#c7a5ff66", width=2) + draw.text((cx - 48, cy - 8), label, fill="#2b1545") + + for node in data["bottom_menu_nodes"]: + draw_centered_rect(draw, node, (width, height), "#1f4f99", "#6fa8ff55") + + draw.rectangle([0, 0, width - 1, height - 1], outline="#222222", width=2) + draw.text((12, 12), "Stage1 diagnostic preview - source evidence only", fill="#111111") + draw.text((12, 34), f"land candidates: {data['land_candidates']['source_count']} / visible 24 blocked", fill="#8a1f11") + + OUT_DIR.mkdir(parents=True, exist_ok=True) + png = OUT_DIR / "stage1_source_preview.png" + report = OUT_DIR / "stage1_source_preview_report.json" + img.save(png) + report.write_text(json.dumps({ + "status": "generated", + "image": str(png), + "resolution": {"width": width, "height": height}, + "land_candidates_rendered": data["land_candidates"]["source_count"], + "visible_land_selection": data["land_candidates"]["selection_status"], + "note": "Diagnostic rendering only; it does not define final Cocos coordinates.", + }, indent=2) + "\n", encoding="utf-8") + print(png) + + +if __name__ == "__main__": + main() diff --git a/tools/verify_cocos4_project.py b/tools/verify_cocos4_project.py new file mode 100644 index 0000000..1c4dd13 --- /dev/null +++ b/tools/verify_cocos4_project.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 +"""Verify the Cocos 4 project and record current toolchain status.""" + +from __future__ import annotations + +import json +import subprocess +from datetime import datetime, timezone +from pathlib import Path + + +PROJECT = Path(__file__).resolve().parents[1] + + +def run(cmd: list[str]) -> dict[str, object]: + proc = subprocess.run(cmd, cwd=PROJECT, text=True, capture_output=True) + return { + "cmd": cmd, + "returncode": proc.returncode, + "stdout_tail": proc.stdout[-4000:], + "stderr_tail": proc.stderr[-4000:], + } + + +def main() -> None: + package = json.loads((PROJECT / "package.json").read_text(encoding="utf-8")) + checks = { + "generated_at": datetime.now(timezone.utc).isoformat(), + "package": { + "type": package.get("type"), + "version": package.get("version"), + "creator_version": package.get("creator", {}).get("version"), + }, + "cocos_version": run(["zsh", "-lc", "cocos --version"]), + "node_abi": run(["zsh", "-lc", "~/.local/tools/node-v24.14.1-darwin-arm64/bin/node -p 'process.version + \" abi=\" + process.versions.modules'"]), + "build": run(["zsh", "-lc", "rm -rf temp library build && cocos build --project . --platform web-mobile"]), + } + checks["status"] = "passed" if checks["build"]["returncode"] == 0 else "blocked" + checks["blocker"] = None if checks["status"] == "passed" else "Cocos 4 alpha CLI native gl module expects NODE_MODULE_VERSION 140; local Node 24 reports ABI 137." + + out = PROJECT / "artifacts/cocos_capture" + out.mkdir(parents=True, exist_ok=True) + path = out / "stage1_cocos_verify.json" + path.write_text(json.dumps(checks, ensure_ascii=False, indent=2) + "\n", encoding="utf-8") + print(path) + raise SystemExit(0 if checks["status"] == "passed" else 1) + + +if __name__ == "__main__": + main()