From fe21ffdc65e5436079fc8c1950cfa26616c1bc3a Mon Sep 17 00:00:00 2001 From: lujun <495904500@qq.com> Date: Sun, 5 Feb 2023 20:31:26 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=80=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 24 + assets/lcc-ui-sorting-group.meta | 12 + assets/lcc-ui-sorting-group/engine-extend.ts | 228 +++ .../engine-extend.ts.meta | 9 + assets/lcc-ui-sorting-group/sorting-define.ts | 23 + .../sorting-define.ts.meta | 9 + assets/lcc-ui-sorting-group/sorting-group.ts | 38 + .../sorting-group.ts.meta | 9 + assets/test.meta | 12 + assets/test/prefabs.meta | 12 + .../test/prefabs/ListTestItem-sorting.prefab | 1644 +++++++++++++++++ .../prefabs/ListTestItem-sorting.prefab.meta | 13 + assets/test/prefabs/ListTestItem.prefab | 1424 ++++++++++++++ assets/test/prefabs/ListTestItem.prefab.meta | 13 + assets/test/scenes.meta | 12 + assets/test/scenes/test-scene-sorting.scene | 1106 +++++++++++ .../test/scenes/test-scene-sorting.scene.meta | 11 + assets/test/scenes/test-scene.scene | 1106 +++++++++++ assets/test/scenes/test-scene.scene.meta | 1 + assets/test/scripts.meta | 12 + assets/test/scripts/list-test-item.ts | 37 + assets/test/scripts/list-test-item.ts.meta | 9 + assets/test/scripts/test-scene.ts | 28 + assets/test/scripts/test-scene.ts.meta | 9 + assets/test/textures.meta | 12 + assets/test/textures/auto-atlas.pac | 3 + assets/test/textures/auto-atlas.pac.meta | 36 + assets/test/textures/box-1.png | Bin 0 -> 1130 bytes assets/test/textures/box-1.png.meta | 134 ++ assets/test/textures/box-2.png | Bin 0 -> 873 bytes assets/test/textures/box-2.png.meta | 134 ++ assets/test/textures/box-3.png | Bin 0 -> 451 bytes assets/test/textures/box-3.png.meta | 134 ++ assets/test/textures/box-4.png | Bin 0 -> 1109 bytes assets/test/textures/box-4.png.meta | 134 ++ assets/test/textures/box-5.png | Bin 0 -> 952 bytes assets/test/textures/box-5.png.meta | 134 ++ assets/test/textures/box-6.png | Bin 0 -> 200 bytes assets/test/textures/box-6.png.meta | 134 ++ assets/test/textures/box-7.png | Bin 0 -> 105 bytes assets/test/textures/box-7.png.meta | 134 ++ assets/test/textures/box-8.png | Bin 0 -> 119 bytes assets/test/textures/box-8.png.meta | 134 ++ assets/test/textures/box-9.png | Bin 0 -> 153 bytes assets/test/textures/box-9.png.meta | 134 ++ assets/test/textures/btn-black.png | Bin 0 -> 569 bytes assets/test/textures/btn-black.png.meta | 134 ++ assets/test/textures/btn-white-2.png | Bin 0 -> 838 bytes assets/test/textures/btn-white-2.png.meta | 134 ++ assets/test/textures/btn-white.png | Bin 0 -> 809 bytes assets/test/textures/btn-white.png.meta | 134 ++ assets/test/textures/circle-countdown.png | Bin 0 -> 13678 bytes .../test/textures/circle-countdown.png.meta | 134 ++ assets/test/textures/flag-disconnection.png | Bin 0 -> 2207 bytes .../test/textures/flag-disconnection.png.meta | 134 ++ assets/test/textures/flag-eliminated.png | Bin 0 -> 2453 bytes assets/test/textures/flag-eliminated.png.meta | 134 ++ assets/test/textures/flag-escape.png | Bin 0 -> 2375 bytes assets/test/textures/flag-escape.png.meta | 134 ++ assets/test/textures/gold.png | Bin 0 -> 3403 bytes assets/test/textures/gold.png.meta | 134 ++ package.json | 9 + readme.md | 0 settings/v2/packages/cocos-service.json | 22 + settings/v2/packages/project.json | 8 + tsconfig.json | 9 + 66 files changed, 8178 insertions(+) create mode 100644 .gitignore create mode 100644 assets/lcc-ui-sorting-group.meta create mode 100644 assets/lcc-ui-sorting-group/engine-extend.ts create mode 100644 assets/lcc-ui-sorting-group/engine-extend.ts.meta create mode 100644 assets/lcc-ui-sorting-group/sorting-define.ts create mode 100644 assets/lcc-ui-sorting-group/sorting-define.ts.meta create mode 100644 assets/lcc-ui-sorting-group/sorting-group.ts create mode 100644 assets/lcc-ui-sorting-group/sorting-group.ts.meta create mode 100644 assets/test.meta create mode 100644 assets/test/prefabs.meta create mode 100644 assets/test/prefabs/ListTestItem-sorting.prefab create mode 100644 assets/test/prefabs/ListTestItem-sorting.prefab.meta create mode 100644 assets/test/prefabs/ListTestItem.prefab create mode 100644 assets/test/prefabs/ListTestItem.prefab.meta create mode 100644 assets/test/scenes.meta create mode 100644 assets/test/scenes/test-scene-sorting.scene create mode 100644 assets/test/scenes/test-scene-sorting.scene.meta create mode 100644 assets/test/scenes/test-scene.scene create mode 100644 assets/test/scenes/test-scene.scene.meta create mode 100644 assets/test/scripts.meta create mode 100644 assets/test/scripts/list-test-item.ts create mode 100644 assets/test/scripts/list-test-item.ts.meta create mode 100644 assets/test/scripts/test-scene.ts create mode 100644 assets/test/scripts/test-scene.ts.meta create mode 100644 assets/test/textures.meta create mode 100644 assets/test/textures/auto-atlas.pac create mode 100644 assets/test/textures/auto-atlas.pac.meta create mode 100644 assets/test/textures/box-1.png create mode 100644 assets/test/textures/box-1.png.meta create mode 100644 assets/test/textures/box-2.png create mode 100644 assets/test/textures/box-2.png.meta create mode 100644 assets/test/textures/box-3.png create mode 100644 assets/test/textures/box-3.png.meta create mode 100644 assets/test/textures/box-4.png create mode 100644 assets/test/textures/box-4.png.meta create mode 100644 assets/test/textures/box-5.png create mode 100644 assets/test/textures/box-5.png.meta create mode 100644 assets/test/textures/box-6.png create mode 100644 assets/test/textures/box-6.png.meta create mode 100644 assets/test/textures/box-7.png create mode 100644 assets/test/textures/box-7.png.meta create mode 100644 assets/test/textures/box-8.png create mode 100644 assets/test/textures/box-8.png.meta create mode 100644 assets/test/textures/box-9.png create mode 100644 assets/test/textures/box-9.png.meta create mode 100644 assets/test/textures/btn-black.png create mode 100644 assets/test/textures/btn-black.png.meta create mode 100644 assets/test/textures/btn-white-2.png create mode 100644 assets/test/textures/btn-white-2.png.meta create mode 100644 assets/test/textures/btn-white.png create mode 100644 assets/test/textures/btn-white.png.meta create mode 100644 assets/test/textures/circle-countdown.png create mode 100644 assets/test/textures/circle-countdown.png.meta create mode 100644 assets/test/textures/flag-disconnection.png create mode 100644 assets/test/textures/flag-disconnection.png.meta create mode 100644 assets/test/textures/flag-eliminated.png create mode 100644 assets/test/textures/flag-eliminated.png.meta create mode 100644 assets/test/textures/flag-escape.png create mode 100644 assets/test/textures/flag-escape.png.meta create mode 100644 assets/test/textures/gold.png create mode 100644 assets/test/textures/gold.png.meta create mode 100644 package.json create mode 100644 readme.md create mode 100644 settings/v2/packages/cocos-service.json create mode 100644 settings/v2/packages/project.json create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a231b3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ + +#/////////////////////////// +# Cocos Creator 3D Project +#/////////////////////////// +library/ +temp/ +local/ +build/ +profiles/ +native +#////////////////////////// +# NPM +#////////////////////////// +node_modules/ + +#////////////////////////// +# VSCode +#////////////////////////// +.vscode/ + +#////////////////////////// +# WebStorm +#////////////////////////// +.idea/ \ No newline at end of file diff --git a/assets/lcc-ui-sorting-group.meta b/assets/lcc-ui-sorting-group.meta new file mode 100644 index 0000000..1701c80 --- /dev/null +++ b/assets/lcc-ui-sorting-group.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "fbe325bf-0096-49e8-a5e6-5446bc2010b1", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/lcc-ui-sorting-group/engine-extend.ts b/assets/lcc-ui-sorting-group/engine-extend.ts new file mode 100644 index 0000000..8a6df83 --- /dev/null +++ b/assets/lcc-ui-sorting-group/engine-extend.ts @@ -0,0 +1,228 @@ +import { clamp, gfx,Node,RenderData,UI,StencilManager,UIRenderer } from 'cc'; +import { JSB } from 'cc/env'; + +declare module 'cc' { + interface UIRenderer { + + /** + * 排序优先级 + */ + sortingPriority:number; + + /** + * 排序透明度 + */ + sortingOpacity:number; + } + + interface UI { + + /** + * 渲染器缓存 + */ + rendererCache:UIRenderer[]; + + /** + * 渲染器排序 + */ + rendererOrder:boolean; + + /** + * 刷新渲染缓存 + */ + flushRendererCache(); + } +} + +export enum _cocos_2d_renderer_stencil_manager__Stage { + DISABLED = 0, + CLEAR = 1, + ENTER_LEVEL = 2, + ENABLED = 3, + EXIT_LEVEL = 4, + CLEAR_INVERTED = 5, + ENTER_LEVEL_INVERTED = 6 +} + +export function updateOpacity (renderData: RenderData, opacity: number) { + const vfmt = renderData.vertexFormat; + const vb = renderData.chunk.vb; + let attr; let format; let stride; + // Color component offset + let offset = 0; + for (let i = 0; i < vfmt.length; ++i) { + attr = vfmt[i]; + format = gfx.FormatInfos[attr.format]; + if (format.hasAlpha) { + stride = renderData.floatStride; + if (format.size / format.count === 1) { + const alpha = ~~clamp(Math.round(opacity * 255), 0, 255); + // Uint color RGBA8 + for (let color = offset; color < vb.length; color += stride) { + vb[color] = ((vb[color] & 0xffffff00) | alpha) >>> 0; + } + } else if (format.size / format.count === 4) { + // RGBA32 color, alpha at position 3 + for (let alpha = offset + 3; alpha < vb.length; alpha += stride) { + vb[alpha] = opacity; + } + } + } + offset += format.size >> 2; + } +} + +const UI_initialize = UI.prototype.initialize; +UI.prototype.initialize = function(){ + this.rendererCache = []; + this.rendererOrder = false; + return UI_initialize.call(this); +} + +UI.prototype.flushRendererCache = function(){ + const rendererCache = this.rendererCache; + if(rendererCache.length > 0){ + if(this.rendererOrder){ + rendererCache.sort((a, b)=>{ return a.sortingPriority - b.sortingPriority; }); + } + for(let render of rendererCache){ + render.fillBuffers(this); + if(render.sortingOpacity >= 0){ + updateOpacity(render.renderData, render.sortingOpacity); + const buffer = render.renderData.getMeshBuffer(); + if (buffer) { + buffer.setDirty(); + } + } + } + rendererCache.length = 0; + } + this.rendererOrder = false; +} + +UI.prototype.update = function() { + if (JSB) { + return; + } + const screens = this._screens; + let offset = 0; + for (let i = 0; i < screens.length; ++i) { + const screen = screens[i]; + const scene = screen._getRenderScene(); + if (!screen.enabledInHierarchy || !scene) { + continue; + } + // Reset state and walk + this._opacityDirty = 0; + this._pOpacity = 1; + + this.walk(screen.node); + this.flushRendererCache(); + + this.autoMergeBatches(this._currComponent!); + this.resetRenderStates(); + + let batchPriority = 0; + if (this._batches.length > offset) { + for (; offset < this._batches.length; ++offset) { + const batch = this._batches.array[offset]; + + if (batch.model) { + const subModels = batch.model.subModels; + for (let j = 0; j < subModels.length; j++) { + subModels[j].priority = batchPriority++; + } + } else { + batch.descriptorSet = this._descriptorSetCache.getDescriptorSet(batch); + } + scene.addBatch(batch); + } + } + } +} + +UI.prototype.walk = function(node: Node, level = 0){ + if (!node.activeInHierarchy) { + return; + } + const children = node.children; + const uiProps = node._uiProps; + const render = uiProps.uiComp as UIRenderer; + const stencilEnterLevel = render && (render.stencilStage === _cocos_2d_renderer_stencil_manager__Stage.ENTER_LEVEL || render.stencilStage === _cocos_2d_renderer_stencil_manager__Stage.ENTER_LEVEL_INVERTED); + + // Save opacity + const parentOpacity = this._pOpacity; + let opacity = parentOpacity; + // TODO Always cascade ui property's local opacity before remove it + const selfOpacity = render && render.color ? render.color.a / 255 : 1; + this._pOpacity = opacity *= selfOpacity * uiProps.localOpacity; + // TODO Set opacity to ui property's opacity before remove it + // @ts-expect-error temporary force set, will be removed with ui property's opacity + uiProps._opacity = opacity; + if (uiProps.colorDirty) { + // Cascade color dirty state + this._opacityDirty++; + } + + // Render assembler update logic + if (render && render.enabledInHierarchy) { + if(stencilEnterLevel){ + this.flushRendererCache(); + + render.fillBuffers(this);// for rendering + + // Update cascaded opacity to vertex buffer + if (this._opacityDirty && render && !render.useVertexOpacity && render.renderData && render.renderData.vertexCount > 0) { + // HARD COUPLING + updateOpacity(render.renderData, opacity); + const buffer = render.renderData.getMeshBuffer(); + if (buffer) { + buffer.setDirty(); + } + } + }else{ + this.rendererCache.push(render); + render.sortingPriority = render.sortingPriority ?? 0; + if(render.sortingPriority != 0){ + this.rendererOrder = true; + } + if (this._opacityDirty && render && !render.useVertexOpacity && render.renderData && render.renderData.vertexCount > 0) { + render.sortingOpacity = opacity; + }else{ + render.sortingOpacity = -1; + } + } + } + + if (children.length > 0 && !node._static) { + for (let i = 0; i < children.length; ++i) { + const child = children[i]; + this.walk(child, level); + } + } + + if (uiProps.colorDirty) { + // Reduce cascaded color dirty state + this._opacityDirty--; + // Reset color dirty + uiProps.colorDirty = false; + } + // Restore opacity + this._pOpacity = parentOpacity; + // Post render assembler update logic + // ATTENTION: Will also reset colorDirty inside postUpdateAssembler + if (render && render.enabledInHierarchy) { + render.postUpdateAssembler(this); + if (stencilEnterLevel + && (StencilManager.sharedManager!.getMaskStackSize() > 0)) { + + this.flushRendererCache(); + + this.autoMergeBatches(this._currComponent!); + this.resetRenderStates(); + StencilManager.sharedManager!.exitMask(); + } + } + + level += 1; +}; diff --git a/assets/lcc-ui-sorting-group/engine-extend.ts.meta b/assets/lcc-ui-sorting-group/engine-extend.ts.meta new file mode 100644 index 0000000..c48fe03 --- /dev/null +++ b/assets/lcc-ui-sorting-group/engine-extend.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "eebde562-6799-4fbd-9138-5f4755bdd7d7", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/lcc-ui-sorting-group/sorting-define.ts b/assets/lcc-ui-sorting-group/sorting-define.ts new file mode 100644 index 0000000..12948ea --- /dev/null +++ b/assets/lcc-ui-sorting-group/sorting-define.ts @@ -0,0 +1,23 @@ + +/** + * 排序层级 + */ +export enum SortingLayer { + + //-- 自定义,在此之上,小于 DEFAULT 的层级 + + /** + * 默认层级,在没有应用排序的UI渲染上的默认层级 + */ + DEFAULT = 0, + + //-- 自定义,在此之下,大于 DEFAULT 的层级 + + // 测试定义,可以直接移除 + TEST_LIST_ITEM = 1, +} + +/** + * 在层级中最大排序值 + */ +export const ORDER_IN_LAYER_MAX = 100000; diff --git a/assets/lcc-ui-sorting-group/sorting-define.ts.meta b/assets/lcc-ui-sorting-group/sorting-define.ts.meta new file mode 100644 index 0000000..3730f3f --- /dev/null +++ b/assets/lcc-ui-sorting-group/sorting-define.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "ac000892-443c-41be-8b49-35e002bb1213", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/lcc-ui-sorting-group/sorting-group.ts b/assets/lcc-ui-sorting-group/sorting-group.ts new file mode 100644 index 0000000..7aa3210 --- /dev/null +++ b/assets/lcc-ui-sorting-group/sorting-group.ts @@ -0,0 +1,38 @@ + +import { _decorator, Component, Node, ccenum, CCInteger, CCFloat, Enum, director, UI, UIRenderer } from 'cc'; +import { ORDER_IN_LAYER_MAX, SortingLayer } from './sorting-define'; +const { ccclass, property, type, disallowMultiple, requireComponent } = _decorator; + +@ccclass('lcc-ui/SortingGroup') +@requireComponent(UIRenderer) +@disallowMultiple +export class SortingGroup extends Component { + /** + * 排序层 + */ + @type(Enum(SortingLayer)) + sortingLayer:SortingLayer = SortingLayer.DEFAULT; + + /** + * 排序值 + */ + @property({ type:CCFloat, min: 0, max : ORDER_IN_LAYER_MAX }) + orderInLayer:number = 0; + + /** + * UI渲染器 + */ + private _uiRenderer:UIRenderer = null; + + onLoad(){ + this._uiRenderer = this.getComponent(UIRenderer); + } + + onEnable(){ + this._uiRenderer.sortingPriority = Math.sign(this.sortingLayer) * (Math.abs(this.sortingLayer) * ORDER_IN_LAYER_MAX + this.orderInLayer); + } + + onDisable(){ + this._uiRenderer.sortingPriority = SortingLayer.DEFAULT * ORDER_IN_LAYER_MAX; + } +} diff --git a/assets/lcc-ui-sorting-group/sorting-group.ts.meta b/assets/lcc-ui-sorting-group/sorting-group.ts.meta new file mode 100644 index 0000000..00f0983 --- /dev/null +++ b/assets/lcc-ui-sorting-group/sorting-group.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "5c8c905a-57e5-40d5-9de9-2be66c8b709b", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/test.meta b/assets/test.meta new file mode 100644 index 0000000..cf0834c --- /dev/null +++ b/assets/test.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "ee331372-5265-4db6-a78d-6cd64e7962a8", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/test/prefabs.meta b/assets/test/prefabs.meta new file mode 100644 index 0000000..f3dac5e --- /dev/null +++ b/assets/test/prefabs.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "dca7ccf5-6238-4b91-9a5f-2a8ccb5d1a56", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/test/prefabs/ListTestItem-sorting.prefab b/assets/test/prefabs/ListTestItem-sorting.prefab new file mode 100644 index 0000000..c84112c --- /dev/null +++ b/assets/test/prefabs/ListTestItem-sorting.prefab @@ -0,0 +1,1644 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "ListTestItem-sorting", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "persistent": false, + "asyncLoadAssets": false + }, + { + "__type__": "cc.Node", + "_name": "ListTestItem-sorting", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 18 + }, + { + "__id__": 36 + }, + { + "__id__": 44 + }, + { + "__id__": 70 + } + ], + "_active": true, + "_components": [ + { + "__id__": 78 + }, + { + "__id__": 80 + }, + { + "__id__": 82 + }, + { + "__id__": 84 + } + ], + "_prefab": { + "__id__": 86 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": -819.9955, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Head", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + } + ], + "_active": true, + "_components": [ + { + "__id__": 11 + }, + { + "__id__": 13 + }, + { + "__id__": 15 + } + ], + "_prefab": { + "__id__": 17 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 95.5435, + "y": -93.898, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Rank", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + }, + { + "__id__": 6 + }, + { + "__id__": 8 + } + ], + "_prefab": { + "__id__": 10 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": { + "__id__": 5 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 22.25, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "042In80RtHj6DspKYJCAhv" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": { + "__id__": 7 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "1", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 40, + "_fontSize": 40, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c9PuueFXhGkrDvOiYdnQn3" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": { + "__id__": 9 + }, + "sortingLayer": 1, + "orderInLayer": 6, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "0cdkEJqIxNXojFecS2X0Fj" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "adGhn19P9Gr4SmeSOuBKn2" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 12 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 160, + "height": 160 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "2bovubnu5DmJ++tm17Wvqt" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 14 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "98c87e02-1e93-4f76-881c-4668398c2538@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "43EbeEcqhIUKczwmvTraCm" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 16 + }, + "sortingLayer": 1, + "orderInLayer": 1, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "97CR4vO0tI0KVWUE+VSdqe" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "e9vIw3BKZE8ZiqzoRw9UNN" + }, + { + "__type__": "cc.Node", + "_name": "Gold", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 19 + } + ], + "_active": true, + "_components": [ + { + "__id__": 27 + }, + { + "__id__": 29 + }, + { + "__id__": 31 + }, + { + "__id__": 33 + } + ], + "_prefab": { + "__id__": 35 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 226.69, + "y": -51.131, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 0, + "_parent": { + "__id__": 18 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 20 + }, + { + "__id__": 22 + }, + { + "__id__": 24 + } + ], + "_prefab": { + "__id__": 26 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 97.614, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 19 + }, + "_enabled": true, + "__prefab": { + "__id__": 21 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 129.538, + "height": 44.988 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "f08U+VFT5HoJaUW9n3xE3a" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 19 + }, + "_enabled": true, + "__prefab": { + "__id__": 23 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 192, + "g": 255, + "b": 59, + "a": 255 + }, + "_string": "9999", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 2, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "d8Xz4yJwtBcrHUvWDhUK++" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 19 + }, + "_enabled": true, + "__prefab": { + "__id__": 25 + }, + "sortingLayer": 1, + "orderInLayer": 7, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "02yKVUuzVGOK+UdWxveSCZ" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "be0j7GDihBh589CV8VLOj5" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "__prefab": { + "__id__": 28 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 61 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "36ASF66AhLG7x3KV0ArZnu" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "__prefab": { + "__id__": 30 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "6dbed0ea-8e55-490e-ac38-4880862370c8@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "42rKYPmHtDpK9VzIjLGL7x" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "__prefab": { + "__id__": 32 + }, + "sortingLayer": 1, + "orderInLayer": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c9LHhVr5JLJKQ9sMDWGnkI" + }, + { + "__type__": "cc.UIOpacity", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 18 + }, + "_enabled": true, + "__prefab": { + "__id__": 34 + }, + "_opacity": 255, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "b1qLzYX71JoKbyFZluPQPZ" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "926Ld9aTZMJqKYawg8FXL2" + }, + { + "__type__": "cc.Node", + "_name": "Flag", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 37 + }, + { + "__id__": 39 + }, + { + "__id__": 41 + } + ], + "_prefab": { + "__id__": 43 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 468.913, + "y": -53.519, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "__prefab": { + "__id__": 38 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 81, + "height": 80 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "72/yAZsWJHAIYWBK64/Zik" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "__prefab": { + "__id__": 40 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "c7f04ad9-3432-406c-af71-456be27021e1@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "70ZsAti8pMZJv3urwubdl4" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "__prefab": { + "__id__": 42 + }, + "sortingLayer": 1, + "orderInLayer": 3, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "26Q4Jd7EhH6a+w3+2yaVR2" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7eVot73xFNXriNV4u/o+TS" + }, + { + "__type__": "cc.Node", + "_name": "Level", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 45 + } + ], + "_active": true, + "_components": [ + { + "__id__": 63 + }, + { + "__id__": 65 + }, + { + "__id__": 67 + } + ], + "_prefab": { + "__id__": 69 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 232.165, + "y": -129.224, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "ProgressBar", + "_objFlags": 0, + "_parent": { + "__id__": 44 + }, + "_children": [ + { + "__id__": 46 + } + ], + "_active": true, + "_components": [ + { + "__id__": 54 + }, + { + "__id__": 56 + }, + { + "__id__": 58 + }, + { + "__id__": 60 + } + ], + "_prefab": { + "__id__": 62 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 119.337, + "y": -33.399, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Bar", + "_objFlags": 0, + "_parent": { + "__id__": 45 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 47 + }, + { + "__id__": 49 + }, + { + "__id__": 51 + } + ], + "_prefab": { + "__id__": 53 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": -150, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 46 + }, + "_enabled": true, + "__prefab": { + "__id__": 48 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "41PYxqTvNPAq/Ie6VgNWPq" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 46 + }, + "_enabled": true, + "__prefab": { + "__id__": 50 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "09bd952a-9e81-45e3-a6ba-3551a53701a0@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "70yt72t4FNtYpvlclVXzDG" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 46 + }, + "_enabled": true, + "__prefab": { + "__id__": 52 + }, + "sortingLayer": 1, + "orderInLayer": 5, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "e7wMjTJtdCdaLDnYmBysE9" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d57XxT0N1BCJ6nQAM+IF65" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "__prefab": { + "__id__": 55 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "d8b/naaVdC7IXCiJEg6vl1" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "__prefab": { + "__id__": 57 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "12g80s5KNEGaH2v5J2kKq4" + }, + { + "__type__": "cc.ProgressBar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "__prefab": { + "__id__": 59 + }, + "_barSprite": { + "__id__": 49 + }, + "_mode": 0, + "_totalLength": 300, + "_progress": 1, + "_reverse": false, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "9aQ599CDNHt4iZ2WqEs+F5" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 45 + }, + "_enabled": true, + "__prefab": { + "__id__": 61 + }, + "sortingLayer": 1, + "orderInLayer": 4, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "55XGLpI3VGLbkcZUE/8DcW" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "89J9c9tu5JqaJcthPGZBDv" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "__prefab": { + "__id__": 64 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 56.69, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "89Ekxn78dEJL0WUDkCiUQ9" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "__prefab": { + "__id__": 66 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 255, + "b": 61, + "a": 255 + }, + "_string": "Lv.1", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "369jc6bVFBT4rbvACocy4K" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 44 + }, + "_enabled": true, + "__prefab": { + "__id__": 68 + }, + "sortingLayer": 1, + "orderInLayer": 8, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "33FtcznOVNXLvTgkOQkreK" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d156I74oFCcZR/Pgjj2aOU" + }, + { + "__type__": "cc.Node", + "_name": "Desc", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 71 + }, + { + "__id__": 73 + }, + { + "__id__": 75 + } + ], + "_prefab": { + "__id__": 77 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 278.10400000000004, + "y": -246.44449999999998, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 70 + }, + "_enabled": true, + "__prefab": { + "__id__": 72 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 462.618, + "height": 103.029 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "dbgpeK9y1Eh4FE/vL+XVh9" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 70 + }, + "_enabled": true, + "__prefab": { + "__id__": 74 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 241, + "b": 241, + "a": 255 + }, + "_string": "什么也没留下", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 2, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c6k9UzjXtNTo3JIQ+ICoX3" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 70 + }, + "_enabled": true, + "__prefab": { + "__id__": 76 + }, + "sortingLayer": 1, + "orderInLayer": 9, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "6eXPpfLp5FN7BSXaqTtpWK" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "ccgys+RyNEiLbzg2bri8Cb" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 79 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 520.9820000000001, + "height": 320.332 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 1 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c5z7FI/ldDapwwyW+HaT8e" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 81 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "771be66e-a8e3-4673-82e2-a358c8ed7e1c@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c4hJ1N4YNEXpZHiiX2Wm02" + }, + { + "__type__": "5c8c9BaV+VA1Z3pK+Zsi3Cb", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 83 + }, + "sortingLayer": 1, + "orderInLayer": 0, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "14Eby5JaVEErvRljS0vqwR" + }, + { + "__type__": "bdab2k4yf9MPZU2I3RKXhyC", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 85 + }, + "rankText": { + "__id__": 6 + }, + "goldText": { + "__id__": 22 + }, + "flagImage": { + "__id__": 39 + }, + "levelText": { + "__id__": 65 + }, + "levelBar": { + "__id__": 58 + }, + "descText": { + "__id__": 73 + }, + "uiOpacity": { + "__id__": 33 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c74QEc3oxLpasFU9hvxm+j" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "45HrV9Ov1H7Ke7fgPQE4LZ" + } +] \ No newline at end of file diff --git a/assets/test/prefabs/ListTestItem-sorting.prefab.meta b/assets/test/prefabs/ListTestItem-sorting.prefab.meta new file mode 100644 index 0000000..fae9a8f --- /dev/null +++ b/assets/test/prefabs/ListTestItem-sorting.prefab.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.40", + "importer": "prefab", + "imported": true, + "uuid": "6da52f52-ec0f-478a-9b37-432e61e779a0", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": { + "syncNodeName": "ListTestItem-sorting" + } +} diff --git a/assets/test/prefabs/ListTestItem.prefab b/assets/test/prefabs/ListTestItem.prefab new file mode 100644 index 0000000..95a7f25 --- /dev/null +++ b/assets/test/prefabs/ListTestItem.prefab @@ -0,0 +1,1424 @@ +[ + { + "__type__": "cc.Prefab", + "_name": "ListTestItem", + "_objFlags": 0, + "_native": "", + "data": { + "__id__": 1 + }, + "optimizationPolicy": 0, + "persistent": false, + "asyncLoadAssets": false + }, + { + "__type__": "cc.Node", + "_name": "ListTestItem", + "_objFlags": 0, + "__editorExtras__": {}, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 14 + }, + { + "__id__": 28 + }, + { + "__id__": 34 + }, + { + "__id__": 54 + } + ], + "_active": true, + "_components": [ + { + "__id__": 60 + }, + { + "__id__": 62 + }, + { + "__id__": 64 + } + ], + "_prefab": { + "__id__": 66 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": -819.9955, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Head", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + } + ], + "_active": true, + "_components": [ + { + "__id__": 9 + }, + { + "__id__": 11 + } + ], + "_prefab": { + "__id__": 13 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 95.5435, + "y": -93.898, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Rank", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + }, + { + "__id__": 6 + } + ], + "_prefab": { + "__id__": 8 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": { + "__id__": 5 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 22.25, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "042In80RtHj6DspKYJCAhv" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "__prefab": { + "__id__": 7 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 0, + "b": 0, + "a": 255 + }, + "_string": "1", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 40, + "_fontSize": 40, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c9PuueFXhGkrDvOiYdnQn3" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "adGhn19P9Gr4SmeSOuBKn2" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 10 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 160, + "height": 160 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "2bovubnu5DmJ++tm17Wvqt" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": { + "__id__": 12 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "98c87e02-1e93-4f76-881c-4668398c2538@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "43EbeEcqhIUKczwmvTraCm" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "e9vIw3BKZE8ZiqzoRw9UNN" + }, + { + "__type__": "cc.Node", + "_name": "Gold", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 15 + } + ], + "_active": true, + "_components": [ + { + "__id__": 21 + }, + { + "__id__": 23 + }, + { + "__id__": 25 + } + ], + "_prefab": { + "__id__": 27 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 226.69, + "y": -51.131, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Label", + "_objFlags": 0, + "_parent": { + "__id__": 14 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 16 + }, + { + "__id__": 18 + } + ], + "_prefab": { + "__id__": 20 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 97.614, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "__prefab": { + "__id__": 17 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 129.538, + "height": 44.988 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "f08U+VFT5HoJaUW9n3xE3a" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 15 + }, + "_enabled": true, + "__prefab": { + "__id__": 19 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 192, + "g": 255, + "b": 59, + "a": 255 + }, + "_string": "9999", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 2, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "d8Xz4yJwtBcrHUvWDhUK++" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "be0j7GDihBh589CV8VLOj5" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "__prefab": { + "__id__": 22 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 60, + "height": 61 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "36ASF66AhLG7x3KV0ArZnu" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "__prefab": { + "__id__": 24 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "6dbed0ea-8e55-490e-ac38-4880862370c8@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "42rKYPmHtDpK9VzIjLGL7x" + }, + { + "__type__": "cc.UIOpacity", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "__prefab": { + "__id__": 26 + }, + "_opacity": 255, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "cblGuE0p9PA7p/bKQcjmoD" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "926Ld9aTZMJqKYawg8FXL2" + }, + { + "__type__": "cc.Node", + "_name": "Flag", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 29 + }, + { + "__id__": 31 + } + ], + "_prefab": { + "__id__": 33 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 468.913, + "y": -53.519, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "__prefab": { + "__id__": 30 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 81, + "height": 80 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "72/yAZsWJHAIYWBK64/Zik" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 28 + }, + "_enabled": true, + "__prefab": { + "__id__": 32 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "c7f04ad9-3432-406c-af71-456be27021e1@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 1, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "70ZsAti8pMZJv3urwubdl4" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "7eVot73xFNXriNV4u/o+TS" + }, + { + "__type__": "cc.Node", + "_name": "Level", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 35 + } + ], + "_active": true, + "_components": [ + { + "__id__": 49 + }, + { + "__id__": 51 + } + ], + "_prefab": { + "__id__": 53 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 232.165, + "y": -129.224, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "ProgressBar", + "_objFlags": 0, + "_parent": { + "__id__": 34 + }, + "_children": [ + { + "__id__": 36 + } + ], + "_active": true, + "_components": [ + { + "__id__": 42 + }, + { + "__id__": 44 + }, + { + "__id__": 46 + } + ], + "_prefab": { + "__id__": 48 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 119.337, + "y": -33.399, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.Node", + "_name": "Bar", + "_objFlags": 0, + "_parent": { + "__id__": 35 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 37 + }, + { + "__id__": 39 + } + ], + "_prefab": { + "__id__": 41 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": -150, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "__prefab": { + "__id__": 38 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "41PYxqTvNPAq/Ie6VgNWPq" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 36 + }, + "_enabled": true, + "__prefab": { + "__id__": 40 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "09bd952a-9e81-45e3-a6ba-3551a53701a0@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "70yt72t4FNtYpvlclVXzDG" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d57XxT0N1BCJ6nQAM+IF65" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 35 + }, + "_enabled": true, + "__prefab": { + "__id__": 43 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 15 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "d8b/naaVdC7IXCiJEg6vl1" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 35 + }, + "_enabled": true, + "__prefab": { + "__id__": 45 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 1, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "12g80s5KNEGaH2v5J2kKq4" + }, + { + "__type__": "cc.ProgressBar", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 35 + }, + "_enabled": true, + "__prefab": { + "__id__": 47 + }, + "_barSprite": { + "__id__": 39 + }, + "_mode": 0, + "_totalLength": 300, + "_progress": 1, + "_reverse": false, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "9aQ599CDNHt4iZ2WqEs+F5" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "89J9c9tu5JqaJcthPGZBDv" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "__prefab": { + "__id__": 50 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 56.69, + "height": 40 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "89Ekxn78dEJL0WUDkCiUQ9" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "__prefab": { + "__id__": 52 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 255, + "b": 61, + "a": 255 + }, + "_string": "Lv.1", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 0, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "369jc6bVFBT4rbvACocy4K" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "d156I74oFCcZR/Pgjj2aOU" + }, + { + "__type__": "cc.Node", + "_name": "Desc", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 55 + }, + { + "__id__": 57 + } + ], + "_prefab": { + "__id__": 59 + }, + "_lpos": { + "__type__": "cc.Vec3", + "x": 278.10400000000004, + "y": -246.44449999999998, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 54 + }, + "_enabled": true, + "__prefab": { + "__id__": 56 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 462.618, + "height": 103.029 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "dbgpeK9y1Eh4FE/vL+XVh9" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 54 + }, + "_enabled": true, + "__prefab": { + "__id__": 58 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 241, + "b": 241, + "a": 255 + }, + "_string": "什么也没留下", + "_horizontalAlign": 1, + "_verticalAlign": 1, + "_actualFontSize": 30, + "_fontSize": 30, + "_fontFamily": "Arial", + "_lineHeight": 40, + "_overflow": 2, + "_enableWrapText": true, + "_font": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_isItalic": false, + "_isBold": false, + "_isUnderline": false, + "_underlineHeight": 2, + "_cacheMode": 2, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c6k9UzjXtNTo3JIQ+ICoX3" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "ccgys+RyNEiLbzg2bri8Cb" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 61 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 520.9820000000001, + "height": 320.332 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 1 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c5z7FI/ldDapwwyW+HaT8e" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 63 + }, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "771be66e-a8e3-4673-82e2-a358c8ed7e1c@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c4hJ1N4YNEXpZHiiX2Wm02" + }, + { + "__type__": "bdab2k4yf9MPZU2I3RKXhyC", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 1 + }, + "_enabled": true, + "__prefab": { + "__id__": 65 + }, + "rankText": { + "__id__": 6 + }, + "goldText": { + "__id__": 18 + }, + "flagImage": { + "__id__": 31 + }, + "levelText": { + "__id__": 51 + }, + "levelBar": { + "__id__": 46 + }, + "descText": { + "__id__": 57 + }, + "uiOpacity": { + "__id__": 25 + }, + "_id": "" + }, + { + "__type__": "cc.CompPrefabInfo", + "fileId": "c74QEc3oxLpasFU9hvxm+j" + }, + { + "__type__": "cc.PrefabInfo", + "root": { + "__id__": 1 + }, + "asset": { + "__id__": 0 + }, + "fileId": "45HrV9Ov1H7Ke7fgPQE4LZ" + } +] \ No newline at end of file diff --git a/assets/test/prefabs/ListTestItem.prefab.meta b/assets/test/prefabs/ListTestItem.prefab.meta new file mode 100644 index 0000000..bd1a72f --- /dev/null +++ b/assets/test/prefabs/ListTestItem.prefab.meta @@ -0,0 +1,13 @@ +{ + "ver": "1.1.40", + "importer": "prefab", + "imported": true, + "uuid": "3ac5cf7d-9ee1-4b5b-9be4-f903329977da", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": { + "syncNodeName": "ListTestItem" + } +} diff --git a/assets/test/scenes.meta b/assets/test/scenes.meta new file mode 100644 index 0000000..518c9af --- /dev/null +++ b/assets/test/scenes.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "ad307c56-0ab8-49f1-82fb-fa837f209c96", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/test/scenes/test-scene-sorting.scene b/assets/test/scenes/test-scene-sorting.scene new file mode 100644 index 0000000..dba731f --- /dev/null +++ b/assets/test/scenes/test-scene-sorting.scene @@ -0,0 +1,1106 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_name": "test-scene-sorting", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 7 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 29 + }, + "autoReleaseAssets": false, + "_globals": { + "__id__": 30 + }, + "_id": "b977450f-1cd5-49fa-a8db-db655012dcf5" + }, + { + "__type__": "cc.Node", + "_name": "Main Light", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": -0.06397656665577071, + "y": -0.44608233363525845, + "z": -0.8239028751062036, + "w": -0.3436591377065261 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": -117.894, + "y": -194.909, + "z": 38.562 + }, + "_id": "c0y6F5f+pAvI805TdmxIjx" + }, + { + "__type__": "cc.DirectionalLight", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 250, + "b": 240, + "a": 255 + }, + "_useColorTemperature": false, + "_colorTemperature": 6550, + "_staticSettings": { + "__id__": 4 + }, + "_illuminanceHDR": 65000, + "_illuminance": 65000, + "_illuminanceLDR": 1.6927083333333335, + "_shadowEnabled": false, + "_shadowPcf": 0, + "_shadowBias": 0.00001, + "_shadowNormalBias": 0, + "_shadowSaturation": 1, + "_shadowDistance": 50, + "_shadowInvisibleOcclusionRange": 200, + "_csmLevel": 4, + "_csmLayerLambda": 0.75, + "_csmOptimizationMode": 2, + "_shadowFixedArea": false, + "_shadowNear": 0.1, + "_shadowFar": 10, + "_shadowOrthoSize": 5, + "_id": "597uMYCbhEtJQc0ffJlcgA" + }, + { + "__type__": "cc.StaticLightSettings", + "_baked": false, + "_editorOnly": false, + "_bakeable": false, + "_castShadow": false + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -10, + "y": 10, + "z": 10 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": -0.27781593346944056, + "y": -0.36497167621709875, + "z": -0.11507512748638377, + "w": 0.8811195706053617 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": -35, + "y": -45, + "z": 0 + }, + "_id": "c9DMICJLFO5IeO07EPon7U" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "__prefab": null, + "_projection": 1, + "_priority": 0, + "_fov": 45, + "_fovAxis": 0, + "_orthoHeight": 10, + "_near": 1, + "_far": 1000, + "_color": { + "__type__": "cc.Color", + "r": 51, + "g": 51, + "b": 51, + "a": 255 + }, + "_depth": 1, + "_stencil": 0, + "_clearFlags": 14, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_aperture": 19, + "_shutter": 7, + "_iso": 0, + "_screenScale": 1, + "_visibility": 1822425087, + "_targetTexture": null, + "_cameraType": -1, + "_trackingType": 0, + "_id": "7dWQTpwS5LrIHnc1zAPUtf" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 8 + }, + { + "__id__": 10 + } + ], + "_active": true, + "_components": [ + { + "__id__": 25 + }, + { + "__id__": 26 + }, + { + "__id__": 27 + }, + { + "__id__": 28 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 960, + "y": 540, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "40pG4tRl5JuZwU2tFrCa+N" + }, + { + "__type__": "cc.Node", + "_name": "Camera", + "_objFlags": 0, + "_parent": { + "__id__": 7 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 1000 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "d57za1/VhJJIAzK7ngvMjM" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "__prefab": null, + "_projection": 0, + "_priority": 1073741824, + "_fov": 45, + "_fovAxis": 0, + "_orthoHeight": 540, + "_near": 1, + "_far": 2000, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": 1, + "_stencil": 0, + "_clearFlags": 6, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_aperture": 19, + "_shutter": 7, + "_iso": 0, + "_screenScale": 1, + "_visibility": 41943040, + "_targetTexture": null, + "_cameraType": -1, + "_trackingType": 0, + "_id": "f8p3t9sqtIp4pkCTVZi0qC" + }, + { + "__type__": "cc.Node", + "_name": "List", + "_objFlags": 0, + "_parent": { + "__id__": 7 + }, + "_children": [ + { + "__id__": 11 + } + ], + "_active": true, + "_components": [ + { + "__id__": 23 + }, + { + "__id__": 24 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 3.052000000000021, + "y": -12.198999999999998, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "73Dah4UZVFQahXGQGBANgW" + }, + { + "__type__": "cc.Node", + "_name": "ScrollView", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [ + { + "__id__": 12 + } + ], + "_active": true, + "_components": [ + { + "__id__": 21 + }, + { + "__id__": 22 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -5.771500000000032, + "y": 0.3324999999999392, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "e1OBoIzeVFH44CfOBKPLUM" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 0, + "_parent": { + "__id__": 11 + }, + "_children": [ + { + "__id__": 13 + } + ], + "_active": true, + "_components": [ + { + "__id__": 17 + }, + { + "__id__": 18 + }, + { + "__id__": 19 + }, + { + "__id__": 20 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "73A8HrAfRLBbKvzavbg7ij" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 0, + "_parent": { + "__id__": 12 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 14 + }, + { + "__id__": 15 + }, + { + "__id__": 16 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 416.036, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "acWu4olyRCc7lAV6x7QeZI" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1639.991, + "height": 320.332 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_id": "34tQPks9lIpYb1lkE1SQQV" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 40, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 220, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "35rQ/933ZE7aDNYfKpQyi6" + }, + { + "__type__": "cc.Layout", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_resizeMode": 1, + "_layoutType": 3, + "_cellSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_startAxis": 0, + "_paddingLeft": 0, + "_paddingRight": 0, + "_paddingTop": 0, + "_paddingBottom": 0, + "_spacingX": 32.7, + "_spacingY": 12.1, + "_verticalDirection": 1, + "_horizontalDirection": 0, + "_constraint": 0, + "_constraintNum": 2, + "_affectedByScale": true, + "_isAlign": false, + "_id": "ffVfT/P5RIArEX2omGD0B6" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1639.991, + "height": 842.044 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "4bDyuY9hRCh76pwvE0KQmw" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_type": 0, + "_inverted": false, + "_segments": 64, + "_alphaThreshold": 0.1, + "_id": "758+HNietHE6pfAhXWT+K8" + }, + { + "__type__": "cc.Graphics", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_lineWidth": 1, + "_strokeColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_lineJoin": 2, + "_lineCap": 0, + "_fillColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 0 + }, + "_miterLimit": 10, + "_id": "6546Sa/4VAnYRAV+T6+9aV" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 45, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 240, + "_originalHeight": 250, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "0877tRG7hH0roYoUW2g9hw" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1639.991, + "height": 842.044 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "5anMwgWQBMn6MMvdBeHiAq" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "__prefab": null, + "bounceDuration": 0.23, + "brake": 0.75, + "elastic": true, + "inertia": true, + "horizontal": false, + "vertical": true, + "cancelInnerEvents": true, + "scrollEvents": [], + "_content": { + "__id__": 13 + }, + "_horizontalScrollBar": null, + "_verticalScrollBar": null, + "_id": "60dl6noBZChJ0lJT3gM2ce" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1751.878, + "height": 941.572 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "41nQiBxStASIZY17Oorkss" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "2d0ea639-693d-4b05-9d48-40d981c89857@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "66BxXNowJNgJ1a+TyU6kmL" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1920, + "height": 1080 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "31TrXZpPxL3IQ2ZkxqWwCn" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_cameraComponent": { + "__id__": 9 + }, + "_alignCanvasWithScreen": true, + "_id": "503JIdTNdKtY16B7lkDTYY" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 45, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "54SqqW+EBI5pgQghNL9WKh" + }, + { + "__type__": "bd706CzF5NJx4WYPPedc9Y/", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "listTestItemPrefab": { + "__uuid__": "6da52f52-ec0f-478a-9b37-432e61e779a0", + "__expectedType__": "cc.Prefab" + }, + "listContent": { + "__id__": 13 + }, + "flagSpriteFrames": [ + { + "__uuid__": "c7f04ad9-3432-406c-af71-456be27021e1@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + { + "__uuid__": "ff59492e-4e8f-4043-9cbb-2caef8b31f89@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + { + "__uuid__": "e7673f09-beed-4e7a-92fd-1436b76d7e43@f9941", + "__expectedType__": "cc.SpriteFrame" + } + ], + "listItemMax": 200, + "_id": "9fuu+PfOFHPqnvdYJwsexB" + }, + { + "__type__": "cc.PrefabInfo", + "fileId": "b977450f-1cd5-49fa-a8db-db655012dcf5" + }, + { + "__type__": "cc.SceneGlobals", + "ambient": { + "__id__": 31 + }, + "shadows": { + "__id__": 32 + }, + "_skybox": { + "__id__": 33 + }, + "fog": { + "__id__": 34 + }, + "octree": { + "__id__": 35 + } + }, + { + "__type__": "cc.AmbientInfo", + "_skyColorHDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.5, + "z": 0.8, + "w": 0.520833125 + }, + "_skyColor": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.5, + "z": 0.8, + "w": 0.520833125 + }, + "_skyIllumHDR": 20000, + "_skyIllum": 20000, + "_groundAlbedoHDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.2, + "z": 0.2, + "w": 1 + }, + "_groundAlbedo": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.2, + "z": 0.2, + "w": 1 + }, + "_skyColorLDR": { + "__type__": "cc.Vec4", + "x": 0.36244, + "y": 0.486029, + "z": 0.632565, + "w": 0.5208 + }, + "_skyIllumLDR": 0.5208, + "_groundAlbedoLDR": { + "__type__": "cc.Vec4", + "x": 0.437391, + "y": 0.436011, + "z": 0.436589, + "w": 0 + } + }, + { + "__type__": "cc.ShadowsInfo", + "_enabled": false, + "_type": 0, + "_normal": { + "__type__": "cc.Vec3", + "x": 0, + "y": 1, + "z": 0 + }, + "_distance": 0, + "_shadowColor": { + "__type__": "cc.Color", + "r": 76, + "g": 76, + "b": 76, + "a": 255 + }, + "_maxReceived": 4, + "_size": { + "__type__": "cc.Vec2", + "x": 1024, + "y": 1024 + } + }, + { + "__type__": "cc.SkyboxInfo", + "_envLightingType": 0, + "_envmapHDR": { + "__uuid__": "d032ac98-05e1-4090-88bb-eb640dcb5fc1@b47c0", + "__expectedType__": "cc.TextureCube" + }, + "_envmap": { + "__uuid__": "d032ac98-05e1-4090-88bb-eb640dcb5fc1@b47c0", + "__expectedType__": "cc.TextureCube" + }, + "_envmapLDR": { + "__uuid__": "6f01cf7f-81bf-4a7e-bd5d-0afc19696480@b47c0", + "__expectedType__": "cc.TextureCube" + }, + "_diffuseMapHDR": null, + "_diffuseMapLDR": null, + "_enabled": false, + "_useHDR": true, + "_editableMaterial": null, + "_reflectionHDR": null, + "_reflectionLDR": null, + "_rotationAngle": 0 + }, + { + "__type__": "cc.FogInfo", + "_type": 0, + "_fogColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "_enabled": false, + "_fogDensity": 0.3, + "_fogStart": 0.5, + "_fogEnd": 300, + "_fogAtten": 5, + "_fogTop": 1.5, + "_fogRange": 1.2, + "_accurate": false + }, + { + "__type__": "cc.OctreeInfo", + "_enabled": false, + "_minPos": { + "__type__": "cc.Vec3", + "x": -1024, + "y": -1024, + "z": -1024 + }, + "_maxPos": { + "__type__": "cc.Vec3", + "x": 1024, + "y": 1024, + "z": 1024 + }, + "_depth": 8 + } +] \ No newline at end of file diff --git a/assets/test/scenes/test-scene-sorting.scene.meta b/assets/test/scenes/test-scene-sorting.scene.meta new file mode 100644 index 0000000..d7e2fc1 --- /dev/null +++ b/assets/test/scenes/test-scene-sorting.scene.meta @@ -0,0 +1,11 @@ +{ + "ver": "1.1.40", + "importer": "scene", + "imported": true, + "uuid": "b977450f-1cd5-49fa-a8db-db655012dcf5", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": {} +} diff --git a/assets/test/scenes/test-scene.scene b/assets/test/scenes/test-scene.scene new file mode 100644 index 0000000..d0b21be --- /dev/null +++ b/assets/test/scenes/test-scene.scene @@ -0,0 +1,1106 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_name": "test-scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + }, + { + "__id__": 5 + }, + { + "__id__": 7 + } + ], + "_active": true, + "_components": [], + "_prefab": { + "__id__": 29 + }, + "autoReleaseAssets": false, + "_globals": { + "__id__": 30 + }, + "_id": "5d5b2280-dee4-4f88-8991-78c03f884a9f" + }, + { + "__type__": "cc.Node", + "_name": "Main Light", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 3 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": -0.06397656665577071, + "y": -0.44608233363525845, + "z": -0.8239028751062036, + "w": -0.3436591377065261 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": -117.894, + "y": -194.909, + "z": 38.562 + }, + "_id": "c0y6F5f+pAvI805TdmxIjx" + }, + { + "__type__": "cc.DirectionalLight", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "__prefab": null, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 250, + "b": 240, + "a": 255 + }, + "_useColorTemperature": false, + "_colorTemperature": 6550, + "_staticSettings": { + "__id__": 4 + }, + "_illuminanceHDR": 65000, + "_illuminance": 65000, + "_illuminanceLDR": 1.6927083333333335, + "_shadowEnabled": false, + "_shadowPcf": 0, + "_shadowBias": 0.00001, + "_shadowNormalBias": 0, + "_shadowSaturation": 1, + "_shadowDistance": 50, + "_shadowInvisibleOcclusionRange": 200, + "_csmLevel": 4, + "_csmLayerLambda": 0.75, + "_csmOptimizationMode": 2, + "_shadowFixedArea": false, + "_shadowNear": 0.1, + "_shadowFar": 10, + "_shadowOrthoSize": 5, + "_id": "597uMYCbhEtJQc0ffJlcgA" + }, + { + "__type__": "cc.StaticLightSettings", + "_baked": false, + "_editorOnly": false, + "_bakeable": false, + "_castShadow": false + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -10, + "y": 10, + "z": 10 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": -0.27781593346944056, + "y": -0.36497167621709875, + "z": -0.11507512748638377, + "w": 0.8811195706053617 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": -35, + "y": -45, + "z": 0 + }, + "_id": "c9DMICJLFO5IeO07EPon7U" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "__prefab": null, + "_projection": 1, + "_priority": 0, + "_fov": 45, + "_fovAxis": 0, + "_orthoHeight": 10, + "_near": 1, + "_far": 1000, + "_color": { + "__type__": "cc.Color", + "r": 51, + "g": 51, + "b": 51, + "a": 255 + }, + "_depth": 1, + "_stencil": 0, + "_clearFlags": 14, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_aperture": 19, + "_shutter": 7, + "_iso": 0, + "_screenScale": 1, + "_visibility": 1822425087, + "_targetTexture": null, + "_cameraType": -1, + "_trackingType": 0, + "_id": "7dWQTpwS5LrIHnc1zAPUtf" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 8 + }, + { + "__id__": 10 + } + ], + "_active": true, + "_components": [ + { + "__id__": 25 + }, + { + "__id__": 26 + }, + { + "__id__": 27 + }, + { + "__id__": 28 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 960, + "y": 540, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "40pG4tRl5JuZwU2tFrCa+N" + }, + { + "__type__": "cc.Node", + "_name": "Camera", + "_objFlags": 0, + "_parent": { + "__id__": 7 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 1000 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 1073741824, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "d57za1/VhJJIAzK7ngvMjM" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "__prefab": null, + "_projection": 0, + "_priority": 1073741824, + "_fov": 45, + "_fovAxis": 0, + "_orthoHeight": 540, + "_near": 1, + "_far": 2000, + "_color": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": 1, + "_stencil": 0, + "_clearFlags": 6, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_aperture": 19, + "_shutter": 7, + "_iso": 0, + "_screenScale": 1, + "_visibility": 41943040, + "_targetTexture": null, + "_cameraType": -1, + "_trackingType": 0, + "_id": "f8p3t9sqtIp4pkCTVZi0qC" + }, + { + "__type__": "cc.Node", + "_name": "List", + "_objFlags": 0, + "_parent": { + "__id__": 7 + }, + "_children": [ + { + "__id__": 11 + } + ], + "_active": true, + "_components": [ + { + "__id__": 23 + }, + { + "__id__": 24 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 3.052000000000021, + "y": -12.198999999999998, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "73Dah4UZVFQahXGQGBANgW" + }, + { + "__type__": "cc.Node", + "_name": "ScrollView", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [ + { + "__id__": 12 + } + ], + "_active": true, + "_components": [ + { + "__id__": 21 + }, + { + "__id__": 22 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": -5.771500000000032, + "y": 0.3324999999999392, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "e1OBoIzeVFH44CfOBKPLUM" + }, + { + "__type__": "cc.Node", + "_name": "view", + "_objFlags": 0, + "_parent": { + "__id__": 11 + }, + "_children": [ + { + "__id__": 13 + } + ], + "_active": true, + "_components": [ + { + "__id__": 17 + }, + { + "__id__": 18 + }, + { + "__id__": 19 + }, + { + "__id__": 20 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "73A8HrAfRLBbKvzavbg7ij" + }, + { + "__type__": "cc.Node", + "_name": "content", + "_objFlags": 0, + "_parent": { + "__id__": 12 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 14 + }, + { + "__id__": 15 + }, + { + "__id__": 16 + } + ], + "_prefab": null, + "_lpos": { + "__type__": "cc.Vec3", + "x": 0, + "y": 416.036, + "z": 0 + }, + "_lrot": { + "__type__": "cc.Quat", + "x": 0, + "y": 0, + "z": 0, + "w": 1 + }, + "_lscale": { + "__type__": "cc.Vec3", + "x": 1, + "y": 1, + "z": 1 + }, + "_layer": 33554432, + "_euler": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_id": "acWu4olyRCc7lAV6x7QeZI" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1639.991, + "height": 320.332 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 1 + }, + "_id": "34tQPks9lIpYb1lkE1SQQV" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 40, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 220, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "35rQ/933ZE7aDNYfKpQyi6" + }, + { + "__type__": "cc.Layout", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "__prefab": null, + "_resizeMode": 1, + "_layoutType": 3, + "_cellSize": { + "__type__": "cc.Size", + "width": 40, + "height": 40 + }, + "_startAxis": 0, + "_paddingLeft": 0, + "_paddingRight": 0, + "_paddingTop": 0, + "_paddingBottom": 0, + "_spacingX": 32.7, + "_spacingY": 12.1, + "_verticalDirection": 1, + "_horizontalDirection": 0, + "_constraint": 0, + "_constraintNum": 2, + "_affectedByScale": true, + "_isAlign": false, + "_id": "ffVfT/P5RIArEX2omGD0B6" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1639.991, + "height": 842.044 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "4bDyuY9hRCh76pwvE0KQmw" + }, + { + "__type__": "cc.Mask", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_type": 0, + "_inverted": false, + "_segments": 64, + "_alphaThreshold": 0.1, + "_id": "758+HNietHE6pfAhXWT+K8" + }, + { + "__type__": "cc.Graphics", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_lineWidth": 1, + "_strokeColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_lineJoin": 2, + "_lineCap": 0, + "_fillColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 0 + }, + "_miterLimit": 10, + "_id": "6546Sa/4VAnYRAV+T6+9aV" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 12 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 45, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 240, + "_originalHeight": 250, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "0877tRG7hH0roYoUW2g9hw" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1639.991, + "height": 842.044 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "5anMwgWQBMn6MMvdBeHiAq" + }, + { + "__type__": "cc.ScrollView", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "__prefab": null, + "bounceDuration": 0.23, + "brake": 0.75, + "elastic": true, + "inertia": true, + "horizontal": false, + "vertical": true, + "cancelInnerEvents": true, + "scrollEvents": [], + "_content": { + "__id__": 13 + }, + "_horizontalScrollBar": null, + "_verticalScrollBar": null, + "_id": "60dl6noBZChJ0lJT3gM2ce" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1751.878, + "height": 941.572 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "41nQiBxStASIZY17Oorkss" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 10 + }, + "_enabled": true, + "__prefab": null, + "_customMaterial": null, + "_srcBlendFactor": 2, + "_dstBlendFactor": 4, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_spriteFrame": { + "__uuid__": "2d0ea639-693d-4b05-9d48-40d981c89857@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + "_type": 0, + "_fillType": 0, + "_sizeMode": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_useGrayscale": false, + "_atlas": null, + "_id": "66BxXNowJNgJ1a+TyU6kmL" + }, + { + "__type__": "cc.UITransform", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_contentSize": { + "__type__": "cc.Size", + "width": 1920, + "height": 1080 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_id": "31TrXZpPxL3IQ2ZkxqWwCn" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_cameraComponent": { + "__id__": 9 + }, + "_alignCanvasWithScreen": true, + "_id": "503JIdTNdKtY16B7lkDTYY" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "_alignFlags": 45, + "_target": null, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_horizontalCenter": 0, + "_verticalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_alignMode": 2, + "_lockFlags": 0, + "_id": "54SqqW+EBI5pgQghNL9WKh" + }, + { + "__type__": "bd706CzF5NJx4WYPPedc9Y/", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 7 + }, + "_enabled": true, + "__prefab": null, + "listTestItemPrefab": { + "__uuid__": "3ac5cf7d-9ee1-4b5b-9be4-f903329977da", + "__expectedType__": "cc.Prefab" + }, + "listContent": { + "__id__": 13 + }, + "flagSpriteFrames": [ + { + "__uuid__": "c7f04ad9-3432-406c-af71-456be27021e1@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + { + "__uuid__": "ff59492e-4e8f-4043-9cbb-2caef8b31f89@f9941", + "__expectedType__": "cc.SpriteFrame" + }, + { + "__uuid__": "e7673f09-beed-4e7a-92fd-1436b76d7e43@f9941", + "__expectedType__": "cc.SpriteFrame" + } + ], + "listItemMax": 200, + "_id": "9fuu+PfOFHPqnvdYJwsexB" + }, + { + "__type__": "cc.PrefabInfo", + "fileId": "b977450f-1cd5-49fa-a8db-db655012dcf5" + }, + { + "__type__": "cc.SceneGlobals", + "ambient": { + "__id__": 31 + }, + "shadows": { + "__id__": 32 + }, + "_skybox": { + "__id__": 33 + }, + "fog": { + "__id__": 34 + }, + "octree": { + "__id__": 35 + } + }, + { + "__type__": "cc.AmbientInfo", + "_skyColorHDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.5, + "z": 0.8, + "w": 0.520833125 + }, + "_skyColor": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.5, + "z": 0.8, + "w": 0.520833125 + }, + "_skyIllumHDR": 20000, + "_skyIllum": 20000, + "_groundAlbedoHDR": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.2, + "z": 0.2, + "w": 1 + }, + "_groundAlbedo": { + "__type__": "cc.Vec4", + "x": 0.2, + "y": 0.2, + "z": 0.2, + "w": 1 + }, + "_skyColorLDR": { + "__type__": "cc.Vec4", + "x": 0.36244, + "y": 0.486029, + "z": 0.632565, + "w": 0.5208 + }, + "_skyIllumLDR": 0.5208, + "_groundAlbedoLDR": { + "__type__": "cc.Vec4", + "x": 0.437391, + "y": 0.436011, + "z": 0.436589, + "w": 0 + } + }, + { + "__type__": "cc.ShadowsInfo", + "_enabled": false, + "_type": 0, + "_normal": { + "__type__": "cc.Vec3", + "x": 0, + "y": 1, + "z": 0 + }, + "_distance": 0, + "_shadowColor": { + "__type__": "cc.Color", + "r": 76, + "g": 76, + "b": 76, + "a": 255 + }, + "_maxReceived": 4, + "_size": { + "__type__": "cc.Vec2", + "x": 1024, + "y": 1024 + } + }, + { + "__type__": "cc.SkyboxInfo", + "_envLightingType": 0, + "_envmapHDR": { + "__uuid__": "d032ac98-05e1-4090-88bb-eb640dcb5fc1@b47c0", + "__expectedType__": "cc.TextureCube" + }, + "_envmap": { + "__uuid__": "d032ac98-05e1-4090-88bb-eb640dcb5fc1@b47c0", + "__expectedType__": "cc.TextureCube" + }, + "_envmapLDR": { + "__uuid__": "6f01cf7f-81bf-4a7e-bd5d-0afc19696480@b47c0", + "__expectedType__": "cc.TextureCube" + }, + "_diffuseMapHDR": null, + "_diffuseMapLDR": null, + "_enabled": false, + "_useHDR": true, + "_editableMaterial": null, + "_reflectionHDR": null, + "_reflectionLDR": null, + "_rotationAngle": 0 + }, + { + "__type__": "cc.FogInfo", + "_type": 0, + "_fogColor": { + "__type__": "cc.Color", + "r": 200, + "g": 200, + "b": 200, + "a": 255 + }, + "_enabled": false, + "_fogDensity": 0.3, + "_fogStart": 0.5, + "_fogEnd": 300, + "_fogAtten": 5, + "_fogTop": 1.5, + "_fogRange": 1.2, + "_accurate": false + }, + { + "__type__": "cc.OctreeInfo", + "_enabled": false, + "_minPos": { + "__type__": "cc.Vec3", + "x": -1024, + "y": -1024, + "z": -1024 + }, + "_maxPos": { + "__type__": "cc.Vec3", + "x": 1024, + "y": 1024, + "z": 1024 + }, + "_depth": 8 + } +] \ No newline at end of file diff --git a/assets/test/scenes/test-scene.scene.meta b/assets/test/scenes/test-scene.scene.meta new file mode 100644 index 0000000..dd0ac9c --- /dev/null +++ b/assets/test/scenes/test-scene.scene.meta @@ -0,0 +1 @@ +{"ver":"1.1.40","importer":"scene","imported":true,"uuid":"5d5b2280-dee4-4f88-8991-78c03f884a9f","files":[".json"],"subMetas":{},"userData":{}} diff --git a/assets/test/scripts.meta b/assets/test/scripts.meta new file mode 100644 index 0000000..30b835c --- /dev/null +++ b/assets/test/scripts.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "9624c210-9d6c-4e73-8ec9-25f28d2f2c7e", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/test/scripts/list-test-item.ts b/assets/test/scripts/list-test-item.ts new file mode 100644 index 0000000..a7f0664 --- /dev/null +++ b/assets/test/scripts/list-test-item.ts @@ -0,0 +1,37 @@ +import { _decorator, Component, Node, Label, ProgressBar, Sprite, SpriteFrame, UIOpacity } from 'cc'; +const { ccclass, type } = _decorator; + +@ccclass('ListTestItem') +export class ListTestItem extends Component { + + @type(Label) + rankText:Label = null; + + @type(Label) + goldText:Label = null; + + @type(Sprite) + flagImage:Sprite = null; + + @type(Label) + levelText:Label = null; + + @type(ProgressBar) + levelBar:ProgressBar = null; + + @type(Label) + descText:Label = null; + + @type(UIOpacity) + uiOpacity:UIOpacity = null; + + randomData(index:number, flagSpriteFrame:SpriteFrame){ + this.rankText.string = String(index); + this.goldText.string = String(Math.floor(1000 + Math.random()* 1000)); + this.flagImage.spriteFrame = flagSpriteFrame; + this.levelText.string = `lv.${Math.floor(Math.random()* 100)}`; + this.levelBar.progress = Math.random(); + this.descText.string = `什么也没留下 - ${index}`; + this.uiOpacity.opacity = 100 + Math.floor(Math.random() * 155); + } +} diff --git a/assets/test/scripts/list-test-item.ts.meta b/assets/test/scripts/list-test-item.ts.meta new file mode 100644 index 0000000..debc7b7 --- /dev/null +++ b/assets/test/scripts/list-test-item.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "bdab2938-c9ff-4c3d-9536-23744a5e1c82", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/test/scripts/test-scene.ts b/assets/test/scripts/test-scene.ts new file mode 100644 index 0000000..518d61a --- /dev/null +++ b/assets/test/scripts/test-scene.ts @@ -0,0 +1,28 @@ +import { _decorator, Component, Node, Prefab, SpriteFrame, instantiate } from 'cc'; +import { ListTestItem } from './list-test-item'; +const { ccclass, type, property } = _decorator; + +@ccclass('TestScene') +export class TestScene extends Component { + + @type(Prefab) + listTestItemPrefab:Prefab = null; + + @type(Node) + listContent:Node = null; + + @type([SpriteFrame]) + flagSpriteFrames:SpriteFrame[] = []; + + @property + listItemMax:number = 200; + + start() { + for(let i = 0; i < this.listItemMax; i++){ + let node = instantiate(this.listTestItemPrefab); + node.parent = this.listContent; + let item = node.getComponent(ListTestItem); + item?.randomData(i + 1, this.flagSpriteFrames[Math.floor(Math.random() * this.flagSpriteFrames.length)]) + } + } +} diff --git a/assets/test/scripts/test-scene.ts.meta b/assets/test/scripts/test-scene.ts.meta new file mode 100644 index 0000000..a7ad659 --- /dev/null +++ b/assets/test/scripts/test-scene.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "4.0.23", + "importer": "typescript", + "imported": true, + "uuid": "bd7060b3-1793-49c7-8598-3cf79d73d63f", + "files": [], + "subMetas": {}, + "userData": {} +} diff --git a/assets/test/textures.meta b/assets/test/textures.meta new file mode 100644 index 0000000..b99de53 --- /dev/null +++ b/assets/test/textures.meta @@ -0,0 +1,12 @@ +{ + "ver": "1.1.0", + "importer": "directory", + "imported": true, + "uuid": "c163a2f4-97d3-46c6-8f00-3f6f855cf3c6", + "files": [], + "subMetas": {}, + "userData": { + "compressionType": {}, + "isRemoteBundle": {} + } +} diff --git a/assets/test/textures/auto-atlas.pac b/assets/test/textures/auto-atlas.pac new file mode 100644 index 0000000..39b3c02 --- /dev/null +++ b/assets/test/textures/auto-atlas.pac @@ -0,0 +1,3 @@ +{ + "__type__": "cc.SpriteAtlas" +} diff --git a/assets/test/textures/auto-atlas.pac.meta b/assets/test/textures/auto-atlas.pac.meta new file mode 100644 index 0000000..f618815 --- /dev/null +++ b/assets/test/textures/auto-atlas.pac.meta @@ -0,0 +1,36 @@ +{ + "ver": "1.0.8", + "importer": "auto-atlas", + "imported": true, + "uuid": "a3d49996-8a02-417c-a0ca-55813d09926b", + "files": [ + ".json" + ], + "subMetas": {}, + "userData": { + "maxWidth": 1024, + "maxHeight": 1024, + "padding": 2, + "allowRotation": true, + "forceSquared": false, + "powerOfTwo": false, + "algorithm": "MaxRects", + "format": "png", + "quality": 80, + "contourBleed": true, + "paddingBleed": true, + "filterUnused": true, + "removeTextureInBundle": true, + "removeImageInBundle": true, + "removeSpriteAtlasInBundle": true, + "compressSettings": {}, + "textureSetting": { + "wrapModeS": "repeat", + "wrapModeT": "repeat", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0 + } + } +} diff --git a/assets/test/textures/box-1.png b/assets/test/textures/box-1.png new file mode 100644 index 0000000000000000000000000000000000000000..b009fca9ec64d091926168cf2092cdfe38ed048f GIT binary patch literal 1130 zcmeAS@N?(olHy`uVBq!ia0vp^nLwPv!3HE-W#pbPFt8YUx;TbZ%y~O^e|AWu$Z`A1 z?v;NSGg(r-b>A>WI+htGExl?Mwc{W2%2Mmsxznz$HTxm%a^ptMQnSQxkwn2ukr_KR zZm?VlS+?Ue?{nVCCucu7JG*jb@v~a{32Hp~&*t)fzxVl_?H*%y?2WlV8FVr`irZV|6_lLhb>{Hq*IqyijhbeoS zt+i#SdzElu_9nJFnMS;QI+{yMgey37wp6+spAy@^w5GqP+Vw8~vMJAkz3Lh2y#kWO zbm}boK9}kTWvfJ5{S`0xdLlo&>?T9qn#tSbwN74}uYMru`r=zmvk!bdd~GGO>P?O+ zJ;$|^Tx0DrTzF$Af09ZGp2M>B^rEAcFQiHX9(~w-ZGrORRY!ME%3t*_GxOVeV{xwg zHSBvf?zeptJy|EPVzEiJ)|2NexSKm&u9kdvXj*ox>1aKFwcDh(NB`cPIpN1sum5rP z7c3FKrBmv7Z_3|=e-!t=Jm)r%<)=b*gkHVp|5;y(-I*Uvo!5W&{xoHKK*Y_dEI(DMcZNj7&iQaU zD6zHskp6S-)jFbemeW<|PF1)*=j7V^(p$dpY|P2<}5n7Zn|Z4 z;S#B?AIb5~6Yn^`i@d)0QBQhm{{DZw*Y59<6HWh8bB1@1didK%H34_^&h5B9?~ z{&q*toyw1++M6FYZvA&|Mu<;&#IogS2QDuxGk)-=ajGO=OL`a^YvF;9Kdm<0x*6cx z9@_oeZq>5glPVu{mhKRLyNNM|eP5rJ=4A8u`OMvuu1L*3kb2vB?UM~z3v-S4NPhlz zcXQ@PS*?y)s3AaTyS`|?|>*Z!iu%XVu` zYutUnR95EQB>p$^n7*@re>lrP(^GZ%+RwFlYw9*8A1Yg;rYK)&pJkP`YQ~l&b$!wC zUsYdo&7I9RpV5y|y@~6LQqkK#>JOSlr#;(sG)CPx&BS}O-RCr$P+|Nr?Q4|O8@Atm(R~D2}P((ivkyd6%rY0fjA|a%O2DWMuZr# z?{?XrEoEg3>H0C;wT3%rn8Z>gtjgOOv&KBzA&U?h!b+6Oz;%R3IfFz&A0xb-ujhJtL7w z*37(f4di7&|4ivL*>M61h;-&IXE0^6_I*BlhN2Ju$BPHAP2*-2LdTvtFc~J0Y3!@PH;DSC`eY^o0dL06S-}=tF4lix$pFr}R zH8d1$C8?_c{@n+SoPmId1ld0ntt6Z~y3U$`m^Sf6z*}dv4qW|$*p-UM#H?*lKYdf1?8FD+Rm}gTe8f-38N)6kO37tc@CLzfBOB6XMzLsr-)m z`W0%hQUR8#TWOjFTHU${@H#|>0?F!Da0-q*?d>WFy6$4_RqB^^4{PtM(PIHRwFXiF zLeCAz5L}yWP(Uzg!Ejs>Jr}A@e_UylRX1Gs^+~{SqWh93vPj?zfMSRo5+F~{6WHKQ z(Qb?90{}B1zXBK|00000NkvXXu0mjf`__f8 literal 0 HcmV?d00001 diff --git a/assets/test/textures/box-2.png.meta b/assets/test/textures/box-2.png.meta new file mode 100644 index 0000000..54a947a --- /dev/null +++ b/assets/test/textures/box-2.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584@6c48a", + "displayName": "box-2", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584@f9941", + "displayName": "box-2", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 171, + "height": 27, + "rawWidth": 171, + "rawHeight": 27, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 20, + "borderRight": 21, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -85.5, + -13.5, + 0, + 85.5, + -13.5, + 0, + -85.5, + 13.5, + 0, + 85.5, + 13.5, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 27, + 171, + 27, + 0, + 0, + 171, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -85.5, + -13.5, + 0 + ], + "maxPos": [ + 85.5, + 13.5, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "dc4d58fb-0c82-4d34-ae60-d9ba3124c584@f9941" + } +} diff --git a/assets/test/textures/box-3.png b/assets/test/textures/box-3.png new file mode 100644 index 0000000000000000000000000000000000000000..8998a22c152dcb9c81dc788f8e0fd75077c556f9 GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^tASXWgBeJg{OOMaQjGyVA+A8$$t>B$F5b%}-NP+8 z#4j(zH`mEFF2pa_+buQ3KhM=Z!POx#*e@3-?V^XMp zK1kdTq&~y5f-{5L92dcg3>Eaj? zaro*5cA+K*0oIH5vnR|ke9iUjw|oHC%Ah=h&wdxK&X|~aY4PTH;;;KMlR3Dpx^2P( zmwj};+IIV5eOa(zTI|M8d)9XG32V)Heok~o$es0m>DoPC&UtUR%#gZm`hheS;jcz6 zY`*%g&0n-!yAFqTG2e0KYX6|=+VMfnwd0AJYt!Y}F5z3dMRa{^P6$W`?2}W8c+T?T zufoB&fKP}kko$iS14lKA)ym)a$M1-50+m9bV zK7amv^ytxDyLQc)GpD7crKqSVCnv|>-{0BU`R?7j$B!T1zkmPMty@>GUcG41qN!7- zPM9!3ZTsDJU~rh01o;IsT)I;KkNfw}&+oshiwUqk-Lr9?&&QV!&!1S@R#ldrZhiC6 z_9?xcHSv*wZstaEYo-dl`|H->NR zYz|Vpkd>wKdsF336TuTt{d3dUi;s&P`|GgrNkHX;$2R6tE6jFUC+shN>9GAwnS8~= z|8@S+Uymzyo|At!`>H}#&HCfNGe60HU-xKA)}I}H39T{TxoxEHuI_eU9`^Q1%F3g9 zAO5*K$+g%y@AcIe1y8LHE`3pHSKf7XozM4!-KW!YN}ikSHofbk#5R2~YxdpMI~K2! zebp?nC-XtFdeqZn`;P85+>!BMm+;$7lAqkH-+k$6H1!XQI9<2$dGd!1jsA18jz5!T zd=tXV6QOgU;V9EErq8V+Oz*Z`544o*o3veY`Sp|G zpO@K{Hx;wqUv^e~dD!DaDgSm|zv`#9A@9|6zm>~>Z{{$Y@|LY$lXY7C-?i7m48x`B z&#hAmuR8f!Gth%=*V1dp_uS*_-u38<+o9L`=F%P0;tcZZy|q_5=-J!ueZDuOEIZBQ zf>v7(ONYQ=q!Vh zAirP+?Mn?;>h*vA<$nM9x>R`zzp2fEr> zE9j)l&tza=TH@*A7*cWT?X{C-ivlEEAFlQk)zD!2Rx4i3`~H7P=$|Rvyc?fcX1{+} z_+>4(xUAsC{&llurcd7GB0u@>pKJftZ`(M-%y?~7{^5(>@7JzB_ILJuE57~Dw_RU2 zU-Q}Z$@%inXHH)!Ht+V;&vRL4=A8|8-Lr50`--xC|E6UW_AY<;_uZ}?&(}TNFaL~p z`IQg5z{PmT&x_dvL?Y6y~8xy(R z;=$I-Yw~xk2-Nc|w9md9p4xq3-hJ1dGQ5ADxx9Y&Cb~v%`qD;W^;;QVzs~F9SyP$% z^lZ_*{d(=?%-82+`%@mM@yO zU32=>MsvR{$LyZ77VezGBV&2dF4|Im&(zb`j0@kGXun(YeckV0LhjMaZz!1DeOT!I zrekm2^_QWm)7yU6$XuS6|JtN9>#CaC=kW8zch0OyH7fF2x_m{$)%JHQ1NYzf`%LfN zsu|LU{X|68EeQU(@p<~L%GIwF^QOlwiz>+2k(FsLtb1d|_Na87iW7Ao3M*?{&o5TE zylUs`CGSe#mKeO>>T>QT|FPeGz909C2u{qYX9!3yy2q=xXa_K@GkCiCxvXhtZ0+YXPGCU$MSyVyob!u{lqMEjY&$ZLX x1e|@s8fL7S-mCbmc}8iLZS}YRx1UQKXLWV&)>yrx>JQL044$rjF6*2UngF^4NVot1 literal 0 HcmV?d00001 diff --git a/assets/test/textures/box-6.png.meta b/assets/test/textures/box-6.png.meta new file mode 100644 index 0000000..64b8ea5 --- /dev/null +++ b/assets/test/textures/box-6.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "2d0ea639-693d-4b05-9d48-40d981c89857", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "2d0ea639-693d-4b05-9d48-40d981c89857@6c48a", + "displayName": "box-6", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "2d0ea639-693d-4b05-9d48-40d981c89857", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "2d0ea639-693d-4b05-9d48-40d981c89857@f9941", + "displayName": "box-6", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 70, + "height": 32, + "rawWidth": 70, + "rawHeight": 32, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -35, + -16, + 0, + 35, + -16, + 0, + -35, + 16, + 0, + 35, + 16, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 32, + 70, + 32, + 0, + 0, + 70, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -35, + -16, + 0 + ], + "maxPos": [ + 35, + 16, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "2d0ea639-693d-4b05-9d48-40d981c89857@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "2d0ea639-693d-4b05-9d48-40d981c89857@f9941" + } +} diff --git a/assets/test/textures/box-7.png b/assets/test/textures/box-7.png new file mode 100644 index 0000000000000000000000000000000000000000..c31e854e292e0e5a9259a98de6401c23b90a7aad GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^_CT!7$P6UEUOOZRq}T#{LR@vVb#--gx23D>1d1@0 z1o;Ku59<O9v PKqU;Gu6{1-oD!M<9daV= literal 0 HcmV?d00001 diff --git a/assets/test/textures/box-8.png.meta b/assets/test/textures/box-8.png.meta new file mode 100644 index 0000000..2793c52 --- /dev/null +++ b/assets/test/textures/box-8.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "4e63ad65-eb84-4c8b-9aef-13410afb94be", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "4e63ad65-eb84-4c8b-9aef-13410afb94be@6c48a", + "displayName": "box-8", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "4e63ad65-eb84-4c8b-9aef-13410afb94be", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "4e63ad65-eb84-4c8b-9aef-13410afb94be@f9941", + "displayName": "box-8", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 64, + "height": 41, + "rawWidth": 64, + "rawHeight": 41, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -32, + -20.5, + 0, + 32, + -20.5, + 0, + -32, + 20.5, + 0, + 32, + 20.5, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 41, + 64, + 41, + 0, + 0, + 64, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -32, + -20.5, + 0 + ], + "maxPos": [ + 32, + 20.5, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "4e63ad65-eb84-4c8b-9aef-13410afb94be@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "4e63ad65-eb84-4c8b-9aef-13410afb94be@f9941" + } +} diff --git a/assets/test/textures/box-9.png b/assets/test/textures/box-9.png new file mode 100644 index 0000000000000000000000000000000000000000..e1b937422b6be73e5c9ba26aa3fa85d516fef357 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^_CPGl!3H9&w>$z;jKx9jP7LeL$-D$|f<0XvLn7SY zUSZ^AP~bV@Ai(x7){)7ms`x|h=AGB=l&daRJga6&xnKNG-1vOWgoZcGmuzirp0@LF z_~!U>-`+Q=@+u0y7nIzO`?iT+XhLnkuh}(>wsnTzybt$u0F7txboFyt=akR{0M|t~ AT>t<8 literal 0 HcmV?d00001 diff --git a/assets/test/textures/box-9.png.meta b/assets/test/textures/box-9.png.meta new file mode 100644 index 0000000..e36d2b4 --- /dev/null +++ b/assets/test/textures/box-9.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "63000915-a39e-45bb-96ce-5cde4c0d51e8", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "63000915-a39e-45bb-96ce-5cde4c0d51e8@6c48a", + "displayName": "box-9", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "63000915-a39e-45bb-96ce-5cde4c0d51e8", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "63000915-a39e-45bb-96ce-5cde4c0d51e8@f9941", + "displayName": "box-9", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 63, + "height": 29, + "rawWidth": 63, + "rawHeight": 29, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -31.5, + -14.5, + 0, + 31.5, + -14.5, + 0, + -31.5, + 14.5, + 0, + 31.5, + 14.5, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 0, + 29, + 63, + 29, + 0, + 0, + 63, + 0 + ], + "nuv": [ + 0, + 0, + 1, + 0, + 0, + 1, + 1, + 1 + ], + "minPos": [ + -31.5, + -14.5, + 0 + ], + "maxPos": [ + 31.5, + 14.5, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "63000915-a39e-45bb-96ce-5cde4c0d51e8@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "63000915-a39e-45bb-96ce-5cde4c0d51e8@f9941" + } +} diff --git a/assets/test/textures/btn-black.png b/assets/test/textures/btn-black.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1d904e5db684ea83c5de3dac4f1dd020cfb3c3 GIT binary patch literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^mw-5cgBeIh+uvRcr0fHHLR^8gf`Wp)ygZx)GT>}E zIXP)*X^04%R8&+1vLWP>LzPuPBScDq{DK+S-`|_)`}ks(ldSNMt4DWjoKvW-9y>XY zfq`+Vr;B4q#jQIxx%-+8cvvnJ+D(}7Y3=*^YogK%xwxjdYMXxB&A3UjjYWQmL`;12 z=LhSnC8EFU9clS}V)rcW5NrP(%6)C!smD6(7bWa0FcVm}cx4jfs?LIm`gKm+uM1s` zHz+ta_tzX;xZ!xk9OdJWEDm*E+2{~^XyLNdiMQC;=P50!_Wx=#W8w|&hXi4U(V*Xc@`C%epV;s>cW|hjNAYJfBo_DS=l=b3@r)*HG*6J zx2Px&07*naRA@u(np=oXVHC%I%RRTqgQDCXNXa#c@~CK<U)gQn|;0^EuxC`9ZH8cD5w*y*KMR!-7Uch8vC9oJ6 z64kCm?l%E-z)9c{&}L@d)!e!S;_d=54%i7S0=k!op@mN4CvXwi13Wjgwy+LDfw;R~ zjU~V#pkJXgDAD>Yz$W0lnd$ZVqjU4DfSM9DEbg>U0o%>&U4BP@0103m1*+qY zTH@`m0qgRibO7S+gMq`qvJy9@SkpTTY%sItY=`YY++A*S8?d`rqa~!DUBG@bliMa2 z$aLTq&^sZ96lufNaYkJJic{vB zS-l0}cs(#TZm$V%e*>rzkP(XBfIbN~DDL#XDJmBb{h!pv?JXtkR}07qU{y*Cifcx# zfZPM*aw`QI1mrz1v_d08piw~dF)6oTEbRHW3W)XwdRA6QhQN0L`2gsru2P^`KpqEs zqZJ_VR6s5S`=k{hP$wXpfrAwq83J1bWD@WIki<~VMN-970g=nSt&?)50Xzg|W`FBs^)Aj7_P*QD(gWW|>)2?iS*5K-=@>wo0@*YRv46sO19b z4;%-UM&V4^{d2$?GyBp3h)&#H!u3^PV#F9D-c4&^nl zP$GD)0N$B$r+8!va2gn&QYg=W6>_!tsS;t@uAu1kIS{D+Y5CCV1F9^5t;!?mEN`SM z^cx&THXRX0{!W8Se{7alXrLJglI=iZh0**CPA)QE8-<^43JxGG&5;1 zp(PSXwq=k>)K}pxFfTZc1_lN@ZvQ)(Mutk3`~g^-UQKYR4(<&!7RU%Ys6_3Bli_Q#K(gLOUs z_3QViPhbE1`TP9&>-Xj_+o_ zR9N)B+b3S=5xvd$c#?dg`FpnfvdXBc|5Ho0cDM&haQv}U;#eHGCt~UTkW-T^T-Z4u ztNgyQa{e1uExuMe&8esPCTN#lI?5=TH2;geJl@Kx~H;RbmRF~U2Jky zy0)vruAPpyThY28J9Y1oT^rvp&$>T#@qq;kKkrub@|-1f_}6ZmHpTF7)kV#PZ~4AB zyb)cu_(5*noi~C{V=PP-{jRQKQp9yPK5l+FO-5<=n+J|Y zj|y%cnsJ%$mTph=vn)!#VDf-O#ODpUp(jh`)W}y=PkD^(SP|*1bM9joR81HwV~>51|x6Ng&Tgn zkrzE;SS14PxU@D0Oz~!YAL1j_8WqYC$$BhwPyAHFkWx3%xgol~Q#nGPP8KZ*ojYsl l{hOhzZ<096c|G28dfnigT-dtY44CK`JYD@<);T3K0RVkpoKgS) literal 0 HcmV?d00001 diff --git a/assets/test/textures/btn-white.png.meta b/assets/test/textures/btn-white.png.meta new file mode 100644 index 0000000..0673594 --- /dev/null +++ b/assets/test/textures/btn-white.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "cc97785d-f69b-43df-8c1a-2fafeae67414", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "cc97785d-f69b-43df-8c1a-2fafeae67414@6c48a", + "displayName": "btn-white", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "cc97785d-f69b-43df-8c1a-2fafeae67414", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "cc97785d-f69b-43df-8c1a-2fafeae67414@f9941", + "displayName": "btn-white", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 1, + "trimY": 1, + "width": 212, + "height": 82, + "rawWidth": 214, + "rawHeight": 84, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -106, + -41, + 0, + 106, + -41, + 0, + -106, + 41, + 0, + 106, + 41, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 1, + 83, + 213, + 83, + 1, + 1, + 213, + 1 + ], + "nuv": [ + 0.004672897196261682, + 0.011904761904761904, + 0.9953271028037384, + 0.011904761904761904, + 0.004672897196261682, + 0.9880952380952381, + 0.9953271028037384, + 0.9880952380952381 + ], + "minPos": [ + -106, + -41, + 0 + ], + "maxPos": [ + 106, + 41, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "cc97785d-f69b-43df-8c1a-2fafeae67414@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "cc97785d-f69b-43df-8c1a-2fafeae67414@f9941" + } +} diff --git a/assets/test/textures/circle-countdown.png b/assets/test/textures/circle-countdown.png new file mode 100644 index 0000000000000000000000000000000000000000..97dc181db9f2b2552b1a35e70d434ebb3f776463 GIT binary patch literal 13678 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 literal 0 HcmV?d00001 diff --git a/assets/test/textures/circle-countdown.png.meta b/assets/test/textures/circle-countdown.png.meta new file mode 100644 index 0000000..c70cc68 --- /dev/null +++ b/assets/test/textures/circle-countdown.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "279c8d45-0190-4320-a7c4-60ea39ec8896", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "279c8d45-0190-4320-a7c4-60ea39ec8896@6c48a", + "displayName": "circle-countdown", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "279c8d45-0190-4320-a7c4-60ea39ec8896", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "279c8d45-0190-4320-a7c4-60ea39ec8896@f9941", + "displayName": "circle-countdown", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 2, + "trimY": 2, + "width": 245, + "height": 245, + "rawWidth": 249, + "rawHeight": 249, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -122.5, + -122.5, + 0, + 122.5, + -122.5, + 0, + -122.5, + 122.5, + 0, + 122.5, + 122.5, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 2, + 247, + 247, + 247, + 2, + 2, + 247, + 2 + ], + "nuv": [ + 0.008032128514056224, + 0.008032128514056224, + 0.9919678714859438, + 0.008032128514056224, + 0.008032128514056224, + 0.9919678714859438, + 0.9919678714859438, + 0.9919678714859438 + ], + "minPos": [ + -122.5, + -122.5, + 0 + ], + "maxPos": [ + 122.5, + 122.5, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "279c8d45-0190-4320-a7c4-60ea39ec8896@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "279c8d45-0190-4320-a7c4-60ea39ec8896@f9941" + } +} diff --git a/assets/test/textures/flag-disconnection.png b/assets/test/textures/flag-disconnection.png new file mode 100644 index 0000000000000000000000000000000000000000..c0a58b2d2e1bccd4281822047ab6bf02b6d93b4c GIT binary patch literal 2207 zcmc&#>pK$+AD&0_AfrN>LXzX-!Bfhc7IUabdrZ@EY{#1XJBP%cu(mi==%gb9l&c^%*kC{o&c!=|JPJOtxy~bYq&ft9NWVf}? zw3K#IOFPTokC#z~3;l8e=GJE?`4eNyBi(bI72UMgZEwR0B2Xo0|AHW&tN^!6Z~pd5 z?|A=*?@cw|Dyt@_#mu6-fgDm_HkyoC+T_+v(sKKAu#MQ*+Sn#WE3L1N)L4*GnVHg> z9910WN%WiM&P=behNhXHS%dhRoP_e!sH&IG-h~HKP$TTIocg@*@(B9ZF8bGx`ORcP zEh&f`+D7a8aairuU|Z;2fatEkbxq+Ik7KPoHQs|oiyvtwgn7!tWLB7i1&GUAvvlg4 z^hke*^lp6&#z?ilE63%gzScmS-&}pA9RMH-wls&p@6#uVUS>l`=`LCALDK?jh&1j3 z@B=u#h7mP-!I@!tTS7-it4gFd{X*rDZ5O4lv$-9Q29G>vAK=JYdE4J6tN!fT*LL=8 z8NDCLcevx~V+QN2pDCKLdb<{45f-FZ1I2?J)^$s6u^0x5W7o$>5MKFSva=%8-(lXD>n$lY#2MU01f6#8ktK?&zP#S*uSq1Fp*^V# zoeRbPTaMJ_ZNID#zhHPX`86khGUiJ|eoy-tyTNvxH4756F;~1oh!X_vbc_X6;_P#8 zI!>tN83kx=9#yx#RGn{6x#Y;P3WM(apc^!ppwabPJLmd`JZM=8LqI3!-zNi4;;7ip z!3aDo!lCHzACG2J7FzEYBJDd7s@HD{w+3XlH!Js@SO6{+1N?FHRRu%krngIV8(GXlR9w^8-O7cJ6Ao z0+_ZZ5JlH%a<6peJ@>WX#br{6*ZaqRUm`lXCEwT$3=uDEZy3PH6+{PR>N^Jdw+K+v z`U$08;Yjb0#Ipdn5HFrdiM~m-U;j1tCiRDn{k$>o{XIHl)>n24ws7$k9$nL=L1oCX zdFir+4n2QBpJ~9Z-gYlF3+m4L0o3#`Me0{@DM1FVGXpQiGvv?l|LP3am(uMgOvR80 zb-ZS5abI~cmK3w>idP$rL#cTWceaqgT0cZF558w~;p1M{ySf;c{CsNLF zm)RQ4p6Y7qBe_Q_s!B~r|B029*#LsTWFK#NLM}}<1Ho?)dAD%c)fJQPTM}X?EO$ON z1eweaYclW%V%r#P5x0Xq62GWZW*cK zhm>JyTC6J`Ytl=Kn+kg@uV6(s{1_98PQ=TA1;JP1Syw<(-A+36)D687En;ef@^1&C zY!jon7XkSlQ?w8U|)0gcIJJ zFYszZX2*nTN4s4b*6%qZRQ{qZ9mF{alzDBupdzMoM0o1KiyN+m_zVU}Z}qmBPB_P1 z%v;J8M_s2~KX2Qi&+@8G+h z3)W}9msY7ER7mf}pnL}IK!-#KlrWTpIP}lGC8|@ncdsdbySa&w&CBb#up>P1hej6a zw$gQ(^CO%*ZkUtzLSiR}%Z-F9Hbtq3shp%D+{ST|K|3_0h7w%U=YzdtJW1 zFDL1MO{35!o}hyT5_$`W0J0{{0;{C1K|GbXrJxXkv?AJM zIY?jTU^C38s;*({stv9a)us5nyhBJbj4GL=P?b72)Mt>*%?EmS3W`+sD%TAjra_*? z)PAr%`zx0lO<<+T=f<3;J3?bH>If1Q z)^p6kYeK+;Viv=xaQ~&XqlbG4Fc#HP{`&Ow?lX7nYJ2+@sUz^IvQq!1sb`C$k>n|9 Xv9XGnb@2A#904pXpyuVK$f$n+Mw8Hg literal 0 HcmV?d00001 diff --git a/assets/test/textures/flag-disconnection.png.meta b/assets/test/textures/flag-disconnection.png.meta new file mode 100644 index 0000000..6e3c832 --- /dev/null +++ b/assets/test/textures/flag-disconnection.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "c7f04ad9-3432-406c-af71-456be27021e1", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "c7f04ad9-3432-406c-af71-456be27021e1@6c48a", + "displayName": "flag-disconnection", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "c7f04ad9-3432-406c-af71-456be27021e1", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "c7f04ad9-3432-406c-af71-456be27021e1@f9941", + "displayName": "flag-disconnection", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0.5, + "offsetY": 0, + "trimX": 2, + "trimY": 2, + "width": 81, + "height": 80, + "rawWidth": 84, + "rawHeight": 84, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -40.5, + -40, + 0, + 40.5, + -40, + 0, + -40.5, + 40, + 0, + 40.5, + 40, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 2, + 82, + 83, + 82, + 2, + 2, + 83, + 2 + ], + "nuv": [ + 0.023809523809523808, + 0.023809523809523808, + 0.9880952380952381, + 0.023809523809523808, + 0.023809523809523808, + 0.9761904761904762, + 0.9880952380952381, + 0.9761904761904762 + ], + "minPos": [ + -40.5, + -40, + 0 + ], + "maxPos": [ + 40.5, + 40, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "c7f04ad9-3432-406c-af71-456be27021e1@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "c7f04ad9-3432-406c-af71-456be27021e1@f9941" + } +} diff --git a/assets/test/textures/flag-eliminated.png b/assets/test/textures/flag-eliminated.png new file mode 100644 index 0000000000000000000000000000000000000000..9c75512cadd918298e5118ab918f724ab105d4d0 GIT binary patch literal 2453 zcmd6o`9Bkk1ILHu*5P^{6hcK(u7sXsm@DRNlIL;M>nU`&My?*^SkuJVa$j4Mqliq% z#@Z}w%r$4&o)~h?9L>@4^!+cspV#a2dA~kCe}4F+yF(o0q*bK>0Dzp6qn+n3djHRo zV!u+qiL(g+h}65gc!Ph{ga2=hwzhWPyZ2Kl6z=c;*xBiM@L+#?d!)I!CoGH}8OiSM zo~F^pNhDT7gK%$e`0d;Nq@>yX)&KZ1xC&urCm7EG_M+73r z_Tu>XWJkvo7CVYUF%uIR2?>31adSgMOWoZIWHPs;)P&wkwd3{qf)=t*MBK3?a$5a&(0o#!&exLX*_}jvx_iKh!;R8zW2M_M$#?T%J)U~BprH9 znv@@ZT%HcqhEACr3h10GjvyNUb3+g)P#cl3;<^UHBHb^rdXRpI545_~b0URoV3P1SXL zGmM-oEe+%G$#2UA{pREv^tV4o{-&t)k^VG)BSZLj4i)gFm=xhhI6~uDLP^86`_Q83 zq^NkqAXMxs7rCO#BfZ9mA1o1EFM!6{FMUd8WmXoROC|Y1vm=kRnL$)&#L;gf7;;>{ ziS(CoZ`~E~ln>{f@tjo=(dAc6S*$PWg6@oMns?Vc-g>`&Yptx;SI;qSyY*U`l*zE@ zYRdPGtw`ubq$<&5?|$I&F`PAe)ZtJk_{oW}yE5;@j#6{YYNDY0Vjt+^(cjet3ckpj z-cF3z4!6mz)<8DM&Y-n2#`Io#G1@q)FtMQo?SHAuFn2Kf>BBZBX6QwE8Sk1@vOcAt z-bwEyHVtcdVde17TmwyBsYt0ft7l^C+UkU>3YaKn9CB4*$RXO8x#yshYlW;JWF1vy zmcZaPCl`ne7v=cdo|9I$o-A-Z`#Y$|r1v`gB$N%QKRnj`OdkTsEtg`B9*zj^dwi|| z^qWPa8yz1~DmkegnG*&?a;5Emn4S@F;G9cM<279?28%8iq;6g8akho2c}y#rEzJS0 zLAHXiU+|{n+YMmk`Vgny5rUtef`cl7H_E_A9B$td(?L{S#1K+qtIHlzBAMc_B}4H( z#Ptgll!#vw=5*z)f;<lDY!d-KMep~R9^pu8iy>^vH5e$tje&MMWx;eePwnGXs)@*>bnuBz#)Ch; zNfdm4?cZ|cez&zWv)p&u%HwU0VmCT;y}5}se4^!Y2AIYBK#l#KLwBdM2}h#H!)q8lAc5d>gZ`6C6qlm*ZefB8{x`KP!Zkc{0<<+F8cvFSUh>>ONy zKTcLhiAc&c$Fi-TE7%`1&B{j2kV#rYRxUTo?dc#-f72sF!lUQic_wuRXQs&VPS>4A zSkH3IU+D458sVB$4_;gQ({A9btYk+Jv?`!tzRII&Mm>zs0M0$=1e9`hIag2qa2N(MXF zPtJ}{2NC8S{U*B0`t;JTq2Q?JL>NPOUd{#CAh%h*Q>3^eIJ>qJ|Q;RS)iK5T$1Ata2sN z=mrGsoP_hZr=ug>IUf=Z$-}9?5(5OTcL|vPgcGvd&EyOG)Q6e6DM1!OB`ad9l!mKL z4~6bi27@%%`>DU2zwh;a!isYT!+|*V>K8Tc7fd>eviZqrXwz){wip^GHpUJz zd-x|z@dI9^7qhKHH%)F(|O(lEBz6sej=%r^So-q~hzuYDnjj9Zb(LIy! z!>43bK1agL!4im>`w|FV)bG*Buvg5WWtdycD@f?LTaB$ReLRoqo{RIgw7Qc(oVA4( z_1#IEoz+i)Egon+13lueiccq9%^9O)CuRm$o&9H{GD#g1Ob^=*%goJuZewvl3O8EA z{Cv6D?zZb=hW>;0RDRF{&|TZUk`5Y4;QF$*pD=l;saB(Cd5yiBwXWt&e6nUHj5z!2 Os{u}6h+UmcVDf)O^jf$8 literal 0 HcmV?d00001 diff --git a/assets/test/textures/flag-eliminated.png.meta b/assets/test/textures/flag-eliminated.png.meta new file mode 100644 index 0000000..03399f4 --- /dev/null +++ b/assets/test/textures/flag-eliminated.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "ff59492e-4e8f-4043-9cbb-2caef8b31f89", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "ff59492e-4e8f-4043-9cbb-2caef8b31f89@6c48a", + "displayName": "flag-eliminated", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "ff59492e-4e8f-4043-9cbb-2caef8b31f89", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "ff59492e-4e8f-4043-9cbb-2caef8b31f89@f9941", + "displayName": "flag-eliminated", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0.5, + "offsetY": 0, + "trimX": 2, + "trimY": 2, + "width": 81, + "height": 80, + "rawWidth": 84, + "rawHeight": 84, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -40.5, + -40, + 0, + 40.5, + -40, + 0, + -40.5, + 40, + 0, + 40.5, + 40, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 2, + 82, + 83, + 82, + 2, + 2, + 83, + 2 + ], + "nuv": [ + 0.023809523809523808, + 0.023809523809523808, + 0.9880952380952381, + 0.023809523809523808, + 0.023809523809523808, + 0.9761904761904762, + 0.9880952380952381, + 0.9761904761904762 + ], + "minPos": [ + -40.5, + -40, + 0 + ], + "maxPos": [ + 40.5, + 40, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "ff59492e-4e8f-4043-9cbb-2caef8b31f89@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "ff59492e-4e8f-4043-9cbb-2caef8b31f89@f9941" + } +} diff --git a/assets/test/textures/flag-escape.png b/assets/test/textures/flag-escape.png new file mode 100644 index 0000000000000000000000000000000000000000..c61d6e5c879cfc12743fd67015d89e0ef930b3ac GIT binary patch literal 2375 zcmd5;_dDAQ9}TV07`?5i(H5ms^j>Y%s`lD@B!X+NS6f=6Tvbv^d8z?NNy97bg2C}$5?+XY^>AK^P@Y*TweI*#G!{;hog zLj!ugu6kB15x)U(6dH{`+4-lyXris0yEa1Z+;9flEoHzBp>8oEp%?Cf=_@S4+0t_qx<1^U zc`~$o*jbsh{;OBT01GoD=m@+r6ehUqCT;@RpPwbC$Dy_+DAMaWkDU=3?X88f7tft# zPc2M$#V#{Rt8lmh?o=*2+TIr(X_N7O=T=N4{L~ZdwYv$7Dh;G^N2wGt}cNY z46d457X*U=iQs!*5pH68`=sAm*y#CFANua%ag~RyxlGQH`isGa=4<-LFsm5?tRcl$ zK}^nvs9>74BnhYht_JRK>2LoE~`Q>_-P z_&00;w?TC2|FM&Dscc`mUzj``0#?g#PHX(?Bc9MVr<;X>vfnNJ?5i_F69rJjr?@KhsElRQIU^xdsb1p(R%$|gQ{OG{u=#1JqoR^=PPQlAwNM#PuDM3y zMt4aGmzdk%+Vlvv^Qc>VQHez&KUpO~1Ec9W_Yz)z7xqjSmD9Z^ReI?JHEC4k)|m*_ z#d~k>(xd*tX$)#Ty|s~tx=ghPJ^glEzG19z@>qg+tt+j8yZqC@_W<7&_(Skv_+}tT zx4ZsYgu-GttHQn^Xp0S75+Ib$Rjs8-yW%e|e2m0MgTOY<;li!cH z17mqr^VOWYY&<6oQon#GI#m=NqU#q;v}C?Sibc^nWD$9D9i8B)0r`lN(YQ( z%Yv5om>W5Zuz1?2E7x^$s`{_}dB@zd?XINOsVlpyHG;#%P1!{0+y5Fp5BhcV&__Ez zBSXB%K$%*{2bWDZ+{6jK5C1g8iu)2vu=o#duHrNNXOosj+(4^$;dymKuu4IiA9pkj ztp1W>x~(99aThdrm-wVZc>pJ8D2*8` zA;aAt8e|~gBRKDqV`p`lr1G%O z2TtJ->bifZ=w(|>F-|KEGX}yx_h3TxVKQY`G}TTxOc^L#@9;-TZOiP;MA0nB=J409 zWt|riDQ89IBZNJL%(Q)$r#>u7M|S|XC5~c|l&X~F*YirRF7-5;tADvVS*(&vFbn`U zapSu@I^j(z+QUKy+4`OEg>iH703mD89zX0l0%0Ofi>|@8UToQRb!6u{a%7u8*%pSh z7@QuM0=7=fp)=P%qp&QllWs(a=p~G&dSU zQHvG4aqdZMu0RWLQn#hpQY;%`sYQv#Wl>a~>&PUZIrBuwXZ9nnW!y}pNaU6G(}DP?-=5i)SDU4niSRmjru)q+Mh{Vvt?4%s?UrrDOSG=GS2WBwg~Td>V3hGnkXpwd z88#gl`0@$5AA_w)Im_3Em}4E$ZZCl#=dT*w2+ z#3t+DWr<#=AgjOTUo|)as1{IcSnLCK#Vt{%?I(oq^3JCxv`?g_^o%&<#o+u^ck&g6 znoI>AV)(p_jl5nQ8sx9#s2t96unaSFQ{@O-+7!AsGZdR25ZE&;l=j``+n#+B+0C`djz>?DUgq_3h%z;5#u z1A(+i_@% literal 0 HcmV?d00001 diff --git a/assets/test/textures/flag-escape.png.meta b/assets/test/textures/flag-escape.png.meta new file mode 100644 index 0000000..9d9973f --- /dev/null +++ b/assets/test/textures/flag-escape.png.meta @@ -0,0 +1,134 @@ +{ + "ver": "1.0.25", + "importer": "image", + "imported": true, + "uuid": "e7673f09-beed-4e7a-92fd-1436b76d7e43", + "files": [ + ".json", + ".png" + ], + "subMetas": { + "6c48a": { + "importer": "texture", + "uuid": "e7673f09-beed-4e7a-92fd-1436b76d7e43@6c48a", + "displayName": "flag-escape", + "id": "6c48a", + "name": "texture", + "userData": { + "wrapModeS": "clamp-to-edge", + "wrapModeT": "clamp-to-edge", + "minfilter": "linear", + "magfilter": "linear", + "mipfilter": "none", + "anisotropy": 0, + "isUuid": true, + "imageUuidOrDatabaseUri": "e7673f09-beed-4e7a-92fd-1436b76d7e43", + "visible": false + }, + "ver": "1.0.22", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + }, + "f9941": { + "importer": "sprite-frame", + "uuid": "e7673f09-beed-4e7a-92fd-1436b76d7e43@f9941", + "displayName": "flag-escape", + "id": "f9941", + "name": "spriteFrame", + "userData": { + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0.5, + "offsetY": 0, + "trimX": 2, + "trimY": 2, + "width": 81, + "height": 80, + "rawWidth": 84, + "rawHeight": 84, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "packable": true, + "pixelsToUnit": 100, + "pivotX": 0.5, + "pivotY": 0.5, + "meshType": 0, + "vertices": { + "rawPosition": [ + -40.5, + -40, + 0, + 40.5, + -40, + 0, + -40.5, + 40, + 0, + 40.5, + 40, + 0 + ], + "indexes": [ + 0, + 1, + 2, + 2, + 1, + 3 + ], + "uv": [ + 2, + 82, + 83, + 82, + 2, + 2, + 83, + 2 + ], + "nuv": [ + 0.023809523809523808, + 0.023809523809523808, + 0.9880952380952381, + 0.023809523809523808, + 0.023809523809523808, + 0.9761904761904762, + 0.9880952380952381, + 0.9761904761904762 + ], + "minPos": [ + -40.5, + -40, + 0 + ], + "maxPos": [ + 40.5, + 40, + 0 + ] + }, + "isUuid": true, + "imageUuidOrDatabaseUri": "e7673f09-beed-4e7a-92fd-1436b76d7e43@6c48a", + "atlasUuid": "" + }, + "ver": "1.0.11", + "imported": true, + "files": [ + ".json" + ], + "subMetas": {} + } + }, + "userData": { + "type": "sprite-frame", + "fixAlphaTransparencyArtifacts": true, + "hasAlpha": true, + "redirect": "e7673f09-beed-4e7a-92fd-1436b76d7e43@f9941" + } +} diff --git a/assets/test/textures/gold.png b/assets/test/textures/gold.png new file mode 100644 index 0000000000000000000000000000000000000000..a4a5235406a5f598b0d0e90bd52c29acd2cac27c GIT binary patch literal 3403 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