diff --git a/assets/Script/DataBoard.ts b/assets/Script/DataBoard.ts index dd81c62..5260181 100644 --- a/assets/Script/DataBoard.ts +++ b/assets/Script/DataBoard.ts @@ -159,7 +159,7 @@ export default class DataBoard extends cc.Component { this.boardNode.setParent(this.node); this.boardNode.x = this.boardNode.y = 0; this.boardNode.zIndex = cc.macro.MAX_ZINDEX; - // this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy; + this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy; this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor; this.outlineBoxNode = new cc.Node('OutlineBox'); diff --git a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js index 53c23c8..fbc5e38 100644 --- a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js +++ b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js @@ -219,7 +219,7 @@ var DataBoard = /** @class */ (function (_super) { this.boardNode.setParent(this.node); this.boardNode.x = this.boardNode.y = 0; this.boardNode.zIndex = cc.macro.MAX_ZINDEX; - // this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy; + this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy; this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor; this.outlineBoxNode = new cc.Node('OutlineBox'); this.outlineBoxNode.setParent(this.boardNode); diff --git a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map index 50eda10..c014019 100644 --- a/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map +++ b/library/imports/1c/1c1526d4-850a-49e8-9d63-1a14155187fc.js.map @@ -1 +1 @@ -{"version":3,"sources":["assets\\Script\\DataBoard.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/*******************************************************************************\r\n * 创建: 2022年11月23日\r\n * 作者: 水煮肉片饭(27185709@qq.com)\r\n * 描述: 数据看板\r\n * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性)\r\n * 可以图形化展示以下四种数据:\r\n * 轮廓盒子: 随节点旋转,代表节点的实时矩形\r\n * 碰撞盒子: 不随节点旋转,一般代表碰撞范围\r\n * 自定义参数: 节点自身属性,以及节点任意脚本中的属性\r\n * 锚点: 锚点位置会显示一个小红点\r\n * 自定义参数(配置想监控的数据):\r\n * wp: 世界坐标\r\n * radian: 节点弧度(单位:π)\r\n * matrix: 变换矩阵\r\n * 自身属性: x,y,parent,children等\r\n * 脚本属性: 脚本实例对象的属性\r\n * ↓↓参数可以用3种分隔符隔开↓↓\r\n * 英文逗号、英文冒号、空格\r\n * ————————————————————————举个栗子————————————————————————\r\n * 脚本: Hero\r\n * 参数: wp,scale,angle,#angle,#hp\r\n * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\r\n * ————————————————————————温馨提示————————————————————————\r\n * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\\n\r\n*******************************************************************************/\r\nwindow['DATABOARD'] = true;\r\nconst ANCHOR_SIZE = 20; //锚点的大小\r\nconst LINEHEIGHT = 1.2; //行高是字体大小的多少倍\r\nconst { ccclass, property, executeInEditMode, menu } = cc._decorator;\r\n@ccclass\r\n@executeInEditMode\r\n@menu('Comp/DataBoard')\r\nexport default class DataBoard extends cc.Component {\r\n @property\r\n private _isOutlineBoxActive: boolean = false;\r\n @property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' })\r\n private get isOutlineBoxActive() { return this._isOutlineBoxActive };\r\n private set isOutlineBoxActive(value: boolean) {\r\n this._isOutlineBoxActive = value;\r\n this.outlineBoxNode.active = value;\r\n }\r\n @property\r\n private _outlineBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxColor() { return this._outlineBoxColor };\r\n private set outlineBoxColor(value: cc.Color) {\r\n this._outlineBoxColor = value;\r\n this.outlineBoxNode.color = value;\r\n }\r\n @property\r\n private _outlineBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxOpacity() { return this._outlineBoxOpacity };\r\n private set outlineBoxOpacity(value: number) {\r\n this._outlineBoxOpacity = value;\r\n this.outlineBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCollideBoxActive: boolean = true;\r\n @property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' })\r\n private get isCollideBoxActive() { return this._isCollideBoxActive };\r\n private set isCollideBoxActive(value: boolean) {\r\n this._isCollideBoxActive = value;\r\n this.collideBoxNode.active = value;\r\n }\r\n @property\r\n private _collideBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxColor() { return this._collideBoxColor };\r\n private set collideBoxColor(value: cc.Color) {\r\n this._collideBoxColor = value;\r\n this.collideBoxNode.color = value;\r\n }\r\n @property\r\n private _collideBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxOpacity() { return this._collideBoxOpacity };\r\n private set collideBoxOpacity(value: number) {\r\n this._collideBoxOpacity = value;\r\n this.collideBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCustomLabelActive: boolean = true;\r\n @property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' })\r\n private get isCustomLabelActive() { return this._isCustomLabelActive };\r\n private set isCustomLabelActive(value: boolean) {\r\n this._isCustomLabelActive = value;\r\n this.customLabelNode.active = value;\r\n }\r\n @property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible() { return this.isCustomLabelActive; } })\r\n private customComponentName: string = '';\r\n @property\r\n private _customLabelString: string = 'x,y';\r\n @property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && \"—————支持的参数————\\nwp:世界坐标\\nradian:节点弧度(单位:π)\\nmatrix:变换矩阵\\n自身属性:x,y,parent,children等\\n脚本属性:脚本实例对象的属性\\n↓↓参数可以用3种分隔符隔开↓↓\\n英文逗号、英文冒号、空格\\n————举个栗子————\\n脚本:Hero\\n参数:wp,scale,angle,#angle,#hp\\n显示结果:\\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\\n————温馨提示————\\n初始化的时候,设置全局变量\\nwindow['DATABOARD'] = false\\n可屏蔽本项目所有DataBoard,不会产生任何额外开销\", visible() { return this.isCustomLabelActive } })\r\n private get customLabelString() { return this._customLabelString };\r\n private set customLabelString(value: string) {\r\n this._customLabelString = value;\r\n this.customLabelStringSplit = value\r\n .replace(/,|,/g, '_~_').replace(/:|:/g, '_!_').replace(/ |\\t/g, '_@_')\r\n .replace(/_*\\n_*/g, '_\\n_').split('_');\r\n }\r\n @property\r\n private _customLabelOffset: cc.Vec2 = cc.v2(0, 100);\r\n @property({ displayName: CC_DEV && '······偏移', visible() { return this.isCustomLabelActive } })\r\n private get customLabelOffset() { return this._customLabelOffset };\r\n private set customLabelOffset(value: cc.Vec2) {\r\n this._customLabelOffset = value;\r\n this.customLabelNode.x = value.x;\r\n this.customLabelNode.y = value.y;\r\n }\r\n @property\r\n private _customLabelColor: cc.Color = new cc.Color(255, 255, 0);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCustomLabelActive } })\r\n private get customLabelColor() { return this._customLabelColor };\r\n private set customLabelColor(value: cc.Color) {\r\n this._customLabelColor = value;\r\n this.customLabelNode.color = value;\r\n }\r\n @property\r\n private _customLabelSize: number = 60;\r\n @property({ displayName: CC_DEV && '······大小', visible() { return this.isCustomLabelActive } })\r\n private get customLabelSize() { return this._customLabelSize };\r\n private set customLabelSize(value: number) {\r\n this._customLabelSize = value;\r\n this.customLabel.fontSize = value;\r\n this.customLabel.lineHeight = value * LINEHEIGHT;\r\n this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1;\r\n }\r\n @property\r\n private _customLabelDigit: number = 0;\r\n @property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible() { return this.isCustomLabelActive } })\r\n private get customLabelDigit() { return this._customLabelDigit };\r\n private set customLabelDigit(value: number) {\r\n this._customLabelDigit = value;\r\n }\r\n private boardNode: cc.Node = null;\r\n private outlineBoxNode: cc.Node = null;\r\n private collideBoxNode: cc.Node = null;\r\n private anchorPointNode: cc.Node = null;\r\n private customLabelNode: cc.Node = null;\r\n private customLabel: cc.Label = null;\r\n private customLabelStringSplit: string[] = null;\r\n private monitorComp: cc.Component = null;\r\n\r\n protected start() {\r\n this.boardNode = this.node.getChildByName('DataBoard');\r\n if (!CC_EDITOR && !window['DATABOARD']) {\r\n this.destroy();\r\n return;\r\n }\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n let texture = new cc.Texture2D();\r\n texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1);\r\n\r\n this.boardNode = new cc.Node('DataBoard');\r\n this.boardNode.setParent(this.node);\r\n this.boardNode.x = this.boardNode.y = 0;\r\n this.boardNode.zIndex = cc.macro.MAX_ZINDEX;\r\n // this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor;\r\n\r\n this.outlineBoxNode = new cc.Node('OutlineBox');\r\n this.outlineBoxNode.setParent(this.boardNode);\r\n this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.outlineBoxNode.active = this.isOutlineBoxActive;\r\n this.outlineBoxNode.color = this.outlineBoxColor;\r\n this.outlineBoxNode.opacity = this.outlineBoxOpacity;\r\n\r\n this.collideBoxNode = new cc.Node('CollideBox');\r\n this.collideBoxNode.setParent(this.boardNode);\r\n this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.collideBoxNode.active = this.isCollideBoxActive;\r\n this.collideBoxNode.color = this.collideBoxColor;\r\n this.collideBoxNode.opacity = this.collideBoxOpacity;\r\n\r\n this.anchorPointNode = new cc.Node('AnchorPoint');\r\n this.anchorPointNode.setParent(this.boardNode);\r\n this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.anchorPointNode.color = cc.color(255, 0, 0);\r\n this.anchorPointNode.width = ANCHOR_SIZE;\r\n this.anchorPointNode.height = ANCHOR_SIZE;\r\n\r\n this.customLabelNode = new cc.Node('CustomLabel');\r\n this.customLabelNode.setParent(this.boardNode);\r\n this.customLabel = this.customLabelNode.addComponent(cc.Label);\r\n this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0);\r\n this.customLabelNode.active = this.isCustomLabelActive;\r\n this.customLabelString = this._customLabelString;\r\n this.customLabelNode.x = this.customLabelOffset.x;\r\n this.customLabelNode.y = this.customLabelOffset.y;\r\n this.customLabelNode.color = this.customLabelColor;\r\n this.customLabelSize = this._customLabelSize;\r\n\r\n this.updateAngle();\r\n this.updateScale();\r\n this.updateAnchor();\r\n this.updateSize();\r\n this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this);\r\n this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this);\r\n this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this);\r\n this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this);\r\n }\r\n\r\n private updateAngle() {\r\n this.collideBoxNode.angle = -this.node.angle;\r\n this.customLabelNode.angle = -this.node.angle;\r\n }\r\n\r\n private updateScale() {\r\n this.boardNode.scaleX = 1 / this.node.scaleX;\r\n this.boardNode.scaleY = 1 / this.node.scaleY;\r\n this.outlineBoxNode.scaleX = this.node.scaleX;\r\n this.outlineBoxNode.scaleY = this.node.scaleY;\r\n this.collideBoxNode.scaleX = this.node.scaleX;\r\n this.collideBoxNode.scaleY = this.node.scaleY;\r\n }\r\n\r\n private updateAnchor() {\r\n this.outlineBoxNode.anchorX = this.node.anchorX;\r\n this.outlineBoxNode.anchorY = this.node.anchorY;\r\n this.collideBoxNode.anchorX = this.node.anchorX;\r\n this.collideBoxNode.anchorY = this.node.anchorY;\r\n }\r\n\r\n private updateSize() {\r\n this.outlineBoxNode.width = this.node.width;\r\n this.outlineBoxNode.height = this.node.height;\r\n this.collideBoxNode.width = this.node.width;\r\n this.collideBoxNode.height = this.node.height;\r\n }\r\n\r\n protected update() {\r\n if (!this.isCustomLabelActive) return;\r\n if (!this.customLabelStringSplit) return;\r\n let radian = -this.node.angle * Math.PI / 180;\r\n let cos = Math.cos(radian);\r\n let sin = Math.sin(radian);\r\n this.customLabelNode.x = this.customLabelOffset.x * cos - this.customLabelOffset.y * sin;\r\n this.customLabelNode.y = this.customLabelOffset.x * sin + this.customLabelOffset.y * cos;\r\n let str = '';\r\n let strs = this.customLabelStringSplit;\r\n if (!this.monitorComp && this.customComponentName) {\r\n this.monitorComp = this.node.getComponent(this.customComponentName);\r\n }\r\n for (let i = 0, len = strs.length; i < len; ++i) {\r\n let tmp = null;\r\n switch (strs[i]) {\r\n case 'wp':\r\n let matrix = this.node['_worldMatrix'].m;\r\n tmp = `${matrix[12].toFixed(this.customLabelDigit)},\\t${matrix[13].toFixed(this.customLabelDigit)}`;\r\n break;\r\n case 'angle':\r\n tmp = this.node.angle.toFixed(this.customLabelDigit) + '°';\r\n break;\r\n case 'radian':\r\n tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π';\r\n break;\r\n case 'matrix':\r\n matrix = this.node['_worldMatrix'].m;\r\n tmp = '';\r\n for (let i = 0; i < 4; ++i) {\r\n for (let j = 0; j < 4; ++j) {\r\n let m = matrix[j * 4 + i];\r\n tmp += (m < 0 ? '\\t\\t' : '\\t\\t\\t') + m.toFixed(this.customLabelDigit);\r\n }\r\n i !== 3 && (tmp += '\\n');\r\n }\r\n break;\r\n case 'children':\r\n tmp = '';\r\n for (let i = 0, len = this.node.childrenCount; i < len; ++i) {\r\n tmp += `\\t\\t\\t${i}:${this.node.children[i].name}`;\r\n i !== len - 1 && (tmp += '\\n');\r\n }\r\n break;\r\n case '~': tmp = ',\\t'; break;\r\n case '!': tmp = ':\\t'; break;\r\n case '@': tmp = '\\t\\t'; break;\r\n default:\r\n if (this.node[strs[i]] !== undefined) {\r\n tmp = this.node[strs[i]];\r\n } else if (strs[i].startsWith('#') && this.monitorComp !== null) {\r\n tmp = this.parseString(strs[i].substring(1));\r\n } else {\r\n tmp = strs[i];\r\n }\r\n if (typeof tmp === 'number') {\r\n tmp = tmp.toFixed(this.customLabelDigit);\r\n } else if (tmp.name) {\r\n tmp = tmp.name;\r\n }\r\n break;\r\n }\r\n str += tmp;\r\n }\r\n this.customLabel.string = str;\r\n }\r\n\r\n private parseString(str: string) {\r\n let strs = str.split('.');\r\n let ret = this.monitorComp[strs[0]];\r\n ret === undefined && (ret = `#${strs[0]}`);\r\n for (let i = 1, len = strs.length; i < len; ++i) {\r\n if (ret[strs[i]] === undefined) {\r\n return `${ret.name ? ret.name : ret}.${strs[i]}`;\r\n }\r\n ret = ret[strs[i]];\r\n }\r\n return ret;\r\n }\r\n\r\n protected onDestroy() {\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n this.node.targetOff(this);\r\n }\r\n}"]} \ No newline at end of file +{"version":3,"sources":["assets\\Script\\DataBoard.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/*******************************************************************************\r\n * 创建: 2022年11月23日\r\n * 作者: 水煮肉片饭(27185709@qq.com)\r\n * 描述: 数据看板\r\n * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性)\r\n * 可以图形化展示以下四种数据:\r\n * 轮廓盒子: 随节点旋转,代表节点的实时矩形\r\n * 碰撞盒子: 不随节点旋转,一般代表碰撞范围\r\n * 自定义参数: 节点自身属性,以及节点任意脚本中的属性\r\n * 锚点: 锚点位置会显示一个小红点\r\n * 自定义参数(配置想监控的数据):\r\n * wp: 世界坐标\r\n * radian: 节点弧度(单位:π)\r\n * matrix: 变换矩阵\r\n * 自身属性: x,y,parent,children等\r\n * 脚本属性: 脚本实例对象的属性\r\n * ↓↓参数可以用3种分隔符隔开↓↓\r\n * 英文逗号、英文冒号、空格\r\n * ————————————————————————举个栗子————————————————————————\r\n * 脚本: Hero\r\n * 参数: wp,scale,angle,#angle,#hp\r\n * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\r\n * ————————————————————————温馨提示————————————————————————\r\n * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\\n\r\n*******************************************************************************/\r\nwindow['DATABOARD'] = true;\r\nconst ANCHOR_SIZE = 20; //锚点的大小\r\nconst LINEHEIGHT = 1.2; //行高是字体大小的多少倍\r\nconst { ccclass, property, executeInEditMode, menu } = cc._decorator;\r\n@ccclass\r\n@executeInEditMode\r\n@menu('Comp/DataBoard')\r\nexport default class DataBoard extends cc.Component {\r\n @property\r\n private _isOutlineBoxActive: boolean = false;\r\n @property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' })\r\n private get isOutlineBoxActive() { return this._isOutlineBoxActive };\r\n private set isOutlineBoxActive(value: boolean) {\r\n this._isOutlineBoxActive = value;\r\n this.outlineBoxNode.active = value;\r\n }\r\n @property\r\n private _outlineBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxColor() { return this._outlineBoxColor };\r\n private set outlineBoxColor(value: cc.Color) {\r\n this._outlineBoxColor = value;\r\n this.outlineBoxNode.color = value;\r\n }\r\n @property\r\n private _outlineBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxOpacity() { return this._outlineBoxOpacity };\r\n private set outlineBoxOpacity(value: number) {\r\n this._outlineBoxOpacity = value;\r\n this.outlineBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCollideBoxActive: boolean = true;\r\n @property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' })\r\n private get isCollideBoxActive() { return this._isCollideBoxActive };\r\n private set isCollideBoxActive(value: boolean) {\r\n this._isCollideBoxActive = value;\r\n this.collideBoxNode.active = value;\r\n }\r\n @property\r\n private _collideBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxColor() { return this._collideBoxColor };\r\n private set collideBoxColor(value: cc.Color) {\r\n this._collideBoxColor = value;\r\n this.collideBoxNode.color = value;\r\n }\r\n @property\r\n private _collideBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxOpacity() { return this._collideBoxOpacity };\r\n private set collideBoxOpacity(value: number) {\r\n this._collideBoxOpacity = value;\r\n this.collideBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCustomLabelActive: boolean = true;\r\n @property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' })\r\n private get isCustomLabelActive() { return this._isCustomLabelActive };\r\n private set isCustomLabelActive(value: boolean) {\r\n this._isCustomLabelActive = value;\r\n this.customLabelNode.active = value;\r\n }\r\n @property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible() { return this.isCustomLabelActive; } })\r\n private customComponentName: string = '';\r\n @property\r\n private _customLabelString: string = 'x,y';\r\n @property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && \"—————支持的参数————\\nwp:世界坐标\\nradian:节点弧度(单位:π)\\nmatrix:变换矩阵\\n自身属性:x,y,parent,children等\\n脚本属性:脚本实例对象的属性\\n↓↓参数可以用3种分隔符隔开↓↓\\n英文逗号、英文冒号、空格\\n————举个栗子————\\n脚本:Hero\\n参数:wp,scale,angle,#angle,#hp\\n显示结果:\\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\\n————温馨提示————\\n初始化的时候,设置全局变量\\nwindow['DATABOARD'] = false\\n可屏蔽本项目所有DataBoard,不会产生任何额外开销\", visible() { return this.isCustomLabelActive } })\r\n private get customLabelString() { return this._customLabelString };\r\n private set customLabelString(value: string) {\r\n this._customLabelString = value;\r\n this.customLabelStringSplit = value\r\n .replace(/,|,/g, '_~_').replace(/:|:/g, '_!_').replace(/ |\\t/g, '_@_')\r\n .replace(/_*\\n_*/g, '_\\n_').split('_');\r\n }\r\n @property\r\n private _customLabelOffset: cc.Vec2 = cc.v2(0, 100);\r\n @property({ displayName: CC_DEV && '······偏移', visible() { return this.isCustomLabelActive } })\r\n private get customLabelOffset() { return this._customLabelOffset };\r\n private set customLabelOffset(value: cc.Vec2) {\r\n this._customLabelOffset = value;\r\n this.customLabelNode.x = value.x;\r\n this.customLabelNode.y = value.y;\r\n }\r\n @property\r\n private _customLabelColor: cc.Color = new cc.Color(255, 255, 0);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCustomLabelActive } })\r\n private get customLabelColor() { return this._customLabelColor };\r\n private set customLabelColor(value: cc.Color) {\r\n this._customLabelColor = value;\r\n this.customLabelNode.color = value;\r\n }\r\n @property\r\n private _customLabelSize: number = 60;\r\n @property({ displayName: CC_DEV && '······大小', visible() { return this.isCustomLabelActive } })\r\n private get customLabelSize() { return this._customLabelSize };\r\n private set customLabelSize(value: number) {\r\n this._customLabelSize = value;\r\n this.customLabel.fontSize = value;\r\n this.customLabel.lineHeight = value * LINEHEIGHT;\r\n this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1;\r\n }\r\n @property\r\n private _customLabelDigit: number = 0;\r\n @property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible() { return this.isCustomLabelActive } })\r\n private get customLabelDigit() { return this._customLabelDigit };\r\n private set customLabelDigit(value: number) {\r\n this._customLabelDigit = value;\r\n }\r\n private boardNode: cc.Node = null;\r\n private outlineBoxNode: cc.Node = null;\r\n private collideBoxNode: cc.Node = null;\r\n private anchorPointNode: cc.Node = null;\r\n private customLabelNode: cc.Node = null;\r\n private customLabel: cc.Label = null;\r\n private customLabelStringSplit: string[] = null;\r\n private monitorComp: cc.Component = null;\r\n\r\n protected start() {\r\n this.boardNode = this.node.getChildByName('DataBoard');\r\n if (!CC_EDITOR && !window['DATABOARD']) {\r\n this.destroy();\r\n return;\r\n }\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n let texture = new cc.Texture2D();\r\n texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1);\r\n\r\n this.boardNode = new cc.Node('DataBoard');\r\n this.boardNode.setParent(this.node);\r\n this.boardNode.x = this.boardNode.y = 0;\r\n this.boardNode.zIndex = cc.macro.MAX_ZINDEX;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor;\r\n\r\n this.outlineBoxNode = new cc.Node('OutlineBox');\r\n this.outlineBoxNode.setParent(this.boardNode);\r\n this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.outlineBoxNode.active = this.isOutlineBoxActive;\r\n this.outlineBoxNode.color = this.outlineBoxColor;\r\n this.outlineBoxNode.opacity = this.outlineBoxOpacity;\r\n\r\n this.collideBoxNode = new cc.Node('CollideBox');\r\n this.collideBoxNode.setParent(this.boardNode);\r\n this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.collideBoxNode.active = this.isCollideBoxActive;\r\n this.collideBoxNode.color = this.collideBoxColor;\r\n this.collideBoxNode.opacity = this.collideBoxOpacity;\r\n\r\n this.anchorPointNode = new cc.Node('AnchorPoint');\r\n this.anchorPointNode.setParent(this.boardNode);\r\n this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.anchorPointNode.color = cc.color(255, 0, 0);\r\n this.anchorPointNode.width = ANCHOR_SIZE;\r\n this.anchorPointNode.height = ANCHOR_SIZE;\r\n\r\n this.customLabelNode = new cc.Node('CustomLabel');\r\n this.customLabelNode.setParent(this.boardNode);\r\n this.customLabel = this.customLabelNode.addComponent(cc.Label);\r\n this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0);\r\n this.customLabelNode.active = this.isCustomLabelActive;\r\n this.customLabelString = this._customLabelString;\r\n this.customLabelNode.x = this.customLabelOffset.x;\r\n this.customLabelNode.y = this.customLabelOffset.y;\r\n this.customLabelNode.color = this.customLabelColor;\r\n this.customLabelSize = this._customLabelSize;\r\n\r\n this.updateAngle();\r\n this.updateScale();\r\n this.updateAnchor();\r\n this.updateSize();\r\n this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this);\r\n this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this);\r\n this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this);\r\n this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this);\r\n }\r\n\r\n private updateAngle() {\r\n this.collideBoxNode.angle = -this.node.angle;\r\n this.customLabelNode.angle = -this.node.angle;\r\n }\r\n\r\n private updateScale() {\r\n this.boardNode.scaleX = 1 / this.node.scaleX;\r\n this.boardNode.scaleY = 1 / this.node.scaleY;\r\n this.outlineBoxNode.scaleX = this.node.scaleX;\r\n this.outlineBoxNode.scaleY = this.node.scaleY;\r\n this.collideBoxNode.scaleX = this.node.scaleX;\r\n this.collideBoxNode.scaleY = this.node.scaleY;\r\n }\r\n\r\n private updateAnchor() {\r\n this.outlineBoxNode.anchorX = this.node.anchorX;\r\n this.outlineBoxNode.anchorY = this.node.anchorY;\r\n this.collideBoxNode.anchorX = this.node.anchorX;\r\n this.collideBoxNode.anchorY = this.node.anchorY;\r\n }\r\n\r\n private updateSize() {\r\n this.outlineBoxNode.width = this.node.width;\r\n this.outlineBoxNode.height = this.node.height;\r\n this.collideBoxNode.width = this.node.width;\r\n this.collideBoxNode.height = this.node.height;\r\n }\r\n\r\n protected update() {\r\n if (!this.isCustomLabelActive) return;\r\n if (!this.customLabelStringSplit) return;\r\n let radian = -this.node.angle * Math.PI / 180;\r\n let cos = Math.cos(radian);\r\n let sin = Math.sin(radian);\r\n this.customLabelNode.x = this.customLabelOffset.x * cos - this.customLabelOffset.y * sin;\r\n this.customLabelNode.y = this.customLabelOffset.x * sin + this.customLabelOffset.y * cos;\r\n let str = '';\r\n let strs = this.customLabelStringSplit;\r\n if (!this.monitorComp && this.customComponentName) {\r\n this.monitorComp = this.node.getComponent(this.customComponentName);\r\n }\r\n for (let i = 0, len = strs.length; i < len; ++i) {\r\n let tmp = null;\r\n switch (strs[i]) {\r\n case 'wp':\r\n let matrix = this.node['_worldMatrix'].m;\r\n tmp = `${matrix[12].toFixed(this.customLabelDigit)},\\t${matrix[13].toFixed(this.customLabelDigit)}`;\r\n break;\r\n case 'angle':\r\n tmp = this.node.angle.toFixed(this.customLabelDigit) + '°';\r\n break;\r\n case 'radian':\r\n tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π';\r\n break;\r\n case 'matrix':\r\n matrix = this.node['_worldMatrix'].m;\r\n tmp = '';\r\n for (let i = 0; i < 4; ++i) {\r\n for (let j = 0; j < 4; ++j) {\r\n let m = matrix[j * 4 + i];\r\n tmp += (m < 0 ? '\\t\\t' : '\\t\\t\\t') + m.toFixed(this.customLabelDigit);\r\n }\r\n i !== 3 && (tmp += '\\n');\r\n }\r\n break;\r\n case 'children':\r\n tmp = '';\r\n for (let i = 0, len = this.node.childrenCount; i < len; ++i) {\r\n tmp += `\\t\\t\\t${i}:${this.node.children[i].name}`;\r\n i !== len - 1 && (tmp += '\\n');\r\n }\r\n break;\r\n case '~': tmp = ',\\t'; break;\r\n case '!': tmp = ':\\t'; break;\r\n case '@': tmp = '\\t\\t'; break;\r\n default:\r\n if (this.node[strs[i]] !== undefined) {\r\n tmp = this.node[strs[i]];\r\n } else if (strs[i].startsWith('#') && this.monitorComp !== null) {\r\n tmp = this.parseString(strs[i].substring(1));\r\n } else {\r\n tmp = strs[i];\r\n }\r\n if (typeof tmp === 'number') {\r\n tmp = tmp.toFixed(this.customLabelDigit);\r\n } else if (tmp.name) {\r\n tmp = tmp.name;\r\n }\r\n break;\r\n }\r\n str += tmp;\r\n }\r\n this.customLabel.string = str;\r\n }\r\n\r\n private parseString(str: string) {\r\n let strs = str.split('.');\r\n let ret = this.monitorComp[strs[0]];\r\n ret === undefined && (ret = `#${strs[0]}`);\r\n for (let i = 1, len = strs.length; i < len; ++i) {\r\n if (ret[strs[i]] === undefined) {\r\n return `${ret.name ? ret.name : ret}.${strs[i]}`;\r\n }\r\n ret = ret[strs[i]];\r\n }\r\n return ret;\r\n }\r\n\r\n protected onDestroy() {\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n this.node.targetOff(this);\r\n }\r\n}"]} \ No newline at end of file diff --git a/library/uuid-to-mtime.json b/library/uuid-to-mtime.json index 17c2680..e04cf6b 100644 --- a/library/uuid-to-mtime.json +++ b/library/uuid-to-mtime.json @@ -534,14 +534,14 @@ "meta": 1685194622776, "relativePath": "Texture\\zhizhuxia.png" }, - "1c1526d4-850a-49e8-9d63-1a14155187fc": { - "asset": 1685197299221, - "meta": 1685197300603, - "relativePath": "Script\\DataBoard.ts" - }, "9285e338-6210-4984-bf3e-0b9ebd5f6f78": { "asset": 1685197428895, "meta": 1685197433673, "relativePath": "Script\\Hero.ts" + }, + "1c1526d4-850a-49e8-9d63-1a14155187fc": { + "asset": 1685197605521, + "meta": 1685197607883, + "relativePath": "Script\\DataBoard.ts" } } \ No newline at end of file diff --git a/local/layout.editor.json b/local/layout.editor.json index 2934521..bf66f12 100644 --- a/local/layout.editor.json +++ b/local/layout.editor.json @@ -14,12 +14,12 @@ "children": [ { "width": 459, - "height": 922, + "height": 919.5, "type": "dock-v", "children": [ { "width": 459, - "height": 318, + "height": 317.140625, "type": "panel", "active": 0, "children": [ @@ -28,7 +28,7 @@ }, { "width": 459, - "height": 601, + "height": 599.359375, "type": "panel", "active": 0, "children": [ @@ -39,12 +39,12 @@ }, { "width": 980, - "height": 922, + "height": 919.5, "type": "dock-v", "children": [ { "width": 980, - "height": 565.984375, + "height": 564.453125, "type": "panel", "active": 0, "children": [ @@ -53,7 +53,7 @@ }, { "width": 980, - "height": 353, + "height": 352.03125, "type": "panel", "active": 1, "children": [ @@ -66,7 +66,7 @@ }, { "width": 459, - "height": 922, + "height": 919.5, "type": "panel", "active": 0, "children": [ @@ -86,8 +86,7 @@ "inspector", "cocos-services" ] - }, - " common-asset-worker-worker": {} + } }, "panels": { "simulator-debugger": { diff --git a/temp/BackupAssets/assets/Scene/helloworld.fire b/temp/BackupAssets/assets/Scene/helloworld.fire deleted file mode 100644 index a9d9522..0000000 --- a/temp/BackupAssets/assets/Scene/helloworld.fire +++ /dev/null @@ -1,1229 +0,0 @@ -[ - { - "__type__": "cc.SceneAsset", - "_name": "", - "_objFlags": 0, - "_native": "", - "scene": { - "__id__": 1 - } - }, - { - "__type__": "cc.Scene", - "_objFlags": 0, - "_parent": null, - "_children": [ - { - "__id__": 2 - } - ], - "_active": true, - "_components": [], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_is3DNode": true, - "_groupIndex": 0, - "groupIndex": 0, - "autoReleaseAssets": false, - "_id": "2d2f792f-a40c-49bb-a189-ed176a246e49" - }, - { - "__type__": "cc.Node", - "_name": "Canvas", - "_objFlags": 0, - "_parent": { - "__id__": 1 - }, - "_children": [ - { - "__id__": 3 - }, - { - "__id__": 5 - }, - { - "__id__": 8 - }, - { - "__id__": 23 - } - ], - "_active": true, - "_components": [ - { - "__id__": 26 - }, - { - "__id__": 27 - }, - { - "__id__": 28 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 252, - "g": 252, - "b": 252, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 1080, - "height": 1920 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 540, - 960, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "a286bbGknJLZpRpxROV6M94" - }, - { - "__type__": "cc.Node", - "_name": "Main Camera", - "_objFlags": 0, - "_parent": { - "__id__": 2 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 4 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "beX5p+L8JFDJX8o8E3GMkI" - }, - { - "__type__": "cc.Camera", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 3 - }, - "_enabled": true, - "_cullingMask": 4294967295, - "_clearFlags": 7, - "_backgroundColor": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_depth": -1, - "_zoomRatio": 1, - "_targetTexture": null, - "_fov": 60, - "_orthoSize": 10, - "_nearClip": 1, - "_farClip": 4096, - "_ortho": true, - "_rect": { - "__type__": "cc.Rect", - "x": 0, - "y": 0, - "width": 1, - "height": 1 - }, - "_renderStages": 1, - "_alignWithScreen": true, - "_id": "b2UwrzyPlKaYPFmGq0XMP0" - }, - { - "__type__": "cc.Node", - "_name": "background", - "_objFlags": 0, - "_parent": { - "__id__": 2 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 6 - }, - { - "__id__": 7 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 27, - "g": 38, - "b": 46, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 1080, - "height": 1920 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "e2e0crkOLxGrpMxpbC4iQg1" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 5 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "410fb916-8721-4663-bab8-34397391ace7" - }, - "_type": 1, - "_sizeMode": 0, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "abjtQMd/tMf6DvKGm5qxjk" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 5 - }, - "_enabled": true, - "alignMode": 0, - "_target": null, - "_alignFlags": 45, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_verticalCenter": 0, - "_horizontalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 200, - "_originalHeight": 150, - "_id": "dfc8vCoidNbIp3vQH4RSGm" - }, - { - "__type__": "cc.Node", - "_name": "挂上DataBoard的对象", - "_objFlags": 0, - "_parent": { - "__id__": 2 - }, - "_children": [ - { - "__id__": 9 - }, - { - "__id__": 11 - } - ], - "_active": true, - "_components": [ - { - "__id__": 21 - }, - { - "__id__": 22 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 200, - "height": 150 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "c4f30YOS65G64U2TwufdJ+2" - }, - { - "__type__": "cc.Node", - "_name": "图片", - "_objFlags": 0, - "_parent": { - "__id__": 8 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 10 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 200, - "height": 150 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "f6TKmX5pZEvpWsQwfo5nKR" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 9 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": { - "__uuid__": "6e0882b8-ac14-4ee7-b636-cb22032c50b1" - }, - "_type": 0, - "_sizeMode": 0, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "69tmZ9SddHIJlXaFaUAYQy" - }, - { - "__type__": "cc.Node", - "_name": "DataBoard", - "_objFlags": 512, - "_parent": { - "__id__": 8 - }, - "_children": [ - { - "__id__": 12 - }, - { - "__id__": 14 - }, - { - "__id__": 16 - }, - { - "__id__": 18 - } - ], - "_active": true, - "_components": [], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 0, - "height": 0 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "85BlQuDb9HZKuhEJxwyGF+" - }, - { - "__type__": "cc.Node", - "_name": "OutlineBox", - "_objFlags": 0, - "_parent": { - "__id__": 11 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 13 - } - ], - "_prefab": null, - "_opacity": 100, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 0, - "b": 0, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 200, - "height": 150 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "49+qljSBFDb61/iC62OrLE" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 12 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": null, - "_type": 0, - "_sizeMode": 0, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "6axJdFuntK570hv44oHwcH" - }, - { - "__type__": "cc.Node", - "_name": "CollideBox", - "_objFlags": 0, - "_parent": { - "__id__": 11 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 15 - } - ], - "_prefab": null, - "_opacity": 100, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 200, - "height": 150 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "66fiagvGZM17jxJS3e3R/O" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 14 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": null, - "_type": 0, - "_sizeMode": 0, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "e7StEP5C5EIY76/7RYAGaS" - }, - { - "__type__": "cc.Node", - "_name": "AnchorPoint", - "_objFlags": 0, - "_parent": { - "__id__": 11 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 17 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 0, - "b": 0, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 20, - "height": 20 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 0, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "67uLDk0kNPMLrmc4a+2Lcz" - }, - { - "__type__": "cc.Sprite", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 16 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_spriteFrame": null, - "_type": 0, - "_sizeMode": 0, - "_fillType": 0, - "_fillCenter": { - "__type__": "cc.Vec2", - "x": 0, - "y": 0 - }, - "_fillStart": 0, - "_fillRange": 0, - "_isTrimmedMode": true, - "_atlas": null, - "_id": "19kjTk6vxDsqYAK8l1jO+n" - }, - { - "__type__": "cc.Node", - "_name": "CustomLabel", - "_objFlags": 0, - "_parent": { - "__id__": 11 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 19 - }, - { - "__id__": 20 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 0, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 618.97, - "height": 390.72 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 150, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "930hpjvLBPHbYO0z9MngLs" - }, - { - "__type__": "cc.Label", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 18 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_string": "坐标:\t0.0,\t0.0\n角度:\t0.0°,\t弧度:\t0.0π\n世界坐标:\t540.0,\t960.0\nhp:\t100.0\t\t\t\t\t\tmp:\t60.0\n5.0", - "_N$string": "坐标:\t0.0,\t0.0\n角度:\t0.0°,\t弧度:\t0.0π\n世界坐标:\t540.0,\t960.0\nhp:\t100.0\t\t\t\t\t\tmp:\t60.0\n5.0", - "_fontSize": 60, - "_lineHeight": 72, - "_enableWrapText": true, - "_N$file": null, - "_isSystemFontUsed": true, - "_spacingX": 0, - "_batchAsBitmap": false, - "_styleFlags": 0, - "_underlineHeight": 0, - "_N$horizontalAlign": 0, - "_N$verticalAlign": 0, - "_N$fontFamily": "Arial", - "_N$overflow": 0, - "_N$cacheMode": 0, - "_id": "357EdNN/VPTaPJCzr51Jj0" - }, - { - "__type__": "cc.LabelOutline", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 18 - }, - "_enabled": true, - "_color": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_width": 6, - "_id": "b4ov1ei1RJaZNO5PGzLCHc" - }, - { - "__type__": "9285eM4YhBJhL8+C569X294", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 8 - }, - "_enabled": true, - "_id": "1b9viFHsFJHrX+D1PV5q6g" - }, - { - "__type__": "1c152bUhQpJ6J1jGhQVUYf8", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 8 - }, - "_enabled": true, - "_isOutlineBoxActive": true, - "_outlineBoxColor": { - "__type__": "cc.Color", - "r": 255, - "g": 0, - "b": 0, - "a": 255 - }, - "_outlineBoxOpacity": 100, - "_isCollideBoxActive": true, - "_collideBoxColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_collideBoxOpacity": 100, - "_isCustomLabelActive": true, - "customComponentName": "Hero", - "_customLabelString": "坐标:x,y\n角度:angle,弧度:radian\n世界坐标:wp\nhp:#hp mp:#mp\n#equip.shoe.attr.speed", - "_customLabelOffset": { - "__type__": "cc.Vec2", - "x": 0, - "y": 150 - }, - "_customLabelColor": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 0, - "a": 255 - }, - "_customLabelSize": 60, - "_customLabelDigit": 1, - "_id": "f4qvGlRGRDaZMkdYB8uWAL" - }, - { - "__type__": "cc.Node", - "_name": "label", - "_objFlags": 0, - "_parent": { - "__id__": 2 - }, - "_children": [], - "_active": true, - "_components": [ - { - "__id__": 24 - }, - { - "__id__": 25 - } - ], - "_prefab": null, - "_opacity": 255, - "_color": { - "__type__": "cc.Color", - "r": 255, - "g": 255, - "b": 255, - "a": 255 - }, - "_contentSize": { - "__type__": "cc.Size", - "width": 714.85, - "height": 268.8 - }, - "_anchorPoint": { - "__type__": "cc.Vec2", - "x": 0.5, - "y": 0.5 - }, - "_trs": { - "__type__": "TypedArray", - "ctor": "Float64Array", - "array": [ - 0, - 800, - 0, - 0, - 0, - 0, - 1, - 1, - 1, - 1 - ] - }, - "_eulerAngles": { - "__type__": "cc.Vec3", - "x": 0, - "y": 0, - "z": 0 - }, - "_skewX": 0, - "_skewY": 0, - "_is3DNode": false, - "_groupIndex": 0, - "groupIndex": 0, - "_id": "31f1bH7V69Ajr1iXhluMpTB" - }, - { - "__type__": "cc.Label", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 23 - }, - "_enabled": true, - "_materials": [ - { - "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" - } - ], - "_srcBlendFactor": 770, - "_dstBlendFactor": 771, - "_string": "给节点挂上DataBoard组件\n就可以实时观察节点数据\n可以自定义显示哪些数据", - "_N$string": "给节点挂上DataBoard组件\n就可以实时观察节点数据\n可以自定义显示哪些数据", - "_fontSize": 60, - "_lineHeight": 80, - "_enableWrapText": true, - "_N$file": null, - "_isSystemFontUsed": true, - "_spacingX": 0, - "_batchAsBitmap": false, - "_styleFlags": 0, - "_underlineHeight": 0, - "_N$horizontalAlign": 1, - "_N$verticalAlign": 1, - "_N$fontFamily": "Arial", - "_N$overflow": 0, - "_N$cacheMode": 0, - "_id": "5eZsIX/qFMkbiOrdVmSz9v" - }, - { - "__type__": "cc.LabelOutline", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 23 - }, - "_enabled": true, - "_color": { - "__type__": "cc.Color", - "r": 0, - "g": 0, - "b": 0, - "a": 255 - }, - "_width": 4, - "_id": "65xBVKP8ZGyY7E1Nf3N1VZ" - }, - { - "__type__": "cc.Canvas", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 2 - }, - "_enabled": true, - "_designResolution": { - "__type__": "cc.Size", - "width": 1080, - "height": 1920 - }, - "_fitWidth": false, - "_fitHeight": true, - "_id": "06wrVrs6dDr459DYnp1+6H" - }, - { - "__type__": "cc.Widget", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 2 - }, - "_enabled": true, - "alignMode": 1, - "_target": null, - "_alignFlags": 45, - "_left": 0, - "_right": 0, - "_top": 0, - "_bottom": 0, - "_verticalCenter": 0, - "_horizontalCenter": 0, - "_isAbsLeft": true, - "_isAbsRight": true, - "_isAbsTop": true, - "_isAbsBottom": true, - "_isAbsHorizontalCenter": true, - "_isAbsVerticalCenter": true, - "_originalWidth": 0, - "_originalHeight": 0, - "_id": "4cvZlA+wVNOrzTSkfnT7pQ" - }, - { - "__type__": "cc.Animation", - "_name": "", - "_objFlags": 0, - "node": { - "__id__": 2 - }, - "_enabled": true, - "_defaultClip": { - "__uuid__": "e68a8476-8374-4400-ae48-d3eae5df38ea" - }, - "_clips": [ - { - "__uuid__": "e68a8476-8374-4400-ae48-d3eae5df38ea" - } - ], - "playOnLoad": true, - "_id": "cd74CS5/tJJIz0ZhobU6PW" - } -] \ No newline at end of file diff --git a/temp/BackupAssets/assets/cocos.anim b/temp/BackupAssets/assets/cocos.anim deleted file mode 100644 index 7a6b9b0..0000000 --- a/temp/BackupAssets/assets/cocos.anim +++ /dev/null @@ -1,96 +0,0 @@ -{ - "__type__": "cc.AnimationClip", - "_name": "cocos", - "_objFlags": 0, - "_native": "", - "_duration": 2.5, - "sample": 60, - "speed": 0.1, - "wrapMode": 2, - "curveData": { - "props": { - "position": [], - "angle": [], - "scale": [] - }, - "paths": { - "挂上DataBoard的对象": { - "props": { - "position": [ - { - "frame": 0, - "value": [ - 0, - 50, - 0 - ] - }, - { - "frame": 0.5, - "value": [ - -169.683, - 414.072, - 0 - ] - }, - { - "frame": 1, - "value": [ - -324.126, - -518.753, - 0 - ] - }, - { - "frame": 1.0166666666666666, - "value": [ - -193.883, - -514.716, - 0 - ] - }, - { - "frame": 1.5, - "value": [ - 247.091, - 323.062, - 0 - ] - }, - { - "frame": 2, - "value": [ - 215.112, - -535.196, - 0 - ] - }, - { - "frame": 2.5, - "value": [ - 0, - 50, - 0 - ] - } - ], - "angle": [ - { - "frame": 0, - "value": 0 - }, - { - "frame": 1, - "value": 720 - }, - { - "frame": 2.5, - "value": 0 - } - ] - } - } - } - }, - "events": [] -} \ No newline at end of file diff --git a/temp/gltf/bae6e81776395594d357794cb80c5a82_out/bae6e81776395594d357794cb80c5a82.gltf b/temp/gltf/bae6e81776395594d357794cb80c5a82_out/bae6e81776395594d357794cb80c5a82.gltf deleted file mode 100644 index ca72477..0000000 --- a/temp/gltf/bae6e81776395594d357794cb80c5a82_out/bae6e81776395594d357794cb80c5a82.gltf +++ /dev/null @@ -1,859 +0,0 @@ -{ - "asset": { - "generator": "FBX2glTF", - "version": "2.0" - }, - "scene": 0, - "buffers": [ - { - "byteLength": 161028, - "uri": "buffer.bin" - } - ], - "bufferViews": [ - { - "buffer": 0, - "byteLength": 12288, - "byteOffset": 0, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 13860, - "byteOffset": 12288, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 13860, - "byteOffset": 26148, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 9240, - "byteOffset": 40008, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 1200, - "byteOffset": 49248, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 1452, - "byteOffset": 50448, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 1452, - "byteOffset": 51900, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 968, - "byteOffset": 53352, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 384, - "byteOffset": 54320, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 1548, - "byteOffset": 54704, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 1548, - "byteOffset": 56252, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 1032, - "byteOffset": 57800, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 12288, - "byteOffset": 58832, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 13068, - "byteOffset": 71120, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 13068, - "byteOffset": 84188, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 8712, - "byteOffset": 97256, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 12288, - "byteOffset": 105968, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 13068, - "byteOffset": 118256, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 13068, - "byteOffset": 131324, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 8712, - "byteOffset": 144392, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 12, - "byteOffset": 153104, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 48, - "byteOffset": 153116, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 48, - "byteOffset": 153164, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 32, - "byteOffset": 153212, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 768, - "byteOffset": 153244, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 2316, - "byteOffset": 154012, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 2316, - "byteOffset": 156328, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 1544, - "byteOffset": 158644, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 72, - "byteOffset": 160188, - "target": 34963 - }, - { - "buffer": 0, - "byteLength": 288, - "byteOffset": 160260, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 288, - "byteOffset": 160548, - "target": 34962 - }, - { - "buffer": 0, - "byteLength": 192, - "byteOffset": 160836, - "target": 34962 - } - ], - "scenes": [ - { - "name": "Root Scene", - "nodes": [ - 0 - ] - } - ], - "accessors": [ - { - "componentType": 5123, - "type": "SCALAR", - "count": 6144, - "bufferView": 0, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 1155, - "bufferView": 1, - "byteOffset": 0, - "min": [ - -0.5, - -1.0, - -0.5 - ], - "max": [ - 0.5, - 1.0, - 0.5 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 1155, - "bufferView": 2, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 1155, - "bufferView": 3, - "byteOffset": 0 - }, - { - "componentType": 5123, - "type": "SCALAR", - "count": 600, - "bufferView": 4, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 121, - "bufferView": 5, - "byteOffset": 0, - "min": [ - -5.0, - 0.0, - -5.0 - ], - "max": [ - 5.0, - 0.0, - 5.0 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 121, - "bufferView": 6, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 121, - "bufferView": 7, - "byteOffset": 0 - }, - { - "componentType": 5123, - "type": "SCALAR", - "count": 192, - "bufferView": 8, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 129, - "bufferView": 9, - "byteOffset": 0, - "min": [ - -0.5, - -0.5, - -0.499999940395355 - ], - "max": [ - 0.5, - 0.5, - 0.5 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 129, - "bufferView": 10, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 129, - "bufferView": 11, - "byteOffset": 0 - }, - { - "componentType": 5123, - "type": "SCALAR", - "count": 6144, - "bufferView": 12, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 1089, - "bufferView": 13, - "byteOffset": 0, - "min": [ - -0.5, - -0.0999999940395355, - -0.5 - ], - "max": [ - 0.5, - 0.0999999940395355, - 0.5 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 1089, - "bufferView": 14, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 1089, - "bufferView": 15, - "byteOffset": 0 - }, - { - "componentType": 5123, - "type": "SCALAR", - "count": 6144, - "bufferView": 16, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 1089, - "bufferView": 17, - "byteOffset": 0, - "min": [ - -0.5, - -0.5, - -0.5 - ], - "max": [ - 0.5, - 0.5, - 0.5 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 1089, - "bufferView": 18, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 1089, - "bufferView": 19, - "byteOffset": 0 - }, - { - "componentType": 5123, - "type": "SCALAR", - "count": 6, - "bufferView": 20, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 4, - "bufferView": 21, - "byteOffset": 0, - "min": [ - -0.5, - -0.5, - 0.0 - ], - "max": [ - 0.5, - 0.5, - 0.0 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 4, - "bufferView": 22, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 4, - "bufferView": 23, - "byteOffset": 0 - }, - { - "componentType": 5123, - "type": "SCALAR", - "count": 384, - "bufferView": 24, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 193, - "bufferView": 25, - "byteOffset": 0, - "min": [ - -0.5, - -1.0, - -0.5 - ], - "max": [ - 0.5, - 1.0, - 0.5 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 193, - "bufferView": 26, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 193, - "bufferView": 27, - "byteOffset": 0 - }, - { - "componentType": 5123, - "type": "SCALAR", - "count": 36, - "bufferView": 28, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 24, - "bufferView": 29, - "byteOffset": 0, - "min": [ - -0.5, - -0.5, - -0.5 - ], - "max": [ - 0.5, - 0.5, - 0.5 - ] - }, - { - "componentType": 5126, - "type": "VEC3", - "count": 24, - "bufferView": 30, - "byteOffset": 0 - }, - { - "componentType": 5126, - "type": "VEC2", - "count": 24, - "bufferView": 31, - "byteOffset": 0 - } - ], - "samplers": [ - {} - ], - "materials": [ - { - "name": "DefaultMaterial", - "alphaMode": "OPAQUE", - "extras": { - "fromFBX": { - "shadingModel": "Lambert", - "isTruePBR": false - } - }, - "pbrMetallicRoughness": { - "baseColorFactor": [ - 0.5, - 0.5, - 0.5, - 1.0 - ], - "metallicFactor": 0.200000002980232, - "roughnessFactor": 0.800000011920929 - } - } - ], - "meshes": [ - { - "name": "capsule", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 2, - "POSITION": 1, - "TEXCOORD_0": 3 - }, - "indices": 0 - } - ] - }, - { - "name": "plane", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 6, - "POSITION": 5, - "TEXCOORD_0": 7 - }, - "indices": 4 - } - ] - }, - { - "name": "cone", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 10, - "POSITION": 9, - "TEXCOORD_0": 11 - }, - "indices": 8 - } - ] - }, - { - "name": "torus", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 14, - "POSITION": 13, - "TEXCOORD_0": 15 - }, - "indices": 12 - } - ] - }, - { - "name": "sphere", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 18, - "POSITION": 17, - "TEXCOORD_0": 19 - }, - "indices": 16 - } - ] - }, - { - "name": "quad", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 22, - "POSITION": 21, - "TEXCOORD_0": 23 - }, - "indices": 20 - } - ] - }, - { - "name": "cylinder", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 26, - "POSITION": 25, - "TEXCOORD_0": 27 - }, - "indices": 24 - } - ] - }, - { - "name": "box", - "primitives": [ - { - "material": 0, - "mode": 4, - "attributes": { - "NORMAL": 30, - "POSITION": 29, - "TEXCOORD_0": 31 - }, - "indices": 28 - } - ] - } - ], - "nodes": [ - { - "name": "RootNode", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 0.0, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 1.0, - 1.0, - 1.0 - ], - "children": [ - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8 - ] - }, - { - "name": "capsule", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 8.14603353660459e-08, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 0 - }, - { - "name": "plane", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 8.14603353660459e-08, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 1 - }, - { - "name": "cone", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - -0.707106828689575, - 0.0, - 0.0, - 0.707106709480286 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 2 - }, - { - "name": "torus", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 8.14603353660459e-08, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 3 - }, - { - "name": "sphere", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 8.14603353660459e-08, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 4 - }, - { - "name": "quad", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 8.14603353660459e-08, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 5 - }, - { - "name": "cylinder", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 8.14603353660459e-08, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 6 - }, - { - "name": "box", - "translation": [ - 0.0, - 0.0, - 0.0 - ], - "rotation": [ - 8.14603353660459e-08, - 0.0, - 0.0, - 1.0 - ], - "scale": [ - 100.0, - 100.0, - 100.0 - ], - "mesh": 7 - } - ] -} \ No newline at end of file diff --git a/temp/gltf/bae6e81776395594d357794cb80c5a82_out/buffer.bin b/temp/gltf/bae6e81776395594d357794cb80c5a82_out/buffer.bin deleted file mode 100644 index 743d7d2..0000000 Binary files a/temp/gltf/bae6e81776395594d357794cb80c5a82_out/buffer.bin and /dev/null differ diff --git a/temp/quick-scripts/dst/__file_stats__.json b/temp/quick-scripts/dst/__file_stats__.json deleted file mode 100644 index b616ac0..0000000 --- a/temp/quick-scripts/dst/__file_stats__.json +++ /dev/null @@ -1 +0,0 @@ -{"version":"1.0.8","stats":{"D:/Project/DataBoardDemo/temp/quick-scripts/src/__qc_index__.js":"2023-05-27T13:37:03.175Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/Hero.js":"2023-05-27T13:37:03.096Z","D:/Project/DataBoardDemo/temp/quick-scripts/src/assets/Script/DataBoard.js":"2023-05-27T13:37:03.096Z"}} diff --git a/temp/quick-scripts/dst/__qc_bundle__.js b/temp/quick-scripts/dst/__qc_bundle__.js deleted file mode 100644 index 86641a4..0000000 --- a/temp/quick-scripts/dst/__qc_bundle__.js +++ /dev/null @@ -1,598 +0,0 @@ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/__qc_index__.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);} -require('./assets/Script/DataBoard'); -require('./assets/Script/Hero'); - - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Hero.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '9285eM4YhBJhL8+C569X294', 'Hero'); -// Script/Hero.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Helloworld = /** @class */ (function (_super) { - __extends(Helloworld, _super); - function Helloworld() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.hp = 100; - _this.mp = 60; - _this.equip = { - name: '装备', - sword: { - name: '小刀', - attack: 30 - }, - shoe: { - name: '草鞋', - attr: { - name: '属性', - speed: 5, - durable: 100 - } - } - }; - return _this; - } - Helloworld.prototype.update = function (dt) { - this.hp += 1.0 * dt; - this.mp += 0.5 * dt; - }; - Helloworld = __decorate([ - ccclass - ], Helloworld); - return Helloworld; -}(cc.Component)); -exports.default = Helloworld; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZXJvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBdUJDO1FBdEJHLFFBQUUsR0FBRyxHQUFHLENBQUM7UUFDVCxRQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsV0FBSyxHQUFHO1lBQ0osSUFBSSxFQUFDLElBQUk7WUFDVCxLQUFLLEVBQUM7Z0JBQ0YsSUFBSSxFQUFDLElBQUk7Z0JBQ1QsTUFBTSxFQUFDLEVBQUU7YUFDWjtZQUNELElBQUksRUFBQztnQkFDRCxJQUFJLEVBQUMsSUFBSTtnQkFDVCxJQUFJLEVBQUM7b0JBQ0QsSUFBSSxFQUFDLElBQUk7b0JBQ1QsS0FBSyxFQUFDLENBQUM7b0JBQ1AsT0FBTyxFQUFDLEdBQUc7aUJBQ2Q7YUFDSjtTQUNKLENBQUE7O0lBTUwsQ0FBQztJQUpHLDJCQUFNLEdBQU4sVUFBUSxFQUFFO1FBQ04sSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBdEJnQixVQUFVO1FBRDlCLE9BQU87T0FDYSxVQUFVLENBdUI5QjtJQUFELGlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7a0JBdkJvQixVQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWxsb3dvcmxkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIGhwID0gMTAwO1xyXG4gICAgbXAgPSA2MDtcclxuICAgIGVxdWlwID0ge1xyXG4gICAgICAgIG5hbWU6J+ijheWkhycsXHJcbiAgICAgICAgc3dvcmQ6e1xyXG4gICAgICAgICAgICBuYW1lOiflsI/liIAnLFxyXG4gICAgICAgICAgICBhdHRhY2s6MzBcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob2U6e1xyXG4gICAgICAgICAgICBuYW1lOifojYnpnosnLFxyXG4gICAgICAgICAgICBhdHRyOntcclxuICAgICAgICAgICAgICAgIG5hbWU6J+WxnuaApycsXHJcbiAgICAgICAgICAgICAgICBzcGVlZDo1LFxyXG4gICAgICAgICAgICAgICAgZHVyYWJsZToxMDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgdGhpcy5ocCArPSAxLjAqZHQ7XHJcbiAgICAgICAgdGhpcy5tcCArPSAwLjUqZHQ7XHJcbiAgICB9XHJcbn0iXX0= -//------QC-SOURCE-SPLIT------ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/DataBoard.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '1c152bUhQpJ6J1jGhQVUYf8', 'DataBoard'); -// Script/DataBoard.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -/******************************************************************************* - * 创建: 2022年11月23日 - * 作者: 水煮肉片饭(27185709@qq.com) - * 描述: 数据看板 - * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性) - * 可以图形化展示以下四种数据: - * 轮廓盒子: 随节点旋转,代表节点的实时矩形 - * 碰撞盒子: 不随节点旋转,一般代表碰撞范围 - * 自定义参数: 节点自身属性,以及节点任意脚本中的属性 - * 锚点: 锚点位置会显示一个小红点 - * 自定义参数(配置想监控的数据): - * wp: 世界坐标 - * radian: 节点弧度(单位:π) - * matrix: 变换矩阵 - * 自身属性: x,y,parent,children等 - * 脚本属性: 脚本实例对象的属性 - * ↓↓参数可以用3种分隔符隔开↓↓ - * 英文逗号、英文冒号、空格 - * ————————————————————————举个栗子———————————————————————— - * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp - * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp - * ————————————————————————温馨提示———————————————————————— - * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n -*******************************************************************************/ -window['DATABOARD'] = true; -var ANCHOR_SIZE = 20; //锚点的大小 -var LINEHEIGHT = 1.2; //行高是字体大小的多少倍 -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, executeInEditMode = _a.executeInEditMode, menu = _a.menu; -var DataBoard = /** @class */ (function (_super) { - __extends(DataBoard, _super); - function DataBoard() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._isOutlineBoxActive = false; - _this._outlineBoxColor = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255); - _this._outlineBoxOpacity = 100; - _this._isCollideBoxActive = true; - _this._collideBoxColor = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255); - _this._collideBoxOpacity = 100; - _this._isCustomLabelActive = true; - _this.customComponentName = ''; - _this._customLabelString = 'x,y'; - _this._customLabelOffset = cc.v2(0, 100); - _this._customLabelColor = new cc.Color(255, 255, 0); - _this._customLabelSize = 60; - _this._customLabelDigit = 0; - _this.boardNode = null; - _this.outlineBoxNode = null; - _this.collideBoxNode = null; - _this.anchorPointNode = null; - _this.customLabelNode = null; - _this.customLabel = null; - _this.customLabelStringSplit = null; - _this.monitorComp = null; - return _this; - } - Object.defineProperty(DataBoard.prototype, "isOutlineBoxActive", { - get: function () { return this._isOutlineBoxActive; }, - set: function (value) { - this._isOutlineBoxActive = value; - this.outlineBoxNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "outlineBoxColor", { - get: function () { return this._outlineBoxColor; }, - set: function (value) { - this._outlineBoxColor = value; - this.outlineBoxNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "outlineBoxOpacity", { - get: function () { return this._outlineBoxOpacity; }, - set: function (value) { - this._outlineBoxOpacity = value; - this.outlineBoxNode.opacity = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "isCollideBoxActive", { - get: function () { return this._isCollideBoxActive; }, - set: function (value) { - this._isCollideBoxActive = value; - this.collideBoxNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "collideBoxColor", { - get: function () { return this._collideBoxColor; }, - set: function (value) { - this._collideBoxColor = value; - this.collideBoxNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "collideBoxOpacity", { - get: function () { return this._collideBoxOpacity; }, - set: function (value) { - this._collideBoxOpacity = value; - this.collideBoxNode.opacity = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "isCustomLabelActive", { - get: function () { return this._isCustomLabelActive; }, - set: function (value) { - this._isCustomLabelActive = value; - this.customLabelNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelString", { - get: function () { return this._customLabelString; }, - set: function (value) { - this._customLabelString = value; - this.customLabelStringSplit = value - .replace(/,|,/g, '_~_').replace(/:|:/g, '_!_').replace(/ |\t/g, '_@_') - .replace(/_*\n_*/g, '_\n_').split('_'); - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelOffset", { - get: function () { return this._customLabelOffset; }, - set: function (value) { - this._customLabelOffset = value; - this.customLabelNode.x = value.x; - this.customLabelNode.y = value.y; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelColor", { - get: function () { return this._customLabelColor; }, - set: function (value) { - this._customLabelColor = value; - this.customLabelNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelSize", { - get: function () { return this._customLabelSize; }, - set: function (value) { - this._customLabelSize = value; - this.customLabel.fontSize = value; - this.customLabel.lineHeight = value * LINEHEIGHT; - this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelDigit", { - get: function () { return this._customLabelDigit; }, - set: function (value) { - this._customLabelDigit = value; - }, - enumerable: false, - configurable: true - }); - ; - DataBoard.prototype.start = function () { - this.boardNode = this.node.getChildByName('DataBoard'); - if (!CC_EDITOR && !window['DATABOARD']) { - this.destroy(); - return; - } - if (cc.isValid(this.boardNode)) { - this.boardNode.removeFromParent(); - this.boardNode.destroy(); - } - var texture = new cc.Texture2D(); - texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1); - this.boardNode = new cc.Node('DataBoard'); - this.boardNode.setParent(this.node); - this.boardNode.x = this.boardNode.y = 0; - this.boardNode.zIndex = cc.macro.MAX_ZINDEX; - // this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy; - this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor; - this.outlineBoxNode = new cc.Node('OutlineBox'); - this.outlineBoxNode.setParent(this.boardNode); - this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.outlineBoxNode.active = this.isOutlineBoxActive; - this.outlineBoxNode.color = this.outlineBoxColor; - this.outlineBoxNode.opacity = this.outlineBoxOpacity; - this.collideBoxNode = new cc.Node('CollideBox'); - this.collideBoxNode.setParent(this.boardNode); - this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.collideBoxNode.active = this.isCollideBoxActive; - this.collideBoxNode.color = this.collideBoxColor; - this.collideBoxNode.opacity = this.collideBoxOpacity; - this.anchorPointNode = new cc.Node('AnchorPoint'); - this.anchorPointNode.setParent(this.boardNode); - this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.anchorPointNode.color = cc.color(255, 0, 0); - this.anchorPointNode.width = ANCHOR_SIZE; - this.anchorPointNode.height = ANCHOR_SIZE; - this.customLabelNode = new cc.Node('CustomLabel'); - this.customLabelNode.setParent(this.boardNode); - this.customLabel = this.customLabelNode.addComponent(cc.Label); - this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0); - this.customLabelNode.active = this.isCustomLabelActive; - this.customLabelString = this._customLabelString; - this.customLabelNode.x = this.customLabelOffset.x; - this.customLabelNode.y = this.customLabelOffset.y; - this.customLabelNode.color = this.customLabelColor; - this.customLabelSize = this._customLabelSize; - this.updateAngle(); - this.updateScale(); - this.updateAnchor(); - this.updateSize(); - this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this); - this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this); - this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this); - this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this); - }; - DataBoard.prototype.updateAngle = function () { - this.collideBoxNode.angle = -this.node.angle; - this.customLabelNode.angle = -this.node.angle; - }; - DataBoard.prototype.updateScale = function () { - this.boardNode.scaleX = 1 / this.node.scaleX; - this.boardNode.scaleY = 1 / this.node.scaleY; - this.outlineBoxNode.scaleX = this.node.scaleX; - this.outlineBoxNode.scaleY = this.node.scaleY; - this.collideBoxNode.scaleX = this.node.scaleX; - this.collideBoxNode.scaleY = this.node.scaleY; - }; - DataBoard.prototype.updateAnchor = function () { - this.outlineBoxNode.anchorX = this.node.anchorX; - this.outlineBoxNode.anchorY = this.node.anchorY; - this.collideBoxNode.anchorX = this.node.anchorX; - this.collideBoxNode.anchorY = this.node.anchorY; - }; - DataBoard.prototype.updateSize = function () { - this.outlineBoxNode.width = this.node.width; - this.outlineBoxNode.height = this.node.height; - this.collideBoxNode.width = this.node.width; - this.collideBoxNode.height = this.node.height; - }; - DataBoard.prototype.update = function () { - if (!this.isCustomLabelActive) - return; - if (!this.customLabelStringSplit) - return; - var radian = -this.node.angle * Math.PI / 180; - var cos = Math.cos(radian); - var sin = Math.sin(radian); - this.customLabelNode.x = this.customLabelOffset.x * cos - this.customLabelOffset.y * sin; - this.customLabelNode.y = this.customLabelOffset.x * sin + this.customLabelOffset.y * cos; - var str = ''; - var strs = this.customLabelStringSplit; - if (!this.monitorComp && this.customComponentName) { - this.monitorComp = this.node.getComponent(this.customComponentName); - } - for (var i = 0, len = strs.length; i < len; ++i) { - var tmp = null; - switch (strs[i]) { - case 'wp': - var matrix = this.node['_worldMatrix'].m; - tmp = matrix[12].toFixed(this.customLabelDigit) + ",\t" + matrix[13].toFixed(this.customLabelDigit); - break; - case 'angle': - tmp = this.node.angle.toFixed(this.customLabelDigit) + '°'; - break; - case 'radian': - tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π'; - break; - case 'matrix': - matrix = this.node['_worldMatrix'].m; - tmp = ''; - for (var i_1 = 0; i_1 < 4; ++i_1) { - for (var j = 0; j < 4; ++j) { - var m = matrix[j * 4 + i_1]; - tmp += (m < 0 ? '\t\t' : '\t\t\t') + m.toFixed(this.customLabelDigit); - } - i_1 !== 3 && (tmp += '\n'); - } - break; - case 'children': - tmp = ''; - for (var i_2 = 0, len_1 = this.node.childrenCount; i_2 < len_1; ++i_2) { - tmp += "\t\t\t" + i_2 + "\uFF1A" + this.node.children[i_2].name; - i_2 !== len_1 - 1 && (tmp += '\n'); - } - break; - case '~': - tmp = ',\t'; - break; - case '!': - tmp = ':\t'; - break; - case '@': - tmp = '\t\t'; - break; - default: - if (this.node[strs[i]] !== undefined) { - tmp = this.node[strs[i]]; - } - else if (strs[i].startsWith('#') && this.monitorComp !== null) { - tmp = this.parseString(strs[i].substring(1)); - } - else { - tmp = strs[i]; - } - if (typeof tmp === 'number') { - tmp = tmp.toFixed(this.customLabelDigit); - } - else if (tmp.name) { - tmp = tmp.name; - } - break; - } - str += tmp; - } - this.customLabel.string = str; - }; - DataBoard.prototype.parseString = function (str) { - var strs = str.split('.'); - var ret = this.monitorComp[strs[0]]; - ret === undefined && (ret = "#" + strs[0]); - for (var i = 1, len = strs.length; i < len; ++i) { - if (ret[strs[i]] === undefined) { - return (ret.name ? ret.name : ret) + "." + strs[i]; - } - ret = ret[strs[i]]; - } - return ret; - }; - DataBoard.prototype.onDestroy = function () { - if (cc.isValid(this.boardNode)) { - this.boardNode.removeFromParent(); - this.boardNode.destroy(); - } - this.node.targetOff(this); - }; - __decorate([ - property - ], DataBoard.prototype, "_isOutlineBoxActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' }) - ], DataBoard.prototype, "isOutlineBoxActive", null); - __decorate([ - property - ], DataBoard.prototype, "_outlineBoxColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isOutlineBoxActive; } }) - ], DataBoard.prototype, "outlineBoxColor", null); - __decorate([ - property - ], DataBoard.prototype, "_outlineBoxOpacity", void 0); - __decorate([ - property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible: function () { return this.isOutlineBoxActive; } }) - ], DataBoard.prototype, "outlineBoxOpacity", null); - __decorate([ - property - ], DataBoard.prototype, "_isCollideBoxActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' }) - ], DataBoard.prototype, "isCollideBoxActive", null); - __decorate([ - property - ], DataBoard.prototype, "_collideBoxColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isCollideBoxActive; } }) - ], DataBoard.prototype, "collideBoxColor", null); - __decorate([ - property - ], DataBoard.prototype, "_collideBoxOpacity", void 0); - __decorate([ - property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible: function () { return this.isCollideBoxActive; } }) - ], DataBoard.prototype, "collideBoxOpacity", null); - __decorate([ - property - ], DataBoard.prototype, "_isCustomLabelActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' }) - ], DataBoard.prototype, "isCustomLabelActive", null); - __decorate([ - property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customComponentName", void 0); - __decorate([ - property - ], DataBoard.prototype, "_customLabelString", void 0); - __decorate([ - property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:节点弧度(单位:π)\nmatrix:变换矩阵\n自身属性:x,y,parent,children等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelString", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelOffset", void 0); - __decorate([ - property({ displayName: CC_DEV && '······偏移', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelOffset", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelColor", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelSize", void 0); - __decorate([ - property({ displayName: CC_DEV && '······大小', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelSize", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelDigit", void 0); - __decorate([ - property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelDigit", null); - DataBoard = __decorate([ - ccclass, - executeInEditMode, - menu('Comp/DataBoard') - ], DataBoard); - return DataBoard; -}(cc.Component)); -exports.default = DataBoard; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEYXRhQm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF3QmdGO0FBQ2hGLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQWUsT0FBTztBQUM3QyxJQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBZSxhQUFhO0FBQzdDLElBQUEsS0FBaUQsRUFBRSxDQUFDLFVBQVUsRUFBNUQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsaUJBQWlCLHVCQUFBLEVBQUUsSUFBSSxVQUFrQixDQUFDO0FBSXJFO0lBQXVDLDZCQUFZO0lBQW5EO1FBQUEscUVBaVNDO1FBL1JXLHlCQUFtQixHQUFZLEtBQUssQ0FBQztRQVFyQyxzQkFBZ0IsR0FBYSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQVF6Ryx3QkFBa0IsR0FBVyxHQUFHLENBQUM7UUFRakMseUJBQW1CLEdBQVksSUFBSSxDQUFDO1FBUXBDLHNCQUFnQixHQUFhLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBUXpHLHdCQUFrQixHQUFXLEdBQUcsQ0FBQztRQVFqQywwQkFBb0IsR0FBWSxJQUFJLENBQUM7UUFRckMseUJBQW1CLEdBQVcsRUFBRSxDQUFDO1FBRWpDLHdCQUFrQixH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QU8sZ0JBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvREFDakM7SUFROUQ7UUFEQyxRQUFRO3dEQUM2QjtJQUV0QztRQURDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSSxZQUFZLEVBQUUsT0FBTyxnQkFBSyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO3FEQUN4RTtJQW5HL0MsU0FBUztRQUg3QixPQUFPO1FBQ1AsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztPQUNGLFNBQVMsQ0FpUzdCO0lBQUQsZ0JBQUM7Q0FqU0QsQUFpU0MsQ0FqU3NDLEVBQUUsQ0FBQyxTQUFTLEdBaVNsRDtrQkFqU29CLFNBQVMiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiDliJvlu7o6ICAgIDIwMjLlubQxMeaciDIz5pelXHJcbiAqIOS9nOiAhTogICAg5rC054Wu6IKJ54mH6aWtKDI3MTg1NzA5QHFxLmNvbSlcclxuICog5o+P6L+wOiAgICDmlbDmja7nnIvmnb9cclxuICog6IqC54K55oyC5LiK6K+l57uE5Lu277yM5bCx5Y+v5Lul5Zyo5ri45oiP6L+Q6KGM6L+H56iL5Lit77yM55u06KeC55yL5Yiw6IqC54K55Lu75oSP5bGe5oCn77yI5YyF5ous6IqC54K56ISa5pys5Lit55qE5bGe5oCn77yJXHJcbiAqIOWPr+S7peWbvuW9ouWMluWxleekuuS7peS4i+Wbm+enjeaVsOaNru+8mlxyXG4gKiAgICAgICAgICDova7lu5Pnm5LlrZDvvJogICAgICAgICAg6ZqP6IqC54K55peL6L2s77yM5Luj6KGo6IqC54K555qE5a6e5pe255+p5b2iXHJcbiAqICAgICAgICAgIOeisOaSnuebkuWtkO+8miAgICAgICAgICDkuI3pmo/oioLngrnml4vovazvvIzkuIDoiKzku6PooajnorDmkp7ojIPlm7RcclxuICogICAgICAgICAg6Ieq5a6a5LmJ5Y+C5pWw77yaICAgICAgICDoioLngrnoh6rouqvlsZ7mgKfvvIzku6Xlj4roioLngrnku7vmhI/ohJrmnKzkuK3nmoTlsZ7mgKdcclxuICogICAgICAgICAg6ZSa54K577yaICAgICAgICAgICAgIOmUmueCueS9jee9ruS8muaYvuekuuS4gOS4quWwj+e6oueCuVxyXG4gKiDoh6rlrprkuYnlj4LmlbDvvIjphY3nva7mg7Pnm5HmjqfnmoTmlbDmja7vvInvvJpcclxuICogICAgICAgICAgd3DvvJogICAgICAgICAgICAgICDkuJbnlYzlnZDmoIdcclxuICogICAgICAgICAgcmFkaWFu77yaICAgICAgICAgICDoioLngrnlvKfluqbvvIjljZXkvY3vvJrPgO+8iVxyXG4gKiAgICAgICAgICBtYXRyaXg6ICAgICAgICAgICAg5Y+Y5o2i55+p6Zi1XHJcbiAqICAgICAgICAgIOiHqui6q+WxnuaAp++8miAgICAgICAgICB4LHkscGFyZW50LGNoaWxkcmVu562JXHJcbiAqICAgICAgICAgIOiEmuacrOWxnuaAp++8miAgICAgICAgICDohJrmnKzlrp7kvovlr7nosaHnmoTlsZ7mgKdcclxuICog4oaT4oaT5Y+C5pWw5Y+v5Lul55SoM+enjeWIhumalOespumalOW8gOKGk+KGk1xyXG4gKiAgICAgICAgICDoi7HmlofpgJflj7fjgIHoi7HmloflhpLlj7fjgIHnqbrmoLxcclxuICog4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5Li+5Liq5qCX5a2Q4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCUXHJcbiAqIOiEmuacrO+8miAgICBIZXJvXHJcbiAqIOWPguaVsO+8miAgICB3cCxzY2FsZSxhbmdsZSwjYW5nbGUsI2hwXHJcbiAqIOaYvuekuue7k+aenO+8muS4lueVjOWdkOaghyzoioLngrlzY2FsZSzoioLngrlhbmdsZe+8jEhlcm/lr7nosaHnmoRhbmdsZSxIZXJv5a+56LGh55qEaHBcclxuICog4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5rip6aao5o+Q56S64oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCUXHJcbiAqIOWIneWni+WMlueahOaXtuWAme+8jOiuvue9ruWFqOWxgOWPmOmHj3dpbmRvd1snREFUQUJPQVJEJ10gPSBmYWxzZeWPr+Wxj+iUveacrOmhueebruaJgOaciURhdGFCb2FyZO+8jOS4jeS8muS6p+eUn+S7u+S9lemineWkluW8gOmUgFxcblxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG53aW5kb3dbJ0RBVEFCT0FSRCddID0gdHJ1ZTtcclxuY29uc3QgQU5DSE9SX1NJWkUgPSAyMDsgICAgICAgICAgICAgICAvL+mUmueCueeahOWkp+Wwj1xyXG5jb25zdCBMSU5FSEVJR0hUID0gMS4yOyAgICAgICAgICAgICAgIC8v6KGM6auY5piv5a2X5L2T5aSn5bCP55qE5aSa5bCR5YCNXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHksIGV4ZWN1dGVJbkVkaXRNb2RlLCBtZW51IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5AY2NjbGFzc1xyXG5AZXhlY3V0ZUluRWRpdE1vZGVcclxuQG1lbnUoJ0NvbXAvRGF0YUJvYXJkJylcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YUJvYXJkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNPdXRsaW5lQm94QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfova7lu5Pnm5LlrZAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+maj+iKgueCueaXi+i9rO+8jOS7o+ihqOWunuaXtui9ruW7kycgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzT3V0bGluZUJveEFjdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzT3V0bGluZUJveEFjdGl2ZSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgaXNPdXRsaW5lQm94QWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNPdXRsaW5lQm94QWN0aXZlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hY3RpdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfb3V0bGluZUJveENvbG9yOiBjYy5Db2xvciA9IG5ldyBjYy5Db2xvcihNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+minOiJsicsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBvdXRsaW5lQm94Q29sb3IoKSB7IHJldHVybiB0aGlzLl9vdXRsaW5lQm94Q29sb3IgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94Q29sb3IgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmNvbG9yID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX291dGxpbmVCb3hPcGFjaXR5OiBudW1iZXIgPSAxMDA7XHJcbiAgICBAcHJvcGVydHkoeyBtaW46IDAsIG1heDogMjU1LCBzdGVwOiAxLCBzbGlkZTogdHJ1ZSwgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36YCP5piO5bqmJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNPdXRsaW5lQm94QWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IG91dGxpbmVCb3hPcGFjaXR5KCkgeyByZXR1cm4gdGhpcy5fb3V0bGluZUJveE9wYWNpdHkgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hPcGFjaXR5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94T3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUub3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9pc0NvbGxpZGVCb3hBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn56Kw5pKe55uS5a2QJywgdG9vbHRpcDogQ0NfREVWICYmICfkuI3pmo/oioLngrnml4vovazvvIzku6PooajnorDmkp7ojIPlm7QnIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc0NvbGxpZGVCb3hBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0NvbGxpZGVCb3hBY3RpdmUgfTtcclxuICAgIHByaXZhdGUgc2V0IGlzQ29sbGlkZUJveEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzQ29sbGlkZUJveEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWN0aXZlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2NvbGxpZGVCb3hDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpopzoibInLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY29sbGlkZUJveENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY29sbGlkZUJveENvbG9yIH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94Q29sb3IodmFsdWU6IGNjLkNvbG9yKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5jb2xvciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jb2xsaWRlQm94T3BhY2l0eTogbnVtYmVyID0gMTAwO1xyXG4gICAgQHByb3BlcnR5KHsgbWluOiAwLCBtYXg6IDI1NSwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+mAj+aYjuW6picsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ29sbGlkZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjb2xsaWRlQm94T3BhY2l0eSgpIHsgcmV0dXJuIHRoaXMuX2NvbGxpZGVCb3hPcGFjaXR5IH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94T3BhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveE9wYWNpdHkgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLm9wYWNpdHkgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNDdXN0b21MYWJlbEFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfoh6rlrprkuYnlj4LmlbAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+mFjee9ruaYvuekuueahOWxnuaAp+WGheWuuScgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzQ3VzdG9tTGFiZWxBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0N1c3RvbUxhYmVsQWN0aXZlIH07XHJcbiAgICBwcml2YXRlIHNldCBpc0N1c3RvbUxhYmVsQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNDdXN0b21MYWJlbEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36ISa5pysJywgdG9vbHRpcDogQ0NfREVWICYmICfnm5Hmjqflk6rkuKrohJrmnKwnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlOyB9IH0pXHJcbiAgICBwcml2YXRlIGN1c3RvbUNvbXBvbmVudE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbFN0cmluZzogc3RyaW5nID0gJ3gseSc7XHJcbiAgICBAcHJvcGVydHkoeyBtdWx0aWxpbmU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+WPguaVsCcsIHRvb2x0aXA6IENDX0RFViAmJiBcIuKAlOKAlOKAlOKAlOKAlOaUr+aMgeeahOWPguaVsOKAlOKAlOKAlOKAlFxcbndw77ya5LiW55WM5Z2Q5qCHXFxucmFkaWFu77ya6IqC54K55byn5bqm77yI5Y2V5L2N77yaz4DvvIlcXG5tYXRyaXjvvJrlj5jmjaLnn6npmLVcXG7oh6rouqvlsZ7mgKfvvJp4LHkscGFyZW50LGNoaWxkcmVu562JXFxu6ISa5pys5bGe5oCn77ya6ISa5pys5a6e5L6L5a+56LGh55qE5bGe5oCnXFxu4oaT4oaT5Y+C5pWw5Y+v5Lul55SoM+enjeWIhumalOespumalOW8gOKGk+KGk1xcbuiLseaWh+mAl+WPt+OAgeiLseaWh+WGkuWPt+OAgeepuuagvFxcbuKAlOKAlOKAlOKAlOS4vuS4quagl+WtkOKAlOKAlOKAlOKAlFxcbuiEmuacrO+8mkhlcm9cXG7lj4LmlbDvvJp3cCxzY2FsZSxhbmdsZSwjYW5nbGUsI2hwXFxu5pi+56S657uT5p6c77yaXFxu5LiW55WM5Z2Q5qCHLOiKgueCuXNjYWxlLOiKgueCuWFuZ2xl77yMSGVyb+WvueixoeeahGFuZ2xlLEhlcm/lr7nosaHnmoRocFxcbuKAlOKAlOKAlOKAlOa4qemmqOaPkOekuuKAlOKAlOKAlOKAlFxcbuWIneWni+WMlueahOaXtuWAme+8jOiuvue9ruWFqOWxgOWPmOmHj1xcbndpbmRvd1snREFUQUJPQVJEJ10gPSBmYWxzZVxcbuWPr+Wxj+iUveacrOmhueebruaJgOaciURhdGFCb2FyZO+8jOS4jeS8muS6p+eUn+S7u+S9lemineWkluW8gOmUgFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsU3RyaW5nKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTdHJpbmcgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbFN0cmluZyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdCA9IHZhbHVlXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC8sfO+8jC9nLCAnX35fJykucmVwbGFjZSgvOnzvvJovZywgJ18hXycpLnJlcGxhY2UoLyB8XFx0L2csICdfQF8nKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvXypcXG5fKi9nLCAnX1xcbl8nKS5zcGxpdCgnXycpO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbE9mZnNldDogY2MuVmVjMiA9IGNjLnYyKDAsIDEwMCk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflgY/np7snLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsT2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsT2Zmc2V0KHZhbHVlOiBjYy5WZWMyKSB7XHJcbiAgICAgICAgdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdmFsdWUueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdmFsdWUueTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoMjU1LCAyNTUsIDApO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjdXN0b21MYWJlbENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTaXplOiBudW1iZXIgPSA2MDtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wkp+WwjycsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTaXplKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTaXplIH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbFNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuZm9udFNpemUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLmxpbmVIZWlnaHQgPSB2YWx1ZSAqIExJTkVIRUlHSFQ7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuZ2V0Q29tcG9uZW50KGNjLkxhYmVsT3V0bGluZSkud2lkdGggPSB2YWx1ZSAqIDAuMTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxEaWdpdDogbnVtYmVyID0gMDtcclxuICAgIEBwcm9wZXJ0eSh7IG1pbjogMCwgbWF4OiAxMCwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wwj+aVsOS9jeaVsCcsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxEaWdpdCgpIHsgcmV0dXJuIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsRGlnaXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgYm9hcmROb2RlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByaXZhdGUgb3V0bGluZUJveE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjb2xsaWRlQm94Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuY2hvclBvaW50Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsU3RyaW5nU3BsaXQ6IHN0cmluZ1tdID0gbnVsbDtcclxuICAgIHByaXZhdGUgbW9uaXRvckNvbXA6IGNjLkNvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gICAgcHJvdGVjdGVkIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdEYXRhQm9hcmQnKTtcclxuICAgICAgICBpZiAoIUNDX0VESVRPUiAmJiAhd2luZG93WydEQVRBQk9BUkQnXSkge1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLmJvYXJkTm9kZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5ib2FyZE5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZXh0dXJlID0gbmV3IGNjLlRleHR1cmUyRCgpO1xyXG4gICAgICAgIHRleHR1cmUuaW5pdFdpdGhEYXRhKG5ldyBVaW50OEFycmF5KFsyNTUsIDI1NSwgMjU1XSksIGNjLlRleHR1cmUyRC5QaXhlbEZvcm1hdC5SR0I4ODgsIDEsIDEpO1xyXG5cclxuICAgICAgICB0aGlzLmJvYXJkTm9kZSA9IG5ldyBjYy5Ob2RlKCdEYXRhQm9hcmQnKTtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS5zZXRQYXJlbnQodGhpcy5ub2RlKTtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS54ID0gdGhpcy5ib2FyZE5vZGUueSA9IDA7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuekluZGV4ID0gY2MubWFjcm8uTUFYX1pJTkRFWDtcclxuICAgICAgICAvLyB0aGlzLmJvYXJkTm9kZVsnX29iakZsYWdzJ10gfD0gY2MuT2JqZWN0WydGbGFncyddLkhpZGVJbkhpZXJhcmNoeTtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZVsnX29iakZsYWdzJ10gfD0gY2MuT2JqZWN0WydGbGFncyddLkxvY2tlZEluRWRpdG9yO1xyXG5cclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlID0gbmV3IGNjLk5vZGUoJ091dGxpbmVCb3gnKTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFjdGl2ZSA9IHRoaXMuaXNPdXRsaW5lQm94QWN0aXZlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuY29sb3IgPSB0aGlzLm91dGxpbmVCb3hDb2xvcjtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLm9wYWNpdHkgPSB0aGlzLm91dGxpbmVCb3hPcGFjaXR5O1xyXG5cclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlID0gbmV3IGNjLk5vZGUoJ0NvbGxpZGVCb3gnKTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFjdGl2ZSA9IHRoaXMuaXNDb2xsaWRlQm94QWN0aXZlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuY29sb3IgPSB0aGlzLmNvbGxpZGVCb3hDb2xvcjtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLm9wYWNpdHkgPSB0aGlzLmNvbGxpZGVCb3hPcGFjaXR5O1xyXG5cclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZSA9IG5ldyBjYy5Ob2RlKCdBbmNob3JQb2ludCcpO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuY29sb3IgPSBjYy5jb2xvcigyNTUsIDAsIDApO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLndpZHRoID0gQU5DSE9SX1NJWkU7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuaGVpZ2h0ID0gQU5DSE9SX1NJWkU7XHJcblxyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlID0gbmV3IGNjLk5vZGUoJ0N1c3RvbUxhYmVsJyk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsID0gdGhpcy5jdXN0b21MYWJlbE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWxPdXRsaW5lKS5jb2xvciA9IGNjLmNvbG9yKDAsIDAsIDApO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFjdGl2ZSA9IHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsU3RyaW5nID0gdGhpcy5fY3VzdG9tTGFiZWxTdHJpbmc7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUueCA9IHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdGhpcy5jdXN0b21MYWJlbE9mZnNldC55O1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmNvbG9yID0gdGhpcy5jdXN0b21MYWJlbENvbG9yO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxTaXplID0gdGhpcy5fY3VzdG9tTGFiZWxTaXplO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUFuZ2xlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTY2FsZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQW5jaG9yKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlJPVEFUSU9OX0NIQU5HRUQsIHRoaXMudXBkYXRlQW5nbGUsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5TQ0FMRV9DSEFOR0VELCB0aGlzLnVwZGF0ZVNjYWxlLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuQU5DSE9SX0NIQU5HRUQsIHRoaXMudXBkYXRlQW5jaG9yLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuU0laRV9DSEFOR0VELCB0aGlzLnVwZGF0ZVNpemUsIHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQW5nbGUoKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hbmdsZSA9IC10aGlzLm5vZGUuYW5nbGU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuYW5nbGUgPSAtdGhpcy5ub2RlLmFuZ2xlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlU2NhbGUoKSB7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuc2NhbGVYID0gMSAvIHRoaXMubm9kZS5zY2FsZVg7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuc2NhbGVZID0gMSAvIHRoaXMubm9kZS5zY2FsZVk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5zY2FsZVggPSB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuc2NhbGVZID0gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLnNjYWxlWCA9IHRoaXMubm9kZS5zY2FsZVg7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5zY2FsZVkgPSB0aGlzLm5vZGUuc2NhbGVZO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQW5jaG9yKCkge1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYW5jaG9yWCA9IHRoaXMubm9kZS5hbmNob3JYO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYW5jaG9yWSA9IHRoaXMubm9kZS5hbmNob3JZO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYW5jaG9yWCA9IHRoaXMubm9kZS5hbmNob3JYO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYW5jaG9yWSA9IHRoaXMubm9kZS5hbmNob3JZO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlU2l6ZSgpIHtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLndpZHRoID0gdGhpcy5ub2RlLndpZHRoO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuaGVpZ2h0ID0gdGhpcy5ub2RlLmhlaWdodDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLndpZHRoID0gdGhpcy5ub2RlLndpZHRoO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuaGVpZ2h0ID0gdGhpcy5ub2RlLmhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgdXBkYXRlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbUxhYmVsU3RyaW5nU3BsaXQpIHJldHVybjtcclxuICAgICAgICBsZXQgcmFkaWFuID0gLXRoaXMubm9kZS5hbmdsZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICAgICAgbGV0IGNvcyA9IE1hdGguY29zKHJhZGlhbik7XHJcbiAgICAgICAgbGV0IHNpbiA9IE1hdGguc2luKHJhZGlhbik7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUueCA9IHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueCAqIGNvcyAtIHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueSAqIHNpbjtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdGhpcy5jdXN0b21MYWJlbE9mZnNldC54ICogc2luICsgdGhpcy5jdXN0b21MYWJlbE9mZnNldC55ICogY29zO1xyXG4gICAgICAgIGxldCBzdHIgPSAnJztcclxuICAgICAgICBsZXQgc3RycyA9IHRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdDtcclxuICAgICAgICBpZiAoIXRoaXMubW9uaXRvckNvbXAgJiYgdGhpcy5jdXN0b21Db21wb25lbnROYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9uaXRvckNvbXAgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KHRoaXMuY3VzdG9tQ29tcG9uZW50TmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzdHJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgIGxldCB0bXAgPSBudWxsO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHN0cnNbaV0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3dwJzpcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbWF0cml4ID0gdGhpcy5ub2RlWydfd29ybGRNYXRyaXgnXS5tO1xyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9IGAke21hdHJpeFsxMl0udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpfSxcXHQke21hdHJpeFsxM10udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhbmdsZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5ub2RlLmFuZ2xlLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfCsCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyYWRpYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICh0aGlzLm5vZGUuYW5nbGUgLyAxODApLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfPgCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdtYXRyaXgnOlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdHJpeCA9IHRoaXMubm9kZVsnX3dvcmxkTWF0cml4J10ubTtcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7ICsraSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDQ7ICsraikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSBtYXRyaXhbaiAqIDQgKyBpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSAobSA8IDAgPyAnXFx0XFx0JyA6ICdcXHRcXHRcXHQnKSArIG0udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGkgIT09IDMgJiYgKHRtcCArPSAnXFxuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLm5vZGUuY2hpbGRyZW5Db3VudDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSBgXFx0XFx0XFx0JHtpfe+8miR7dGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWV9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaSAhPT0gbGVuIC0gMSAmJiAodG1wICs9ICdcXG4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd+JzogdG1wID0gJyxcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJyEnOiB0bXAgPSAnOlxcdCc7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnQCc6IHRtcCA9ICdcXHRcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZVtzdHJzW2ldXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRoaXMubm9kZVtzdHJzW2ldXTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cnNbaV0uc3RhcnRzV2l0aCgnIycpICYmIHRoaXMubW9uaXRvckNvbXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5wYXJzZVN0cmluZyhzdHJzW2ldLnN1YnN0cmluZygxKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gc3Ryc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0bXAgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRtcC50b0ZpeGVkKHRoaXMuY3VzdG9tTGFiZWxEaWdpdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0bXAubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0bXAubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3RyICs9IHRtcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbC5zdHJpbmcgPSBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZVN0cmluZyhzdHI6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBzdHJzID0gc3RyLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgbGV0IHJldCA9IHRoaXMubW9uaXRvckNvbXBbc3Ryc1swXV07XHJcbiAgICAgICAgcmV0ID09PSB1bmRlZmluZWQgJiYgKHJldCA9IGAjJHtzdHJzWzBdfWApO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxLCBsZW4gPSBzdHJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXRbc3Ryc1tpXV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3JldC5uYW1lID8gcmV0Lm5hbWUgOiByZXR9LiR7c3Ryc1tpXX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldCA9IHJldFtzdHJzW2ldXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmIChjYy5pc1ZhbGlkKHRoaXMuYm9hcmROb2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub2RlLnRhcmdldE9mZih0aGlzKTtcclxuICAgIH1cclxufSJdfQ== -//------QC-SOURCE-SPLIT------ diff --git a/temp/quick-scripts/dst/__qc_index__.js b/temp/quick-scripts/dst/__qc_index__.js deleted file mode 100644 index d087549..0000000 --- a/temp/quick-scripts/dst/__qc_index__.js +++ /dev/null @@ -1,25 +0,0 @@ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/__qc_index__.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);} -require('./assets/Script/DataBoard'); -require('./assets/Script/Hero'); - - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); \ No newline at end of file diff --git a/temp/quick-scripts/dst/__quick_compile__.js b/temp/quick-scripts/dst/__quick_compile__.js deleted file mode 100644 index 1d89583..0000000 --- a/temp/quick-scripts/dst/__quick_compile__.js +++ /dev/null @@ -1,267 +0,0 @@ - -(function () { -var scripts = [{"deps":{"./assets/Script/DataBoard":2,"./assets/Script/Hero":1},"path":"preview-scripts/__qc_index__.js"},{"deps":{},"path":"preview-scripts/assets/Script/Hero.js"},{"deps":{},"path":"preview-scripts/assets/Script/DataBoard.js"}]; -var entries = ["preview-scripts/__qc_index__.js"]; -var bundleScript = 'preview-scripts/__qc_bundle__.js'; - -/** - * Notice: This file can not use ES6 (for IE 11) - */ -var modules = {}; -var name2path = {}; - -// Will generated by module.js plugin -// var scripts = ${scripts}; -// var entries = ${entries}; -// var bundleScript = ${bundleScript}; - -if (typeof global === 'undefined') { - window.global = window; -} - -var isJSB = typeof jsb !== 'undefined'; - -function getXMLHttpRequest () { - return window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject('MSXML2.XMLHTTP'); -} - -function downloadText(url, callback) { - if (isJSB) { - var result = jsb.fileUtils.getStringFromFile(url); - callback(null, result); - return; - } - - var xhr = getXMLHttpRequest(), - errInfo = 'Load text file failed: ' + url; - xhr.open('GET', url, true); - if (xhr.overrideMimeType) xhr.overrideMimeType('text\/plain; charset=utf-8'); - xhr.onload = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || xhr.status === 0) { - callback(null, xhr.responseText); - } - else { - callback({status:xhr.status, errorMessage:errInfo + ', status: ' + xhr.status}); - } - } - else { - callback({status:xhr.status, errorMessage:errInfo + '(wrong readyState)'}); - } - }; - xhr.onerror = function(){ - callback({status:xhr.status, errorMessage:errInfo + '(error)'}); - }; - xhr.ontimeout = function(){ - callback({status:xhr.status, errorMessage:errInfo + '(time out)'}); - }; - xhr.send(null); -}; - -function loadScript (src, cb) { - if (typeof require !== 'undefined') { - require(src); - return cb(); - } - - // var timer = 'load ' + src; - // console.time(timer); - - var scriptElement = document.createElement('script'); - - function done() { - // console.timeEnd(timer); - // deallocation immediate whatever - scriptElement.remove(); - } - - scriptElement.onload = function () { - done(); - cb(); - }; - scriptElement.onerror = function () { - done(); - var error = 'Failed to load ' + src; - console.error(error); - cb(new Error(error)); - }; - scriptElement.setAttribute('type','text/javascript'); - scriptElement.setAttribute('charset', 'utf-8'); - scriptElement.setAttribute('src', src); - - document.head.appendChild(scriptElement); -} - -function loadScripts (srcs, cb) { - var n = srcs.length; - - srcs.forEach(function (src) { - loadScript(src, function () { - n--; - if (n === 0) { - cb(); - } - }); - }) -} - -function formatPath (path) { - let destPath = window.__quick_compile_project__.destPath; - if (destPath) { - let prefix = 'preview-scripts'; - if (destPath[destPath.length - 1] === '/') { - prefix += '/'; - } - path = path.replace(prefix, destPath); - } - return path; -} - -window.__quick_compile_project__ = { - destPath: '', - - registerModule: function (path, module) { - path = formatPath(path); - modules[path].module = module; - }, - - registerModuleFunc: function (path, func) { - path = formatPath(path); - modules[path].func = func; - - var sections = path.split('/'); - var name = sections[sections.length - 1]; - name = name.replace(/\.(?:js|ts|json)$/i, ''); - name2path[name] = path; - }, - - require: function (request, path) { - var m, requestScript; - - path = formatPath(path); - if (path) { - m = modules[path]; - if (!m) { - console.warn('Can not find module for path : ' + path); - return null; - } - } - - if (m) { - let depIndex = m.deps[request]; - // dependence script was excluded - if (depIndex === -1) { - return null; - } - else { - requestScript = scripts[ m.deps[request] ]; - } - } - - let requestPath = ''; - if (!requestScript) { - // search from name2path when request is a dynamic module name - if (/^[\w- .]*$/.test(request)) { - requestPath = name2path[request]; - } - - if (!requestPath) { - if (CC_JSB) { - return require(request); - } - else { - console.warn('Can not find deps [' + request + '] for path : ' + path); - return null; - } - } - } - else { - requestPath = formatPath(requestScript.path); - } - - let requestModule = modules[requestPath]; - if (!requestModule) { - console.warn('Can not find request module for path : ' + requestPath); - return null; - } - - if (!requestModule.module && requestModule.func) { - requestModule.func(); - } - - if (!requestModule.module) { - console.warn('Can not find requestModule.module for path : ' + path); - return null; - } - - return requestModule.module.exports; - }, - - run: function () { - entries.forEach(function (entry) { - entry = formatPath(entry); - var module = modules[entry]; - if (!module.module) { - module.func(); - } - }); - }, - - load: function (cb) { - var self = this; - - var srcs = scripts.map(function (script) { - var path = formatPath(script.path); - modules[path] = script; - - if (script.mtime) { - path += ("?mtime=" + script.mtime); - } - return path; - }); - - console.time && console.time('load __quick_compile_project__'); - // jsb can not analysis sourcemap, so keep separate files. - if (bundleScript && !isJSB) { - downloadText(formatPath(bundleScript), function (err, bundleSource) { - console.timeEnd && console.timeEnd('load __quick_compile_project__'); - if (err) { - console.error(err); - return; - } - - let evalTime = 'eval __quick_compile_project__ : ' + srcs.length + ' files'; - console.time && console.time(evalTime); - var sources = bundleSource.split('\n//------QC-SOURCE-SPLIT------\n'); - for (var i = 0; i < sources.length; i++) { - if (sources[i]) { - window.eval(sources[i]); - // not sure why new Function cannot set breakpoints precisely - // new Function(sources[i])() - } - } - self.run(); - console.timeEnd && console.timeEnd(evalTime); - cb(); - }) - } - else { - loadScripts(srcs, function () { - self.run(); - console.timeEnd && console.timeEnd('load __quick_compile_project__'); - cb(); - }); - } - } -}; - -// Polyfill for IE 11 -if (!('remove' in Element.prototype)) { - Element.prototype.remove = function () { - if (this.parentNode) { - this.parentNode.removeChild(this); - } - }; -} -})(); - \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/DataBoard.js b/temp/quick-scripts/dst/assets/Script/DataBoard.js deleted file mode 100644 index 829b3d4..0000000 --- a/temp/quick-scripts/dst/assets/Script/DataBoard.js +++ /dev/null @@ -1,487 +0,0 @@ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/DataBoard.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '1c152bUhQpJ6J1jGhQVUYf8', 'DataBoard'); -// Script/DataBoard.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -/******************************************************************************* - * 创建: 2022年11月23日 - * 作者: 水煮肉片饭(27185709@qq.com) - * 描述: 数据看板 - * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性) - * 可以图形化展示以下四种数据: - * 轮廓盒子: 随节点旋转,代表节点的实时矩形 - * 碰撞盒子: 不随节点旋转,一般代表碰撞范围 - * 自定义参数: 节点自身属性,以及节点任意脚本中的属性 - * 锚点: 锚点位置会显示一个小红点 - * 自定义参数(配置想监控的数据): - * wp: 世界坐标 - * radian: 节点弧度(单位:π) - * matrix: 变换矩阵 - * 自身属性: x,y,parent,children等 - * 脚本属性: 脚本实例对象的属性 - * ↓↓参数可以用3种分隔符隔开↓↓ - * 英文逗号、英文冒号、空格 - * ————————————————————————举个栗子———————————————————————— - * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp - * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp - * ————————————————————————温馨提示———————————————————————— - * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n -*******************************************************************************/ -window['DATABOARD'] = true; -var ANCHOR_SIZE = 20; //锚点的大小 -var LINEHEIGHT = 1.2; //行高是字体大小的多少倍 -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, executeInEditMode = _a.executeInEditMode, menu = _a.menu; -var DataBoard = /** @class */ (function (_super) { - __extends(DataBoard, _super); - function DataBoard() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._isOutlineBoxActive = false; - _this._outlineBoxColor = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255); - _this._outlineBoxOpacity = 100; - _this._isCollideBoxActive = true; - _this._collideBoxColor = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255); - _this._collideBoxOpacity = 100; - _this._isCustomLabelActive = true; - _this.customComponentName = ''; - _this._customLabelString = 'x,y'; - _this._customLabelOffset = cc.v2(0, 100); - _this._customLabelColor = new cc.Color(255, 255, 0); - _this._customLabelSize = 60; - _this._customLabelDigit = 0; - _this.boardNode = null; - _this.outlineBoxNode = null; - _this.collideBoxNode = null; - _this.anchorPointNode = null; - _this.customLabelNode = null; - _this.customLabel = null; - _this.customLabelStringSplit = null; - _this.monitorComp = null; - return _this; - } - Object.defineProperty(DataBoard.prototype, "isOutlineBoxActive", { - get: function () { return this._isOutlineBoxActive; }, - set: function (value) { - this._isOutlineBoxActive = value; - this.outlineBoxNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "outlineBoxColor", { - get: function () { return this._outlineBoxColor; }, - set: function (value) { - this._outlineBoxColor = value; - this.outlineBoxNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "outlineBoxOpacity", { - get: function () { return this._outlineBoxOpacity; }, - set: function (value) { - this._outlineBoxOpacity = value; - this.outlineBoxNode.opacity = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "isCollideBoxActive", { - get: function () { return this._isCollideBoxActive; }, - set: function (value) { - this._isCollideBoxActive = value; - this.collideBoxNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "collideBoxColor", { - get: function () { return this._collideBoxColor; }, - set: function (value) { - this._collideBoxColor = value; - this.collideBoxNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "collideBoxOpacity", { - get: function () { return this._collideBoxOpacity; }, - set: function (value) { - this._collideBoxOpacity = value; - this.collideBoxNode.opacity = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "isCustomLabelActive", { - get: function () { return this._isCustomLabelActive; }, - set: function (value) { - this._isCustomLabelActive = value; - this.customLabelNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelString", { - get: function () { return this._customLabelString; }, - set: function (value) { - this._customLabelString = value; - this.customLabelStringSplit = value - .replace(/,|,/g, '_~_').replace(/:|:/g, '_!_').replace(/ |\t/g, '_@_') - .replace(/_*\n_*/g, '_\n_').split('_'); - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelOffset", { - get: function () { return this._customLabelOffset; }, - set: function (value) { - this._customLabelOffset = value; - this.customLabelNode.x = value.x; - this.customLabelNode.y = value.y; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelColor", { - get: function () { return this._customLabelColor; }, - set: function (value) { - this._customLabelColor = value; - this.customLabelNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelSize", { - get: function () { return this._customLabelSize; }, - set: function (value) { - this._customLabelSize = value; - this.customLabel.fontSize = value; - this.customLabel.lineHeight = value * LINEHEIGHT; - this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelDigit", { - get: function () { return this._customLabelDigit; }, - set: function (value) { - this._customLabelDigit = value; - }, - enumerable: false, - configurable: true - }); - ; - DataBoard.prototype.start = function () { - this.boardNode = this.node.getChildByName('DataBoard'); - if (!CC_EDITOR && !window['DATABOARD']) { - this.destroy(); - return; - } - if (cc.isValid(this.boardNode)) { - this.boardNode.removeFromParent(); - this.boardNode.destroy(); - } - var texture = new cc.Texture2D(); - texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1); - this.boardNode = new cc.Node('DataBoard'); - this.boardNode.setParent(this.node); - this.boardNode.x = this.boardNode.y = 0; - this.boardNode.zIndex = cc.macro.MAX_ZINDEX; - // this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy; - this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor; - this.outlineBoxNode = new cc.Node('OutlineBox'); - this.outlineBoxNode.setParent(this.boardNode); - this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.outlineBoxNode.active = this.isOutlineBoxActive; - this.outlineBoxNode.color = this.outlineBoxColor; - this.outlineBoxNode.opacity = this.outlineBoxOpacity; - this.collideBoxNode = new cc.Node('CollideBox'); - this.collideBoxNode.setParent(this.boardNode); - this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.collideBoxNode.active = this.isCollideBoxActive; - this.collideBoxNode.color = this.collideBoxColor; - this.collideBoxNode.opacity = this.collideBoxOpacity; - this.anchorPointNode = new cc.Node('AnchorPoint'); - this.anchorPointNode.setParent(this.boardNode); - this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.anchorPointNode.color = cc.color(255, 0, 0); - this.anchorPointNode.width = ANCHOR_SIZE; - this.anchorPointNode.height = ANCHOR_SIZE; - this.customLabelNode = new cc.Node('CustomLabel'); - this.customLabelNode.setParent(this.boardNode); - this.customLabel = this.customLabelNode.addComponent(cc.Label); - this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0); - this.customLabelNode.active = this.isCustomLabelActive; - this.customLabelString = this._customLabelString; - this.customLabelNode.x = this.customLabelOffset.x; - this.customLabelNode.y = this.customLabelOffset.y; - this.customLabelNode.color = this.customLabelColor; - this.customLabelSize = this._customLabelSize; - this.updateAngle(); - this.updateScale(); - this.updateAnchor(); - this.updateSize(); - this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this); - this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this); - this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this); - this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this); - }; - DataBoard.prototype.updateAngle = function () { - this.collideBoxNode.angle = -this.node.angle; - this.customLabelNode.angle = -this.node.angle; - }; - DataBoard.prototype.updateScale = function () { - this.boardNode.scaleX = 1 / this.node.scaleX; - this.boardNode.scaleY = 1 / this.node.scaleY; - this.outlineBoxNode.scaleX = this.node.scaleX; - this.outlineBoxNode.scaleY = this.node.scaleY; - this.collideBoxNode.scaleX = this.node.scaleX; - this.collideBoxNode.scaleY = this.node.scaleY; - }; - DataBoard.prototype.updateAnchor = function () { - this.outlineBoxNode.anchorX = this.node.anchorX; - this.outlineBoxNode.anchorY = this.node.anchorY; - this.collideBoxNode.anchorX = this.node.anchorX; - this.collideBoxNode.anchorY = this.node.anchorY; - }; - DataBoard.prototype.updateSize = function () { - this.outlineBoxNode.width = this.node.width; - this.outlineBoxNode.height = this.node.height; - this.collideBoxNode.width = this.node.width; - this.collideBoxNode.height = this.node.height; - }; - DataBoard.prototype.update = function () { - if (!this.isCustomLabelActive) - return; - if (!this.customLabelStringSplit) - return; - var radian = -this.node.angle * Math.PI / 180; - var cos = Math.cos(radian); - var sin = Math.sin(radian); - this.customLabelNode.x = this.customLabelOffset.x * cos - this.customLabelOffset.y * sin; - this.customLabelNode.y = this.customLabelOffset.x * sin + this.customLabelOffset.y * cos; - var str = ''; - var strs = this.customLabelStringSplit; - if (!this.monitorComp && this.customComponentName) { - this.monitorComp = this.node.getComponent(this.customComponentName); - } - for (var i = 0, len = strs.length; i < len; ++i) { - var tmp = null; - switch (strs[i]) { - case 'wp': - var matrix = this.node['_worldMatrix'].m; - tmp = matrix[12].toFixed(this.customLabelDigit) + ",\t" + matrix[13].toFixed(this.customLabelDigit); - break; - case 'angle': - tmp = this.node.angle.toFixed(this.customLabelDigit) + '°'; - break; - case 'radian': - tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π'; - break; - case 'matrix': - matrix = this.node['_worldMatrix'].m; - tmp = ''; - for (var i_1 = 0; i_1 < 4; ++i_1) { - for (var j = 0; j < 4; ++j) { - var m = matrix[j * 4 + i_1]; - tmp += (m < 0 ? '\t\t' : '\t\t\t') + m.toFixed(this.customLabelDigit); - } - i_1 !== 3 && (tmp += '\n'); - } - break; - case 'children': - tmp = ''; - for (var i_2 = 0, len_1 = this.node.childrenCount; i_2 < len_1; ++i_2) { - tmp += "\t\t\t" + i_2 + "\uFF1A" + this.node.children[i_2].name; - i_2 !== len_1 - 1 && (tmp += '\n'); - } - break; - case '~': - tmp = ',\t'; - break; - case '!': - tmp = ':\t'; - break; - case '@': - tmp = '\t\t'; - break; - default: - if (this.node[strs[i]] !== undefined) { - tmp = this.node[strs[i]]; - } - else if (strs[i].startsWith('#') && this.monitorComp !== null) { - tmp = this.parseString(strs[i].substring(1)); - } - else { - tmp = strs[i]; - } - if (typeof tmp === 'number') { - tmp = tmp.toFixed(this.customLabelDigit); - } - else if (tmp.name) { - tmp = tmp.name; - } - break; - } - str += tmp; - } - this.customLabel.string = str; - }; - DataBoard.prototype.parseString = function (str) { - var strs = str.split('.'); - var ret = this.monitorComp[strs[0]]; - ret === undefined && (ret = "#" + strs[0]); - for (var i = 1, len = strs.length; i < len; ++i) { - if (ret[strs[i]] === undefined) { - return (ret.name ? ret.name : ret) + "." + strs[i]; - } - ret = ret[strs[i]]; - } - return ret; - }; - DataBoard.prototype.onDestroy = function () { - if (cc.isValid(this.boardNode)) { - this.boardNode.removeFromParent(); - this.boardNode.destroy(); - } - this.node.targetOff(this); - }; - __decorate([ - property - ], DataBoard.prototype, "_isOutlineBoxActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' }) - ], DataBoard.prototype, "isOutlineBoxActive", null); - __decorate([ - property - ], DataBoard.prototype, "_outlineBoxColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isOutlineBoxActive; } }) - ], DataBoard.prototype, "outlineBoxColor", null); - __decorate([ - property - ], DataBoard.prototype, "_outlineBoxOpacity", void 0); - __decorate([ - property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible: function () { return this.isOutlineBoxActive; } }) - ], DataBoard.prototype, "outlineBoxOpacity", null); - __decorate([ - property - ], DataBoard.prototype, "_isCollideBoxActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' }) - ], DataBoard.prototype, "isCollideBoxActive", null); - __decorate([ - property - ], DataBoard.prototype, "_collideBoxColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isCollideBoxActive; } }) - ], DataBoard.prototype, "collideBoxColor", null); - __decorate([ - property - ], DataBoard.prototype, "_collideBoxOpacity", void 0); - __decorate([ - property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible: function () { return this.isCollideBoxActive; } }) - ], DataBoard.prototype, "collideBoxOpacity", null); - __decorate([ - property - ], DataBoard.prototype, "_isCustomLabelActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' }) - ], DataBoard.prototype, "isCustomLabelActive", null); - __decorate([ - property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customComponentName", void 0); - __decorate([ - property - ], DataBoard.prototype, "_customLabelString", void 0); - __decorate([ - property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:节点弧度(单位:π)\nmatrix:变换矩阵\n自身属性:x,y,parent,children等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelString", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelOffset", void 0); - __decorate([ - property({ displayName: CC_DEV && '······偏移', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelOffset", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelColor", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelSize", void 0); - __decorate([ - property({ displayName: CC_DEV && '······大小', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelSize", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelDigit", void 0); - __decorate([ - property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelDigit", null); - DataBoard = __decorate([ - ccclass, - executeInEditMode, - menu('Comp/DataBoard') - ], DataBoard); - return DataBoard; -}(cc.Component)); -exports.default = DataBoard; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxEYXRhQm9hcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF3QmdGO0FBQ2hGLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDM0IsSUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQWUsT0FBTztBQUM3QyxJQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBZSxhQUFhO0FBQzdDLElBQUEsS0FBaUQsRUFBRSxDQUFDLFVBQVUsRUFBNUQsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFBLEVBQUUsaUJBQWlCLHVCQUFBLEVBQUUsSUFBSSxVQUFrQixDQUFDO0FBSXJFO0lBQXVDLDZCQUFZO0lBQW5EO1FBQUEscUVBaVNDO1FBL1JXLHlCQUFtQixHQUFZLEtBQUssQ0FBQztRQVFyQyxzQkFBZ0IsR0FBYSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQVF6Ryx3QkFBa0IsR0FBVyxHQUFHLENBQUM7UUFRakMseUJBQW1CLEdBQVksSUFBSSxDQUFDO1FBUXBDLHNCQUFnQixHQUFhLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBUXpHLHdCQUFrQixHQUFXLEdBQUcsQ0FBQztRQVFqQywwQkFBb0IsR0FBWSxJQUFJLENBQUM7UUFRckMseUJBQW1CLEdBQVcsRUFBRSxDQUFDO1FBRWpDLHdCQUFrQixH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QU8sZ0JBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUEsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvREFDakM7SUFROUQ7UUFEQyxRQUFRO3dEQUM2QjtJQUV0QztRQURDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sSUFBSSxZQUFZLEVBQUUsT0FBTyxnQkFBSyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQSxDQUFDLENBQUMsRUFBRSxDQUFDO3FEQUN4RTtJQW5HL0MsU0FBUztRQUg3QixPQUFPO1FBQ1AsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztPQUNGLFNBQVMsQ0FpUzdCO0lBQUQsZ0JBQUM7Q0FqU0QsQUFpU0MsQ0FqU3NDLEVBQUUsQ0FBQyxTQUFTLEdBaVNsRDtrQkFqU29CLFNBQVMiLCJmaWxlIjoiIiwic291cmNlUm9vdCI6Ii8iLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gKiDliJvlu7o6ICAgIDIwMjLlubQxMeaciDIz5pelXHJcbiAqIOS9nOiAhTogICAg5rC054Wu6IKJ54mH6aWtKDI3MTg1NzA5QHFxLmNvbSlcclxuICog5o+P6L+wOiAgICDmlbDmja7nnIvmnb9cclxuICog6IqC54K55oyC5LiK6K+l57uE5Lu277yM5bCx5Y+v5Lul5Zyo5ri45oiP6L+Q6KGM6L+H56iL5Lit77yM55u06KeC55yL5Yiw6IqC54K55Lu75oSP5bGe5oCn77yI5YyF5ous6IqC54K56ISa5pys5Lit55qE5bGe5oCn77yJXHJcbiAqIOWPr+S7peWbvuW9ouWMluWxleekuuS7peS4i+Wbm+enjeaVsOaNru+8mlxyXG4gKiAgICAgICAgICDova7lu5Pnm5LlrZDvvJogICAgICAgICAg6ZqP6IqC54K55peL6L2s77yM5Luj6KGo6IqC54K555qE5a6e5pe255+p5b2iXHJcbiAqICAgICAgICAgIOeisOaSnuebkuWtkO+8miAgICAgICAgICDkuI3pmo/oioLngrnml4vovazvvIzkuIDoiKzku6PooajnorDmkp7ojIPlm7RcclxuICogICAgICAgICAg6Ieq5a6a5LmJ5Y+C5pWw77yaICAgICAgICDoioLngrnoh6rouqvlsZ7mgKfvvIzku6Xlj4roioLngrnku7vmhI/ohJrmnKzkuK3nmoTlsZ7mgKdcclxuICogICAgICAgICAg6ZSa54K577yaICAgICAgICAgICAgIOmUmueCueS9jee9ruS8muaYvuekuuS4gOS4quWwj+e6oueCuVxyXG4gKiDoh6rlrprkuYnlj4LmlbDvvIjphY3nva7mg7Pnm5HmjqfnmoTmlbDmja7vvInvvJpcclxuICogICAgICAgICAgd3DvvJogICAgICAgICAgICAgICDkuJbnlYzlnZDmoIdcclxuICogICAgICAgICAgcmFkaWFu77yaICAgICAgICAgICDoioLngrnlvKfluqbvvIjljZXkvY3vvJrPgO+8iVxyXG4gKiAgICAgICAgICBtYXRyaXg6ICAgICAgICAgICAg5Y+Y5o2i55+p6Zi1XHJcbiAqICAgICAgICAgIOiHqui6q+WxnuaAp++8miAgICAgICAgICB4LHkscGFyZW50LGNoaWxkcmVu562JXHJcbiAqICAgICAgICAgIOiEmuacrOWxnuaAp++8miAgICAgICAgICDohJrmnKzlrp7kvovlr7nosaHnmoTlsZ7mgKdcclxuICog4oaT4oaT5Y+C5pWw5Y+v5Lul55SoM+enjeWIhumalOespumalOW8gOKGk+KGk1xyXG4gKiAgICAgICAgICDoi7HmlofpgJflj7fjgIHoi7HmloflhpLlj7fjgIHnqbrmoLxcclxuICog4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5Li+5Liq5qCX5a2Q4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCUXHJcbiAqIOiEmuacrO+8miAgICBIZXJvXHJcbiAqIOWPguaVsO+8miAgICB3cCxzY2FsZSxhbmdsZSwjYW5nbGUsI2hwXHJcbiAqIOaYvuekuue7k+aenO+8muS4lueVjOWdkOaghyzoioLngrlzY2FsZSzoioLngrlhbmdsZe+8jEhlcm/lr7nosaHnmoRhbmdsZSxIZXJv5a+56LGh55qEaHBcclxuICog4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU5rip6aao5o+Q56S64oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCUXHJcbiAqIOWIneWni+WMlueahOaXtuWAme+8jOiuvue9ruWFqOWxgOWPmOmHj3dpbmRvd1snREFUQUJPQVJEJ10gPSBmYWxzZeWPr+Wxj+iUveacrOmhueebruaJgOaciURhdGFCb2FyZO+8jOS4jeS8muS6p+eUn+S7u+S9lemineWkluW8gOmUgFxcblxyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG53aW5kb3dbJ0RBVEFCT0FSRCddID0gdHJ1ZTtcclxuY29uc3QgQU5DSE9SX1NJWkUgPSAyMDsgICAgICAgICAgICAgICAvL+mUmueCueeahOWkp+Wwj1xyXG5jb25zdCBMSU5FSEVJR0hUID0gMS4yOyAgICAgICAgICAgICAgIC8v6KGM6auY5piv5a2X5L2T5aSn5bCP55qE5aSa5bCR5YCNXHJcbmNvbnN0IHsgY2NjbGFzcywgcHJvcGVydHksIGV4ZWN1dGVJbkVkaXRNb2RlLCBtZW51IH0gPSBjYy5fZGVjb3JhdG9yO1xyXG5AY2NjbGFzc1xyXG5AZXhlY3V0ZUluRWRpdE1vZGVcclxuQG1lbnUoJ0NvbXAvRGF0YUJvYXJkJylcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRGF0YUJvYXJkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNPdXRsaW5lQm94QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfova7lu5Pnm5LlrZAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+maj+iKgueCueaXi+i9rO+8jOS7o+ihqOWunuaXtui9ruW7kycgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzT3V0bGluZUJveEFjdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzT3V0bGluZUJveEFjdGl2ZSB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgaXNPdXRsaW5lQm94QWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNPdXRsaW5lQm94QWN0aXZlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hY3RpdmUgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfb3V0bGluZUJveENvbG9yOiBjYy5Db2xvciA9IG5ldyBjYy5Db2xvcihNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1LCBNYXRoLnJhbmRvbSgpICogMjU1KTtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+minOiJsicsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzT3V0bGluZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBvdXRsaW5lQm94Q29sb3IoKSB7IHJldHVybiB0aGlzLl9vdXRsaW5lQm94Q29sb3IgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94Q29sb3IgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmNvbG9yID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX291dGxpbmVCb3hPcGFjaXR5OiBudW1iZXIgPSAxMDA7XHJcbiAgICBAcHJvcGVydHkoeyBtaW46IDAsIG1heDogMjU1LCBzdGVwOiAxLCBzbGlkZTogdHJ1ZSwgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36YCP5piO5bqmJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNPdXRsaW5lQm94QWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IG91dGxpbmVCb3hPcGFjaXR5KCkgeyByZXR1cm4gdGhpcy5fb3V0bGluZUJveE9wYWNpdHkgfTtcclxuICAgIHByaXZhdGUgc2V0IG91dGxpbmVCb3hPcGFjaXR5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9vdXRsaW5lQm94T3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUub3BhY2l0eSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9pc0NvbGxpZGVCb3hBY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAn56Kw5pKe55uS5a2QJywgdG9vbHRpcDogQ0NfREVWICYmICfkuI3pmo/oioLngrnml4vovazvvIzku6PooajnorDmkp7ojIPlm7QnIH0pXHJcbiAgICBwcml2YXRlIGdldCBpc0NvbGxpZGVCb3hBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0NvbGxpZGVCb3hBY3RpdmUgfTtcclxuICAgIHByaXZhdGUgc2V0IGlzQ29sbGlkZUJveEFjdGl2ZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX2lzQ29sbGlkZUJveEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYWN0aXZlID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgICBAcHJvcGVydHlcclxuICAgIHByaXZhdGUgX2NvbGxpZGVCb3hDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSwgTWF0aC5yYW5kb20oKSAqIDI1NSk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrfpopzoibInLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0NvbGxpZGVCb3hBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY29sbGlkZUJveENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY29sbGlkZUJveENvbG9yIH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94Q29sb3IodmFsdWU6IGNjLkNvbG9yKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5jb2xvciA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jb2xsaWRlQm94T3BhY2l0eTogbnVtYmVyID0gMTAwO1xyXG4gICAgQHByb3BlcnR5KHsgbWluOiAwLCBtYXg6IDI1NSwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+mAj+aYjuW6picsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ29sbGlkZUJveEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjb2xsaWRlQm94T3BhY2l0eSgpIHsgcmV0dXJuIHRoaXMuX2NvbGxpZGVCb3hPcGFjaXR5IH07XHJcbiAgICBwcml2YXRlIHNldCBjb2xsaWRlQm94T3BhY2l0eSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fY29sbGlkZUJveE9wYWNpdHkgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLm9wYWNpdHkgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfaXNDdXN0b21MYWJlbEFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfoh6rlrprkuYnlj4LmlbAnLCB0b29sdGlwOiBDQ19ERVYgJiYgJ+mFjee9ruaYvuekuueahOWxnuaAp+WGheWuuScgfSlcclxuICAgIHByaXZhdGUgZ2V0IGlzQ3VzdG9tTGFiZWxBY3RpdmUoKSB7IHJldHVybiB0aGlzLl9pc0N1c3RvbUxhYmVsQWN0aXZlIH07XHJcbiAgICBwcml2YXRlIHNldCBpc0N1c3RvbUxhYmVsQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5faXNDdXN0b21MYWJlbEFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFjdGl2ZSA9IHZhbHVlO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36ISa5pysJywgdG9vbHRpcDogQ0NfREVWICYmICfnm5Hmjqflk6rkuKrohJrmnKwnLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlOyB9IH0pXHJcbiAgICBwcml2YXRlIGN1c3RvbUNvbXBvbmVudE5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbFN0cmluZzogc3RyaW5nID0gJ3gseSc7XHJcbiAgICBAcHJvcGVydHkoeyBtdWx0aWxpbmU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+WPguaVsCcsIHRvb2x0aXA6IENDX0RFViAmJiBcIuKAlOKAlOKAlOKAlOKAlOaUr+aMgeeahOWPguaVsOKAlOKAlOKAlOKAlFxcbndw77ya5LiW55WM5Z2Q5qCHXFxucmFkaWFu77ya6IqC54K55byn5bqm77yI5Y2V5L2N77yaz4DvvIlcXG5tYXRyaXjvvJrlj5jmjaLnn6npmLVcXG7oh6rouqvlsZ7mgKfvvJp4LHkscGFyZW50LGNoaWxkcmVu562JXFxu6ISa5pys5bGe5oCn77ya6ISa5pys5a6e5L6L5a+56LGh55qE5bGe5oCnXFxu4oaT4oaT5Y+C5pWw5Y+v5Lul55SoM+enjeWIhumalOespumalOW8gOKGk+KGk1xcbuiLseaWh+mAl+WPt+OAgeiLseaWh+WGkuWPt+OAgeepuuagvFxcbuKAlOKAlOKAlOKAlOS4vuS4quagl+WtkOKAlOKAlOKAlOKAlFxcbuiEmuacrO+8mkhlcm9cXG7lj4LmlbDvvJp3cCxzY2FsZSxhbmdsZSwjYW5nbGUsI2hwXFxu5pi+56S657uT5p6c77yaXFxu5LiW55WM5Z2Q5qCHLOiKgueCuXNjYWxlLOiKgueCuWFuZ2xl77yMSGVyb+WvueixoeeahGFuZ2xlLEhlcm/lr7nosaHnmoRocFxcbuKAlOKAlOKAlOKAlOa4qemmqOaPkOekuuKAlOKAlOKAlOKAlFxcbuWIneWni+WMlueahOaXtuWAme+8jOiuvue9ruWFqOWxgOWPmOmHj1xcbndpbmRvd1snREFUQUJPQVJEJ10gPSBmYWxzZVxcbuWPr+Wxj+iUveacrOmhueebruaJgOaciURhdGFCb2FyZO+8jOS4jeS8muS6p+eUn+S7u+S9lemineWkluW8gOmUgFwiLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsU3RyaW5nKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTdHJpbmcgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsU3RyaW5nKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbFN0cmluZyA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdCA9IHZhbHVlXHJcbiAgICAgICAgICAgIC5yZXBsYWNlKC8sfO+8jC9nLCAnX35fJykucmVwbGFjZSgvOnzvvJovZywgJ18hXycpLnJlcGxhY2UoLyB8XFx0L2csICdfQF8nKVxyXG4gICAgICAgICAgICAucmVwbGFjZSgvXypcXG5fKi9nLCAnX1xcbl8nKS5zcGxpdCgnXycpO1xyXG4gICAgfVxyXG4gICAgQHByb3BlcnR5XHJcbiAgICBwcml2YXRlIF9jdXN0b21MYWJlbE9mZnNldDogY2MuVmVjMiA9IGNjLnYyKDAsIDEwMCk7XHJcbiAgICBAcHJvcGVydHkoeyBkaXNwbGF5TmFtZTogQ0NfREVWICYmICfCt8K3wrfCt8K3wrflgY/np7snLCB2aXNpYmxlKCkgeyByZXR1cm4gdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlIH0gfSlcclxuICAgIHByaXZhdGUgZ2V0IGN1c3RvbUxhYmVsT2Zmc2V0KCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsT2Zmc2V0KHZhbHVlOiBjYy5WZWMyKSB7XHJcbiAgICAgICAgdGhpcy5fY3VzdG9tTGFiZWxPZmZzZXQgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS54ID0gdmFsdWUueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdmFsdWUueTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxDb2xvcjogY2MuQ29sb3IgPSBuZXcgY2MuQ29sb3IoMjU1LCAyNTUsIDApO1xyXG4gICAgQHByb3BlcnR5KHsgZGlzcGxheU5hbWU6IENDX0RFViAmJiAnwrfCt8K3wrfCt8K36aKc6ImyJywgdmlzaWJsZSgpIHsgcmV0dXJuIHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZSB9IH0pXHJcbiAgICBwcml2YXRlIGdldCBjdXN0b21MYWJlbENvbG9yKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxDb2xvciB9O1xyXG4gICAgcHJpdmF0ZSBzZXQgY3VzdG9tTGFiZWxDb2xvcih2YWx1ZTogY2MuQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jdXN0b21MYWJlbENvbG9yID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuY29sb3IgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxTaXplOiBudW1iZXIgPSA2MDtcclxuICAgIEBwcm9wZXJ0eSh7IGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wkp+WwjycsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxTaXplKCkgeyByZXR1cm4gdGhpcy5fY3VzdG9tTGFiZWxTaXplIH07XHJcbiAgICBwcml2YXRlIHNldCBjdXN0b21MYWJlbFNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsU2l6ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWwuZm9udFNpemUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsLmxpbmVIZWlnaHQgPSB2YWx1ZSAqIExJTkVIRUlHSFQ7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuZ2V0Q29tcG9uZW50KGNjLkxhYmVsT3V0bGluZSkud2lkdGggPSB2YWx1ZSAqIDAuMTtcclxuICAgIH1cclxuICAgIEBwcm9wZXJ0eVxyXG4gICAgcHJpdmF0ZSBfY3VzdG9tTGFiZWxEaWdpdDogbnVtYmVyID0gMDtcclxuICAgIEBwcm9wZXJ0eSh7IG1pbjogMCwgbWF4OiAxMCwgc3RlcDogMSwgc2xpZGU6IHRydWUsIGRpc3BsYXlOYW1lOiBDQ19ERVYgJiYgJ8K3wrfCt8K3wrfCt+Wwj+aVsOS9jeaVsCcsIHZpc2libGUoKSB7IHJldHVybiB0aGlzLmlzQ3VzdG9tTGFiZWxBY3RpdmUgfSB9KVxyXG4gICAgcHJpdmF0ZSBnZXQgY3VzdG9tTGFiZWxEaWdpdCgpIHsgcmV0dXJuIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgfTtcclxuICAgIHByaXZhdGUgc2V0IGN1c3RvbUxhYmVsRGlnaXQodmFsdWU6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuX2N1c3RvbUxhYmVsRGlnaXQgPSB2YWx1ZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgYm9hcmROb2RlOiBjYy5Ob2RlID0gbnVsbDtcclxuICAgIHByaXZhdGUgb3V0bGluZUJveE5vZGU6IGNjLk5vZGUgPSBudWxsO1xyXG4gICAgcHJpdmF0ZSBjb2xsaWRlQm94Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGFuY2hvclBvaW50Tm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsTm9kZTogY2MuTm9kZSA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsOiBjYy5MYWJlbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIGN1c3RvbUxhYmVsU3RyaW5nU3BsaXQ6IHN0cmluZ1tdID0gbnVsbDtcclxuICAgIHByaXZhdGUgbW9uaXRvckNvbXA6IGNjLkNvbXBvbmVudCA9IG51bGw7XHJcblxyXG4gICAgcHJvdGVjdGVkIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMuYm9hcmROb2RlID0gdGhpcy5ub2RlLmdldENoaWxkQnlOYW1lKCdEYXRhQm9hcmQnKTtcclxuICAgICAgICBpZiAoIUNDX0VESVRPUiAmJiAhd2luZG93WydEQVRBQk9BUkQnXSkge1xyXG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoY2MuaXNWYWxpZCh0aGlzLmJvYXJkTm9kZSkpIHtcclxuICAgICAgICAgICAgdGhpcy5ib2FyZE5vZGUucmVtb3ZlRnJvbVBhcmVudCgpO1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5kZXN0cm95KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxldCB0ZXh0dXJlID0gbmV3IGNjLlRleHR1cmUyRCgpO1xyXG4gICAgICAgIHRleHR1cmUuaW5pdFdpdGhEYXRhKG5ldyBVaW50OEFycmF5KFsyNTUsIDI1NSwgMjU1XSksIGNjLlRleHR1cmUyRC5QaXhlbEZvcm1hdC5SR0I4ODgsIDEsIDEpO1xyXG5cclxuICAgICAgICB0aGlzLmJvYXJkTm9kZSA9IG5ldyBjYy5Ob2RlKCdEYXRhQm9hcmQnKTtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS5zZXRQYXJlbnQodGhpcy5ub2RlKTtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZS54ID0gdGhpcy5ib2FyZE5vZGUueSA9IDA7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuekluZGV4ID0gY2MubWFjcm8uTUFYX1pJTkRFWDtcclxuICAgICAgICAvLyB0aGlzLmJvYXJkTm9kZVsnX29iakZsYWdzJ10gfD0gY2MuT2JqZWN0WydGbGFncyddLkhpZGVJbkhpZXJhcmNoeTtcclxuICAgICAgICB0aGlzLmJvYXJkTm9kZVsnX29iakZsYWdzJ10gfD0gY2MuT2JqZWN0WydGbGFncyddLkxvY2tlZEluRWRpdG9yO1xyXG5cclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlID0gbmV3IGNjLk5vZGUoJ091dGxpbmVCb3gnKTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLmFjdGl2ZSA9IHRoaXMuaXNPdXRsaW5lQm94QWN0aXZlO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuY29sb3IgPSB0aGlzLm91dGxpbmVCb3hDb2xvcjtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLm9wYWNpdHkgPSB0aGlzLm91dGxpbmVCb3hPcGFjaXR5O1xyXG5cclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlID0gbmV3IGNjLk5vZGUoJ0NvbGxpZGVCb3gnKTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hZGRDb21wb25lbnQoY2MuU3ByaXRlKS5zcHJpdGVGcmFtZSA9IG5ldyBjYy5TcHJpdGVGcmFtZSh0ZXh0dXJlKTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLmFjdGl2ZSA9IHRoaXMuaXNDb2xsaWRlQm94QWN0aXZlO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuY29sb3IgPSB0aGlzLmNvbGxpZGVCb3hDb2xvcjtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLm9wYWNpdHkgPSB0aGlzLmNvbGxpZGVCb3hPcGFjaXR5O1xyXG5cclxuICAgICAgICB0aGlzLmFuY2hvclBvaW50Tm9kZSA9IG5ldyBjYy5Ob2RlKCdBbmNob3JQb2ludCcpO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLnNldFBhcmVudCh0aGlzLmJvYXJkTm9kZSk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuYWRkQ29tcG9uZW50KGNjLlNwcml0ZSkuc3ByaXRlRnJhbWUgPSBuZXcgY2MuU3ByaXRlRnJhbWUodGV4dHVyZSk7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuY29sb3IgPSBjYy5jb2xvcigyNTUsIDAsIDApO1xyXG4gICAgICAgIHRoaXMuYW5jaG9yUG9pbnROb2RlLndpZHRoID0gQU5DSE9SX1NJWkU7XHJcbiAgICAgICAgdGhpcy5hbmNob3JQb2ludE5vZGUuaGVpZ2h0ID0gQU5DSE9SX1NJWkU7XHJcblxyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlID0gbmV3IGNjLk5vZGUoJ0N1c3RvbUxhYmVsJyk7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuc2V0UGFyZW50KHRoaXMuYm9hcmROb2RlKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsID0gdGhpcy5jdXN0b21MYWJlbE5vZGUuYWRkQ29tcG9uZW50KGNjLkxhYmVsKTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS5hZGRDb21wb25lbnQoY2MuTGFiZWxPdXRsaW5lKS5jb2xvciA9IGNjLmNvbG9yKDAsIDAsIDApO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmFjdGl2ZSA9IHRoaXMuaXNDdXN0b21MYWJlbEFjdGl2ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsU3RyaW5nID0gdGhpcy5fY3VzdG9tTGFiZWxTdHJpbmc7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUueCA9IHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueDtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdGhpcy5jdXN0b21MYWJlbE9mZnNldC55O1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxOb2RlLmNvbG9yID0gdGhpcy5jdXN0b21MYWJlbENvbG9yO1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTGFiZWxTaXplID0gdGhpcy5fY3VzdG9tTGFiZWxTaXplO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZUFuZ2xlKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTY2FsZSgpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlQW5jaG9yKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVTaXplKCk7XHJcbiAgICAgICAgdGhpcy5ub2RlLm9uKGNjLk5vZGUuRXZlbnRUeXBlLlJPVEFUSU9OX0NIQU5HRUQsIHRoaXMudXBkYXRlQW5nbGUsIHRoaXMpO1xyXG4gICAgICAgIHRoaXMubm9kZS5vbihjYy5Ob2RlLkV2ZW50VHlwZS5TQ0FMRV9DSEFOR0VELCB0aGlzLnVwZGF0ZVNjYWxlLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuQU5DSE9SX0NIQU5HRUQsIHRoaXMudXBkYXRlQW5jaG9yLCB0aGlzKTtcclxuICAgICAgICB0aGlzLm5vZGUub24oY2MuTm9kZS5FdmVudFR5cGUuU0laRV9DSEFOR0VELCB0aGlzLnVwZGF0ZVNpemUsIHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQW5nbGUoKSB7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5hbmdsZSA9IC10aGlzLm5vZGUuYW5nbGU7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUuYW5nbGUgPSAtdGhpcy5ub2RlLmFuZ2xlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlU2NhbGUoKSB7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuc2NhbGVYID0gMSAvIHRoaXMubm9kZS5zY2FsZVg7XHJcbiAgICAgICAgdGhpcy5ib2FyZE5vZGUuc2NhbGVZID0gMSAvIHRoaXMubm9kZS5zY2FsZVk7XHJcbiAgICAgICAgdGhpcy5vdXRsaW5lQm94Tm9kZS5zY2FsZVggPSB0aGlzLm5vZGUuc2NhbGVYO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuc2NhbGVZID0gdGhpcy5ub2RlLnNjYWxlWTtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLnNjYWxlWCA9IHRoaXMubm9kZS5zY2FsZVg7XHJcbiAgICAgICAgdGhpcy5jb2xsaWRlQm94Tm9kZS5zY2FsZVkgPSB0aGlzLm5vZGUuc2NhbGVZO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlQW5jaG9yKCkge1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYW5jaG9yWCA9IHRoaXMubm9kZS5hbmNob3JYO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuYW5jaG9yWSA9IHRoaXMubm9kZS5hbmNob3JZO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYW5jaG9yWCA9IHRoaXMubm9kZS5hbmNob3JYO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuYW5jaG9yWSA9IHRoaXMubm9kZS5hbmNob3JZO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlU2l6ZSgpIHtcclxuICAgICAgICB0aGlzLm91dGxpbmVCb3hOb2RlLndpZHRoID0gdGhpcy5ub2RlLndpZHRoO1xyXG4gICAgICAgIHRoaXMub3V0bGluZUJveE5vZGUuaGVpZ2h0ID0gdGhpcy5ub2RlLmhlaWdodDtcclxuICAgICAgICB0aGlzLmNvbGxpZGVCb3hOb2RlLndpZHRoID0gdGhpcy5ub2RlLndpZHRoO1xyXG4gICAgICAgIHRoaXMuY29sbGlkZUJveE5vZGUuaGVpZ2h0ID0gdGhpcy5ub2RlLmhlaWdodDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgdXBkYXRlKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pc0N1c3RvbUxhYmVsQWN0aXZlKSByZXR1cm47XHJcbiAgICAgICAgaWYgKCF0aGlzLmN1c3RvbUxhYmVsU3RyaW5nU3BsaXQpIHJldHVybjtcclxuICAgICAgICBsZXQgcmFkaWFuID0gLXRoaXMubm9kZS5hbmdsZSAqIE1hdGguUEkgLyAxODA7XHJcbiAgICAgICAgbGV0IGNvcyA9IE1hdGguY29zKHJhZGlhbik7XHJcbiAgICAgICAgbGV0IHNpbiA9IE1hdGguc2luKHJhZGlhbik7XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbE5vZGUueCA9IHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueCAqIGNvcyAtIHRoaXMuY3VzdG9tTGFiZWxPZmZzZXQueSAqIHNpbjtcclxuICAgICAgICB0aGlzLmN1c3RvbUxhYmVsTm9kZS55ID0gdGhpcy5jdXN0b21MYWJlbE9mZnNldC54ICogc2luICsgdGhpcy5jdXN0b21MYWJlbE9mZnNldC55ICogY29zO1xyXG4gICAgICAgIGxldCBzdHIgPSAnJztcclxuICAgICAgICBsZXQgc3RycyA9IHRoaXMuY3VzdG9tTGFiZWxTdHJpbmdTcGxpdDtcclxuICAgICAgICBpZiAoIXRoaXMubW9uaXRvckNvbXAgJiYgdGhpcy5jdXN0b21Db21wb25lbnROYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9uaXRvckNvbXAgPSB0aGlzLm5vZGUuZ2V0Q29tcG9uZW50KHRoaXMuY3VzdG9tQ29tcG9uZW50TmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBzdHJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgIGxldCB0bXAgPSBudWxsO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHN0cnNbaV0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3dwJzpcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbWF0cml4ID0gdGhpcy5ub2RlWydfd29ybGRNYXRyaXgnXS5tO1xyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9IGAke21hdHJpeFsxMl0udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpfSxcXHQke21hdHJpeFsxM10udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpfWA7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdhbmdsZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5ub2RlLmFuZ2xlLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfCsCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdyYWRpYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICh0aGlzLm5vZGUuYW5nbGUgLyAxODApLnRvRml4ZWQodGhpcy5jdXN0b21MYWJlbERpZ2l0KSArICfPgCc7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdtYXRyaXgnOlxyXG4gICAgICAgICAgICAgICAgICAgIG1hdHJpeCA9IHRoaXMubm9kZVsnX3dvcmxkTWF0cml4J10ubTtcclxuICAgICAgICAgICAgICAgICAgICB0bXAgPSAnJztcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7ICsraSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IDQ7ICsraikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG0gPSBtYXRyaXhbaiAqIDQgKyBpXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSAobSA8IDAgPyAnXFx0XFx0JyA6ICdcXHRcXHRcXHQnKSArIG0udG9GaXhlZCh0aGlzLmN1c3RvbUxhYmVsRGlnaXQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGkgIT09IDMgJiYgKHRtcCArPSAnXFxuJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnY2hpbGRyZW4nOlxyXG4gICAgICAgICAgICAgICAgICAgIHRtcCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLm5vZGUuY2hpbGRyZW5Db3VudDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCArPSBgXFx0XFx0XFx0JHtpfe+8miR7dGhpcy5ub2RlLmNoaWxkcmVuW2ldLm5hbWV9YDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaSAhPT0gbGVuIC0gMSAmJiAodG1wICs9ICdcXG4nKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICd+JzogdG1wID0gJyxcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJyEnOiB0bXAgPSAnOlxcdCc7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnQCc6IHRtcCA9ICdcXHRcXHQnOyBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubm9kZVtzdHJzW2ldXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRoaXMubm9kZVtzdHJzW2ldXTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0cnNbaV0uc3RhcnRzV2l0aCgnIycpICYmIHRoaXMubW9uaXRvckNvbXAgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gdGhpcy5wYXJzZVN0cmluZyhzdHJzW2ldLnN1YnN0cmluZygxKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gc3Ryc1tpXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0bXAgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IHRtcC50b0ZpeGVkKHRoaXMuY3VzdG9tTGFiZWxEaWdpdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0bXAubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSB0bXAubmFtZTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3RyICs9IHRtcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jdXN0b21MYWJlbC5zdHJpbmcgPSBzdHI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZVN0cmluZyhzdHI6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBzdHJzID0gc3RyLnNwbGl0KCcuJyk7XHJcbiAgICAgICAgbGV0IHJldCA9IHRoaXMubW9uaXRvckNvbXBbc3Ryc1swXV07XHJcbiAgICAgICAgcmV0ID09PSB1bmRlZmluZWQgJiYgKHJldCA9IGAjJHtzdHJzWzBdfWApO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAxLCBsZW4gPSBzdHJzLmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcbiAgICAgICAgICAgIGlmIChyZXRbc3Ryc1tpXV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3JldC5uYW1lID8gcmV0Lm5hbWUgOiByZXR9LiR7c3Ryc1tpXX1gO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldCA9IHJldFtzdHJzW2ldXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJldDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmIChjYy5pc1ZhbGlkKHRoaXMuYm9hcmROb2RlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJvYXJkTm9kZS5yZW1vdmVGcm9tUGFyZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9hcmROb2RlLmRlc3Ryb3koKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5ub2RlLnRhcmdldE9mZih0aGlzKTtcclxuICAgIH1cclxufSJdfQ== \ No newline at end of file diff --git a/temp/quick-scripts/dst/assets/Script/Hero.js b/temp/quick-scripts/dst/assets/Script/Hero.js deleted file mode 100644 index 7231cd0..0000000 --- a/temp/quick-scripts/dst/assets/Script/Hero.js +++ /dev/null @@ -1,83 +0,0 @@ - - (function() { - var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined'; - var __module = nodeEnv ? module : {exports:{}}; - var __filename = 'preview-scripts/assets/Script/Hero.js'; - var __require = nodeEnv ? function (request) { - return cc.require(request); - } : function (request) { - return __quick_compile_project__.require(request, __filename); - }; - function __define (exports, require, module) { - if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict"; -cc._RF.push(module, '9285eM4YhBJhL8+C569X294', 'Hero'); -// Script/Hero.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Helloworld = /** @class */ (function (_super) { - __extends(Helloworld, _super); - function Helloworld() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.hp = 100; - _this.mp = 60; - _this.equip = { - name: '装备', - sword: { - name: '小刀', - attack: 30 - }, - shoe: { - name: '草鞋', - attr: { - name: '属性', - speed: 5, - durable: 100 - } - } - }; - return _this; - } - Helloworld.prototype.update = function (dt) { - this.hp += 1.0 * dt; - this.mp += 0.5 * dt; - }; - Helloworld = __decorate([ - ccclass - ], Helloworld); - return Helloworld; -}(cc.Component)); -exports.default = Helloworld; - -cc._RF.pop(); - } - if (nodeEnv) { - __define(__module.exports, __require, __module); - } - else { - __quick_compile_project__.registerModuleFunc(__filename, function () { - __define(__module.exports, __require, __module); - }); - } - })(); -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFxIZXJvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFNLElBQUEsS0FBc0IsRUFBRSxDQUFDLFVBQVUsRUFBbEMsT0FBTyxhQUFBLEVBQUUsUUFBUSxjQUFpQixDQUFDO0FBRzFDO0lBQXdDLDhCQUFZO0lBQXBEO1FBQUEscUVBdUJDO1FBdEJHLFFBQUUsR0FBRyxHQUFHLENBQUM7UUFDVCxRQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ1IsV0FBSyxHQUFHO1lBQ0osSUFBSSxFQUFDLElBQUk7WUFDVCxLQUFLLEVBQUM7Z0JBQ0YsSUFBSSxFQUFDLElBQUk7Z0JBQ1QsTUFBTSxFQUFDLEVBQUU7YUFDWjtZQUNELElBQUksRUFBQztnQkFDRCxJQUFJLEVBQUMsSUFBSTtnQkFDVCxJQUFJLEVBQUM7b0JBQ0QsSUFBSSxFQUFDLElBQUk7b0JBQ1QsS0FBSyxFQUFDLENBQUM7b0JBQ1AsT0FBTyxFQUFDLEdBQUc7aUJBQ2Q7YUFDSjtTQUNKLENBQUE7O0lBTUwsQ0FBQztJQUpHLDJCQUFNLEdBQU4sVUFBUSxFQUFFO1FBQ04sSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHLEdBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxFQUFFLElBQUksR0FBRyxHQUFDLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBdEJnQixVQUFVO1FBRDlCLE9BQU87T0FDYSxVQUFVLENBdUI5QjtJQUFELGlCQUFDO0NBdkJELEFBdUJDLENBdkJ1QyxFQUFFLENBQUMsU0FBUyxHQXVCbkQ7a0JBdkJvQixVQUFVIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3Qge2NjY2xhc3MsIHByb3BlcnR5fSA9IGNjLl9kZWNvcmF0b3I7XHJcblxyXG5AY2NjbGFzc1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIZWxsb3dvcmxkIGV4dGVuZHMgY2MuQ29tcG9uZW50IHtcclxuICAgIGhwID0gMTAwO1xyXG4gICAgbXAgPSA2MDtcclxuICAgIGVxdWlwID0ge1xyXG4gICAgICAgIG5hbWU6J+ijheWkhycsXHJcbiAgICAgICAgc3dvcmQ6e1xyXG4gICAgICAgICAgICBuYW1lOiflsI/liIAnLFxyXG4gICAgICAgICAgICBhdHRhY2s6MzBcclxuICAgICAgICB9LFxyXG4gICAgICAgIHNob2U6e1xyXG4gICAgICAgICAgICBuYW1lOifojYnpnosnLFxyXG4gICAgICAgICAgICBhdHRyOntcclxuICAgICAgICAgICAgICAgIG5hbWU6J+WxnuaApycsXHJcbiAgICAgICAgICAgICAgICBzcGVlZDo1LFxyXG4gICAgICAgICAgICAgICAgZHVyYWJsZToxMDBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGUgKGR0KSB7XHJcbiAgICAgICAgdGhpcy5ocCArPSAxLjAqZHQ7XHJcbiAgICAgICAgdGhpcy5tcCArPSAwLjUqZHQ7XHJcbiAgICB9XHJcbn0iXX0= \ No newline at end of file diff --git a/temp/quick-scripts/src/__qc_index__.js b/temp/quick-scripts/src/__qc_index__.js deleted file mode 100644 index 366c5e1..0000000 --- a/temp/quick-scripts/src/__qc_index__.js +++ /dev/null @@ -1,3 +0,0 @@ - -require('./assets/Script/DataBoard'); -require('./assets/Script/Hero'); diff --git a/temp/quick-scripts/src/assets/Script/DataBoard.js b/temp/quick-scripts/src/assets/Script/DataBoard.js deleted file mode 100644 index 53c23c8..0000000 --- a/temp/quick-scripts/src/assets/Script/DataBoard.js +++ /dev/null @@ -1,465 +0,0 @@ -"use strict"; -cc._RF.push(module, '1c152bUhQpJ6J1jGhQVUYf8', 'DataBoard'); -// Script/DataBoard.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -/******************************************************************************* - * 创建: 2022年11月23日 - * 作者: 水煮肉片饭(27185709@qq.com) - * 描述: 数据看板 - * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性) - * 可以图形化展示以下四种数据: - * 轮廓盒子: 随节点旋转,代表节点的实时矩形 - * 碰撞盒子: 不随节点旋转,一般代表碰撞范围 - * 自定义参数: 节点自身属性,以及节点任意脚本中的属性 - * 锚点: 锚点位置会显示一个小红点 - * 自定义参数(配置想监控的数据): - * wp: 世界坐标 - * radian: 节点弧度(单位:π) - * matrix: 变换矩阵 - * 自身属性: x,y,parent,children等 - * 脚本属性: 脚本实例对象的属性 - * ↓↓参数可以用3种分隔符隔开↓↓ - * 英文逗号、英文冒号、空格 - * ————————————————————————举个栗子———————————————————————— - * 脚本: Hero - * 参数: wp,scale,angle,#angle,#hp - * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp - * ————————————————————————温馨提示———————————————————————— - * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\n -*******************************************************************************/ -window['DATABOARD'] = true; -var ANCHOR_SIZE = 20; //锚点的大小 -var LINEHEIGHT = 1.2; //行高是字体大小的多少倍 -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property, executeInEditMode = _a.executeInEditMode, menu = _a.menu; -var DataBoard = /** @class */ (function (_super) { - __extends(DataBoard, _super); - function DataBoard() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._isOutlineBoxActive = false; - _this._outlineBoxColor = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255); - _this._outlineBoxOpacity = 100; - _this._isCollideBoxActive = true; - _this._collideBoxColor = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255); - _this._collideBoxOpacity = 100; - _this._isCustomLabelActive = true; - _this.customComponentName = ''; - _this._customLabelString = 'x,y'; - _this._customLabelOffset = cc.v2(0, 100); - _this._customLabelColor = new cc.Color(255, 255, 0); - _this._customLabelSize = 60; - _this._customLabelDigit = 0; - _this.boardNode = null; - _this.outlineBoxNode = null; - _this.collideBoxNode = null; - _this.anchorPointNode = null; - _this.customLabelNode = null; - _this.customLabel = null; - _this.customLabelStringSplit = null; - _this.monitorComp = null; - return _this; - } - Object.defineProperty(DataBoard.prototype, "isOutlineBoxActive", { - get: function () { return this._isOutlineBoxActive; }, - set: function (value) { - this._isOutlineBoxActive = value; - this.outlineBoxNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "outlineBoxColor", { - get: function () { return this._outlineBoxColor; }, - set: function (value) { - this._outlineBoxColor = value; - this.outlineBoxNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "outlineBoxOpacity", { - get: function () { return this._outlineBoxOpacity; }, - set: function (value) { - this._outlineBoxOpacity = value; - this.outlineBoxNode.opacity = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "isCollideBoxActive", { - get: function () { return this._isCollideBoxActive; }, - set: function (value) { - this._isCollideBoxActive = value; - this.collideBoxNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "collideBoxColor", { - get: function () { return this._collideBoxColor; }, - set: function (value) { - this._collideBoxColor = value; - this.collideBoxNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "collideBoxOpacity", { - get: function () { return this._collideBoxOpacity; }, - set: function (value) { - this._collideBoxOpacity = value; - this.collideBoxNode.opacity = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "isCustomLabelActive", { - get: function () { return this._isCustomLabelActive; }, - set: function (value) { - this._isCustomLabelActive = value; - this.customLabelNode.active = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelString", { - get: function () { return this._customLabelString; }, - set: function (value) { - this._customLabelString = value; - this.customLabelStringSplit = value - .replace(/,|,/g, '_~_').replace(/:|:/g, '_!_').replace(/ |\t/g, '_@_') - .replace(/_*\n_*/g, '_\n_').split('_'); - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelOffset", { - get: function () { return this._customLabelOffset; }, - set: function (value) { - this._customLabelOffset = value; - this.customLabelNode.x = value.x; - this.customLabelNode.y = value.y; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelColor", { - get: function () { return this._customLabelColor; }, - set: function (value) { - this._customLabelColor = value; - this.customLabelNode.color = value; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelSize", { - get: function () { return this._customLabelSize; }, - set: function (value) { - this._customLabelSize = value; - this.customLabel.fontSize = value; - this.customLabel.lineHeight = value * LINEHEIGHT; - this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1; - }, - enumerable: false, - configurable: true - }); - ; - Object.defineProperty(DataBoard.prototype, "customLabelDigit", { - get: function () { return this._customLabelDigit; }, - set: function (value) { - this._customLabelDigit = value; - }, - enumerable: false, - configurable: true - }); - ; - DataBoard.prototype.start = function () { - this.boardNode = this.node.getChildByName('DataBoard'); - if (!CC_EDITOR && !window['DATABOARD']) { - this.destroy(); - return; - } - if (cc.isValid(this.boardNode)) { - this.boardNode.removeFromParent(); - this.boardNode.destroy(); - } - var texture = new cc.Texture2D(); - texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1); - this.boardNode = new cc.Node('DataBoard'); - this.boardNode.setParent(this.node); - this.boardNode.x = this.boardNode.y = 0; - this.boardNode.zIndex = cc.macro.MAX_ZINDEX; - // this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy; - this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor; - this.outlineBoxNode = new cc.Node('OutlineBox'); - this.outlineBoxNode.setParent(this.boardNode); - this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.outlineBoxNode.active = this.isOutlineBoxActive; - this.outlineBoxNode.color = this.outlineBoxColor; - this.outlineBoxNode.opacity = this.outlineBoxOpacity; - this.collideBoxNode = new cc.Node('CollideBox'); - this.collideBoxNode.setParent(this.boardNode); - this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.collideBoxNode.active = this.isCollideBoxActive; - this.collideBoxNode.color = this.collideBoxColor; - this.collideBoxNode.opacity = this.collideBoxOpacity; - this.anchorPointNode = new cc.Node('AnchorPoint'); - this.anchorPointNode.setParent(this.boardNode); - this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture); - this.anchorPointNode.color = cc.color(255, 0, 0); - this.anchorPointNode.width = ANCHOR_SIZE; - this.anchorPointNode.height = ANCHOR_SIZE; - this.customLabelNode = new cc.Node('CustomLabel'); - this.customLabelNode.setParent(this.boardNode); - this.customLabel = this.customLabelNode.addComponent(cc.Label); - this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0); - this.customLabelNode.active = this.isCustomLabelActive; - this.customLabelString = this._customLabelString; - this.customLabelNode.x = this.customLabelOffset.x; - this.customLabelNode.y = this.customLabelOffset.y; - this.customLabelNode.color = this.customLabelColor; - this.customLabelSize = this._customLabelSize; - this.updateAngle(); - this.updateScale(); - this.updateAnchor(); - this.updateSize(); - this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this); - this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this); - this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this); - this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this); - }; - DataBoard.prototype.updateAngle = function () { - this.collideBoxNode.angle = -this.node.angle; - this.customLabelNode.angle = -this.node.angle; - }; - DataBoard.prototype.updateScale = function () { - this.boardNode.scaleX = 1 / this.node.scaleX; - this.boardNode.scaleY = 1 / this.node.scaleY; - this.outlineBoxNode.scaleX = this.node.scaleX; - this.outlineBoxNode.scaleY = this.node.scaleY; - this.collideBoxNode.scaleX = this.node.scaleX; - this.collideBoxNode.scaleY = this.node.scaleY; - }; - DataBoard.prototype.updateAnchor = function () { - this.outlineBoxNode.anchorX = this.node.anchorX; - this.outlineBoxNode.anchorY = this.node.anchorY; - this.collideBoxNode.anchorX = this.node.anchorX; - this.collideBoxNode.anchorY = this.node.anchorY; - }; - DataBoard.prototype.updateSize = function () { - this.outlineBoxNode.width = this.node.width; - this.outlineBoxNode.height = this.node.height; - this.collideBoxNode.width = this.node.width; - this.collideBoxNode.height = this.node.height; - }; - DataBoard.prototype.update = function () { - if (!this.isCustomLabelActive) - return; - if (!this.customLabelStringSplit) - return; - var radian = -this.node.angle * Math.PI / 180; - var cos = Math.cos(radian); - var sin = Math.sin(radian); - this.customLabelNode.x = this.customLabelOffset.x * cos - this.customLabelOffset.y * sin; - this.customLabelNode.y = this.customLabelOffset.x * sin + this.customLabelOffset.y * cos; - var str = ''; - var strs = this.customLabelStringSplit; - if (!this.monitorComp && this.customComponentName) { - this.monitorComp = this.node.getComponent(this.customComponentName); - } - for (var i = 0, len = strs.length; i < len; ++i) { - var tmp = null; - switch (strs[i]) { - case 'wp': - var matrix = this.node['_worldMatrix'].m; - tmp = matrix[12].toFixed(this.customLabelDigit) + ",\t" + matrix[13].toFixed(this.customLabelDigit); - break; - case 'angle': - tmp = this.node.angle.toFixed(this.customLabelDigit) + '°'; - break; - case 'radian': - tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π'; - break; - case 'matrix': - matrix = this.node['_worldMatrix'].m; - tmp = ''; - for (var i_1 = 0; i_1 < 4; ++i_1) { - for (var j = 0; j < 4; ++j) { - var m = matrix[j * 4 + i_1]; - tmp += (m < 0 ? '\t\t' : '\t\t\t') + m.toFixed(this.customLabelDigit); - } - i_1 !== 3 && (tmp += '\n'); - } - break; - case 'children': - tmp = ''; - for (var i_2 = 0, len_1 = this.node.childrenCount; i_2 < len_1; ++i_2) { - tmp += "\t\t\t" + i_2 + "\uFF1A" + this.node.children[i_2].name; - i_2 !== len_1 - 1 && (tmp += '\n'); - } - break; - case '~': - tmp = ',\t'; - break; - case '!': - tmp = ':\t'; - break; - case '@': - tmp = '\t\t'; - break; - default: - if (this.node[strs[i]] !== undefined) { - tmp = this.node[strs[i]]; - } - else if (strs[i].startsWith('#') && this.monitorComp !== null) { - tmp = this.parseString(strs[i].substring(1)); - } - else { - tmp = strs[i]; - } - if (typeof tmp === 'number') { - tmp = tmp.toFixed(this.customLabelDigit); - } - else if (tmp.name) { - tmp = tmp.name; - } - break; - } - str += tmp; - } - this.customLabel.string = str; - }; - DataBoard.prototype.parseString = function (str) { - var strs = str.split('.'); - var ret = this.monitorComp[strs[0]]; - ret === undefined && (ret = "#" + strs[0]); - for (var i = 1, len = strs.length; i < len; ++i) { - if (ret[strs[i]] === undefined) { - return (ret.name ? ret.name : ret) + "." + strs[i]; - } - ret = ret[strs[i]]; - } - return ret; - }; - DataBoard.prototype.onDestroy = function () { - if (cc.isValid(this.boardNode)) { - this.boardNode.removeFromParent(); - this.boardNode.destroy(); - } - this.node.targetOff(this); - }; - __decorate([ - property - ], DataBoard.prototype, "_isOutlineBoxActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' }) - ], DataBoard.prototype, "isOutlineBoxActive", null); - __decorate([ - property - ], DataBoard.prototype, "_outlineBoxColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isOutlineBoxActive; } }) - ], DataBoard.prototype, "outlineBoxColor", null); - __decorate([ - property - ], DataBoard.prototype, "_outlineBoxOpacity", void 0); - __decorate([ - property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible: function () { return this.isOutlineBoxActive; } }) - ], DataBoard.prototype, "outlineBoxOpacity", null); - __decorate([ - property - ], DataBoard.prototype, "_isCollideBoxActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' }) - ], DataBoard.prototype, "isCollideBoxActive", null); - __decorate([ - property - ], DataBoard.prototype, "_collideBoxColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isCollideBoxActive; } }) - ], DataBoard.prototype, "collideBoxColor", null); - __decorate([ - property - ], DataBoard.prototype, "_collideBoxOpacity", void 0); - __decorate([ - property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible: function () { return this.isCollideBoxActive; } }) - ], DataBoard.prototype, "collideBoxOpacity", null); - __decorate([ - property - ], DataBoard.prototype, "_isCustomLabelActive", void 0); - __decorate([ - property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' }) - ], DataBoard.prototype, "isCustomLabelActive", null); - __decorate([ - property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customComponentName", void 0); - __decorate([ - property - ], DataBoard.prototype, "_customLabelString", void 0); - __decorate([ - property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && "—————支持的参数————\nwp:世界坐标\nradian:节点弧度(单位:π)\nmatrix:变换矩阵\n自身属性:x,y,parent,children等\n脚本属性:脚本实例对象的属性\n↓↓参数可以用3种分隔符隔开↓↓\n英文逗号、英文冒号、空格\n————举个栗子————\n脚本:Hero\n参数:wp,scale,angle,#angle,#hp\n显示结果:\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\n————温馨提示————\n初始化的时候,设置全局变量\nwindow['DATABOARD'] = false\n可屏蔽本项目所有DataBoard,不会产生任何额外开销", visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelString", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelOffset", void 0); - __decorate([ - property({ displayName: CC_DEV && '······偏移', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelOffset", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelColor", void 0); - __decorate([ - property({ displayName: CC_DEV && '······颜色', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelColor", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelSize", void 0); - __decorate([ - property({ displayName: CC_DEV && '······大小', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelSize", null); - __decorate([ - property - ], DataBoard.prototype, "_customLabelDigit", void 0); - __decorate([ - property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible: function () { return this.isCustomLabelActive; } }) - ], DataBoard.prototype, "customLabelDigit", null); - DataBoard = __decorate([ - ccclass, - executeInEditMode, - menu('Comp/DataBoard') - ], DataBoard); - return DataBoard; -}(cc.Component)); -exports.default = DataBoard; - -cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/DataBoard.js.map b/temp/quick-scripts/src/assets/Script/DataBoard.js.map deleted file mode 100644 index ed2bccd..0000000 --- a/temp/quick-scripts/src/assets/Script/DataBoard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["assets\\Script\\DataBoard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;gFAwBgF;AAChF,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAC3B,IAAM,WAAW,GAAG,EAAE,CAAC,CAAe,OAAO;AAC7C,IAAM,UAAU,GAAG,GAAG,CAAC,CAAe,aAAa;AAC7C,IAAA,KAAiD,EAAE,CAAC,UAAU,EAA5D,OAAO,aAAA,EAAE,QAAQ,cAAA,EAAE,iBAAiB,uBAAA,EAAE,IAAI,UAAkB,CAAC;AAIrE;IAAuC,6BAAY;IAAnD;QAAA,qEA2RC;QAzRW,yBAAmB,GAAY,KAAK,CAAC;QAQrC,sBAAgB,GAAa,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAQzG,wBAAkB,GAAW,GAAG,CAAC;QAQjC,yBAAmB,GAAY,IAAI,CAAC;QAQpC,sBAAgB,GAAa,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;QAQzG,wBAAkB,GAAW,GAAG,CAAC;QAQjC,0BAAoB,GAAY,IAAI,CAAC;QAQrC,yBAAmB,GAAW,EAAE,CAAC;QAEjC,wBAAkB,GAAW,KAAK,CAAC;QAUnC,wBAAkB,GAAY,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAS5C,uBAAiB,GAAa,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAQxD,sBAAgB,GAAW,EAAE,CAAC;QAU9B,uBAAiB,GAAW,CAAC,CAAC;QAM9B,eAAS,GAAY,IAAI,CAAC;QAC1B,oBAAc,GAAY,IAAI,CAAC;QAC/B,oBAAc,GAAY,IAAI,CAAC;QAC/B,qBAAe,GAAY,IAAI,CAAC;QAChC,qBAAe,GAAY,IAAI,CAAC;QAChC,iBAAW,GAAa,IAAI,CAAC;QAC7B,4BAAsB,GAAa,IAAI,CAAC;QACxC,iBAAW,GAAiB,IAAI,CAAC;;IA6K7C,CAAC;IAvRG,sBAAY,yCAAkB;aAA9B,cAAmC,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;aACpE,UAA+B,KAAc;YACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;QACvC,CAAC;;;OAJmE;IAAA,CAAC;IAQrE,sBAAY,sCAAe;aAA3B,cAAgC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;aAC9D,UAA4B,KAAe;YACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QACtC,CAAC;;;OAJ6D;IAAA,CAAC;IAQ/D,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAa;YACvC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;QACxC,CAAC;;;OAJiE;IAAA,CAAC;IAQnE,sBAAY,yCAAkB;aAA9B,cAAmC,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC;aACpE,UAA+B,KAAc;YACzC,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC;QACvC,CAAC;;;OAJmE;IAAA,CAAC;IAQrE,sBAAY,sCAAe;aAA3B,cAAgC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;aAC9D,UAA4B,KAAe;YACvC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC;QACtC,CAAC;;;OAJ6D;IAAA,CAAC;IAQ/D,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAa;YACvC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;QACxC,CAAC;;;OAJiE;IAAA,CAAC;IAQnE,sBAAY,0CAAmB;aAA/B,cAAoC,OAAO,IAAI,CAAC,oBAAoB,CAAA,CAAC,CAAC;aACtE,UAAgC,KAAc;YAC1C,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC;QACxC,CAAC;;;OAJqE;IAAA,CAAC;IAUvE,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAa;YACvC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,KAAK;iBAC9B,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;iBAC9D,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;;;OANiE;IAAA,CAAC;IAUnE,sBAAY,wCAAiB;aAA7B,cAAkC,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC;aAClE,UAA8B,KAAc;YACxC,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC;;;OALiE;IAAA,CAAC;IASnE,sBAAY,uCAAgB;aAA5B,cAAiC,OAAO,IAAI,CAAC,iBAAiB,CAAA,CAAC,CAAC;aAChE,UAA6B,KAAe;YACxC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;QACvC,CAAC;;;OAJ+D;IAAA,CAAC;IAQjE,sBAAY,sCAAe;aAA3B,cAAgC,OAAO,IAAI,CAAC,gBAAgB,CAAA,CAAC,CAAC;aAC9D,UAA4B,KAAa;YACrC,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,GAAG,UAAU,CAAC;YACjD,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;QAC3E,CAAC;;;OAN6D;IAAA,CAAC;IAU/D,sBAAY,uCAAgB;aAA5B,cAAiC,OAAO,IAAI,CAAC,iBAAiB,CAAA,CAAC,CAAC;aAChE,UAA6B,KAAa;YACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QACnC,CAAC;;;OAH+D;IAAA,CAAC;IAavD,yBAAK,GAAf;QACI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;SACV;QACD,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,OAAO,GAAG,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE7F,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5C,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC;QAClE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC;QAEjE,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAErD,IAAI,CAAC,cAAc,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACrD,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;QACjD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAErD,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,WAAW,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,WAAW,CAAC;QAE1C,IAAI,CAAC,eAAe,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACjD,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAEO,+BAAW,GAAnB;QACI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAClD,CAAC;IAEO,+BAAW,GAAnB;QACI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAClD,CAAC;IAEO,gCAAY,GAApB;QACI,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IACpD,CAAC;IAEO,8BAAU,GAAlB;QACI,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAClD,CAAC;IAES,0BAAM,GAAhB;QACI,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACtC,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAAE,OAAO;QACzC,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,IAAI,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SACvE;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;YAC7C,IAAI,GAAG,GAAG,IAAI,CAAC;YACf,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE;gBACb,KAAK,IAAI;oBACL,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACzC,GAAG,GAAM,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAM,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAG,CAAC;oBACpG,MAAM;gBACV,KAAK,OAAO;oBACR,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;oBAC3D,MAAM;gBACV,KAAK,QAAQ;oBACT,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC;oBACnE,MAAM;gBACV,KAAK,QAAQ;oBACT,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;oBACrC,GAAG,GAAG,EAAE,CAAC;oBACT,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,GAAC,GAAG,CAAC,EAAE,EAAE,GAAC,EAAE;wBACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;4BACxB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAC,CAAC,CAAC;4BAC1B,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;yBACzE;wBACD,GAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;qBAC5B;oBACD,MAAM;gBACV,KAAK,UAAU;oBACX,GAAG,GAAG,EAAE,CAAC;oBACT,KAAK,IAAI,GAAC,GAAG,CAAC,EAAE,KAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAC,GAAG,KAAG,EAAE,EAAE,GAAC,EAAE;wBACzD,GAAG,IAAI,WAAS,GAAC,cAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAC,CAAC,CAAC,IAAM,CAAC;wBAClD,GAAC,KAAK,KAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;qBAClC;oBACD,MAAM;gBACV,KAAK,GAAG;oBAAE,GAAG,GAAG,KAAK,CAAC;oBAAC,MAAM;gBAC7B,KAAK,GAAG;oBAAE,GAAG,GAAG,KAAK,CAAC;oBAAC,MAAM;gBAC7B,KAAK,GAAG;oBAAE,GAAG,GAAG,MAAM,CAAC;oBAAC,MAAM;gBAC9B;oBACI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;wBAClC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC5B;yBAAM,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE;wBAC7D,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;qBAChD;yBAAM;wBACH,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;qBACjB;oBACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;wBACzB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;qBAC5C;yBAAM,IAAI,GAAG,CAAC,IAAI,EAAE;wBACjB,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;qBAClB;oBACD,MAAM;aACb;YACD,GAAG,IAAI,GAAG,CAAC;SACd;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,GAAG,CAAC;IAClC,CAAC;IAEO,+BAAW,GAAnB,UAAoB,GAAW;QAC3B,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAI,IAAI,CAAC,CAAC,CAAG,CAAC;QACrD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE;YAC7C,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBAC5B,OAAO,CAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAI,IAAI,CAAC,CAAC,CAAG,CAAC;aACpD;YACD,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SACtB;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAES,6BAAS,GAAnB;QACI,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC5B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAClC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;SAC5B;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAxRD;QADC,QAAQ;0DACoC;IAE7C;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;uDACX;IAMpE;QADC,QAAQ;uDACwG;IAEjH;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;oDAChC;IAM9D;QADC,QAAQ;yDACgC;IAEzC;QADC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;sDACrE;IAMlE;QADC,QAAQ;0DACmC;IAE5C;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,CAAC;uDACZ;IAMpE;QADC,QAAQ;uDACwG;IAEjH;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;oDAChC;IAM9D;QADC,QAAQ;yDACgC;IAEzC;QADC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,WAAW,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAC,EAAE,CAAC;sDACrE;IAMlE;QADC,QAAQ;2DACoC;IAE7C;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,CAAC;wDACP;IAMtE;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC;0DACpF;IAEzC;QADC,QAAQ;yDACkC;IAE3C;QADC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,qUAAqU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;sDACxY;IAQlE;QADC,QAAQ;yDAC2C;IAEpD;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;sDAC7B;IAOlE;QADC,QAAQ;wDACuD;IAEhE;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;qDAC/B;IAMhE;QADC,QAAQ;uDAC6B;IAEtC;QADC,QAAQ,CAAC,EAAE,WAAW,EAAE,MAAM,IAAI,UAAU,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;oDACjC;IAQ9D;QADC,QAAQ;wDAC6B;IAEtC;QADC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,YAAY,EAAE,OAAO,gBAAK,OAAO,IAAI,CAAC,mBAAmB,CAAA,CAAC,CAAC,EAAE,CAAC;qDACxE;IAnG/C,SAAS;QAH7B,OAAO;QACP,iBAAiB;QACjB,IAAI,CAAC,gBAAgB,CAAC;OACF,SAAS,CA2R7B;IAAD,gBAAC;CA3RD,AA2RC,CA3RsC,EAAE,CAAC,SAAS,GA2RlD;kBA3RoB,SAAS","file":"","sourceRoot":"/","sourcesContent":["/*******************************************************************************\r\n * 创建: 2022年11月23日\r\n * 作者: 水煮肉片饭(27185709@qq.com)\r\n * 描述: 数据看板\r\n * 节点挂上该组件,就可以在游戏运行过程中,直观看到节点任意属性(包括节点脚本中的属性)\r\n * 可以图形化展示以下四种数据:\r\n * 轮廓盒子: 随节点旋转,代表节点的实时矩形\r\n * 碰撞盒子: 不随节点旋转,一般代表碰撞范围\r\n * 自定义参数: 节点自身属性,以及节点任意脚本中的属性\r\n * 锚点: 锚点位置会显示一个小红点\r\n * 自定义参数(配置想监控的数据):\r\n * wp: 世界坐标\r\n * radian: 节点弧度(单位:π)\r\n * matrix: 变换矩阵\r\n * 自身属性: x,y,parent,children等\r\n * 脚本属性: 脚本实例对象的属性\r\n * ↓↓参数可以用3种分隔符隔开↓↓\r\n * 英文逗号、英文冒号、空格\r\n * ————————————————————————举个栗子————————————————————————\r\n * 脚本: Hero\r\n * 参数: wp,scale,angle,#angle,#hp\r\n * 显示结果:世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\r\n * ————————————————————————温馨提示————————————————————————\r\n * 初始化的时候,设置全局变量window['DATABOARD'] = false可屏蔽本项目所有DataBoard,不会产生任何额外开销\\n\r\n*******************************************************************************/\r\nwindow['DATABOARD'] = true;\r\nconst ANCHOR_SIZE = 20; //锚点的大小\r\nconst LINEHEIGHT = 1.2; //行高是字体大小的多少倍\r\nconst { ccclass, property, executeInEditMode, menu } = cc._decorator;\r\n@ccclass\r\n@executeInEditMode\r\n@menu('Comp/DataBoard')\r\nexport default class DataBoard extends cc.Component {\r\n @property\r\n private _isOutlineBoxActive: boolean = false;\r\n @property({ displayName: CC_DEV && '轮廓盒子', tooltip: CC_DEV && '随节点旋转,代表实时轮廓' })\r\n private get isOutlineBoxActive() { return this._isOutlineBoxActive };\r\n private set isOutlineBoxActive(value: boolean) {\r\n this._isOutlineBoxActive = value;\r\n this.outlineBoxNode.active = value;\r\n }\r\n @property\r\n private _outlineBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxColor() { return this._outlineBoxColor };\r\n private set outlineBoxColor(value: cc.Color) {\r\n this._outlineBoxColor = value;\r\n this.outlineBoxNode.color = value;\r\n }\r\n @property\r\n private _outlineBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isOutlineBoxActive } })\r\n private get outlineBoxOpacity() { return this._outlineBoxOpacity };\r\n private set outlineBoxOpacity(value: number) {\r\n this._outlineBoxOpacity = value;\r\n this.outlineBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCollideBoxActive: boolean = true;\r\n @property({ displayName: CC_DEV && '碰撞盒子', tooltip: CC_DEV && '不随节点旋转,代表碰撞范围' })\r\n private get isCollideBoxActive() { return this._isCollideBoxActive };\r\n private set isCollideBoxActive(value: boolean) {\r\n this._isCollideBoxActive = value;\r\n this.collideBoxNode.active = value;\r\n }\r\n @property\r\n private _collideBoxColor: cc.Color = new cc.Color(Math.random() * 255, Math.random() * 255, Math.random() * 255);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxColor() { return this._collideBoxColor };\r\n private set collideBoxColor(value: cc.Color) {\r\n this._collideBoxColor = value;\r\n this.collideBoxNode.color = value;\r\n }\r\n @property\r\n private _collideBoxOpacity: number = 100;\r\n @property({ min: 0, max: 255, step: 1, slide: true, displayName: CC_DEV && '······透明度', visible() { return this.isCollideBoxActive } })\r\n private get collideBoxOpacity() { return this._collideBoxOpacity };\r\n private set collideBoxOpacity(value: number) {\r\n this._collideBoxOpacity = value;\r\n this.collideBoxNode.opacity = value;\r\n }\r\n @property\r\n private _isCustomLabelActive: boolean = true;\r\n @property({ displayName: CC_DEV && '自定义参数', tooltip: CC_DEV && '配置显示的属性内容' })\r\n private get isCustomLabelActive() { return this._isCustomLabelActive };\r\n private set isCustomLabelActive(value: boolean) {\r\n this._isCustomLabelActive = value;\r\n this.customLabelNode.active = value;\r\n }\r\n @property({ displayName: CC_DEV && '······脚本', tooltip: CC_DEV && '监控哪个脚本', visible() { return this.isCustomLabelActive; } })\r\n private customComponentName: string = '';\r\n @property\r\n private _customLabelString: string = 'x,y';\r\n @property({ multiline: true, displayName: CC_DEV && '······参数', tooltip: CC_DEV && \"—————支持的参数————\\nwp:世界坐标\\nradian:节点弧度(单位:π)\\nmatrix:变换矩阵\\n自身属性:x,y,parent,children等\\n脚本属性:脚本实例对象的属性\\n↓↓参数可以用3种分隔符隔开↓↓\\n英文逗号、英文冒号、空格\\n————举个栗子————\\n脚本:Hero\\n参数:wp,scale,angle,#angle,#hp\\n显示结果:\\n世界坐标,节点scale,节点angle,Hero对象的angle,Hero对象的hp\\n————温馨提示————\\n初始化的时候,设置全局变量\\nwindow['DATABOARD'] = false\\n可屏蔽本项目所有DataBoard,不会产生任何额外开销\", visible() { return this.isCustomLabelActive } })\r\n private get customLabelString() { return this._customLabelString };\r\n private set customLabelString(value: string) {\r\n this._customLabelString = value;\r\n this.customLabelStringSplit = value\r\n .replace(/,/g, '_~_').replace(/:/g, '_!_').replace(/ /g, '_@_')\r\n .replace(/_*\\n_*/g, '_\\n_').split('_');\r\n }\r\n @property\r\n private _customLabelOffset: cc.Vec2 = cc.v2(0, 100);\r\n @property({ displayName: CC_DEV && '······偏移', visible() { return this.isCustomLabelActive } })\r\n private get customLabelOffset() { return this._customLabelOffset };\r\n private set customLabelOffset(value: cc.Vec2) {\r\n this._customLabelOffset = value;\r\n this.customLabelNode.x = value.x;\r\n this.customLabelNode.y = value.y;\r\n }\r\n @property\r\n private _customLabelColor: cc.Color = new cc.Color(255, 255, 0);\r\n @property({ displayName: CC_DEV && '······颜色', visible() { return this.isCustomLabelActive } })\r\n private get customLabelColor() { return this._customLabelColor };\r\n private set customLabelColor(value: cc.Color) {\r\n this._customLabelColor = value;\r\n this.customLabelNode.color = value;\r\n }\r\n @property\r\n private _customLabelSize: number = 60;\r\n @property({ displayName: CC_DEV && '······大小', visible() { return this.isCustomLabelActive } })\r\n private get customLabelSize() { return this._customLabelSize };\r\n private set customLabelSize(value: number) {\r\n this._customLabelSize = value;\r\n this.customLabel.fontSize = value;\r\n this.customLabel.lineHeight = value * LINEHEIGHT;\r\n this.customLabelNode.getComponent(cc.LabelOutline).width = value * 0.1;\r\n }\r\n @property\r\n private _customLabelDigit: number = 0;\r\n @property({ min: 0, max: 10, step: 1, slide: true, displayName: CC_DEV && '······小数位数', visible() { return this.isCustomLabelActive } })\r\n private get customLabelDigit() { return this._customLabelDigit };\r\n private set customLabelDigit(value: number) {\r\n this._customLabelDigit = value;\r\n }\r\n private boardNode: cc.Node = null;\r\n private outlineBoxNode: cc.Node = null;\r\n private collideBoxNode: cc.Node = null;\r\n private anchorPointNode: cc.Node = null;\r\n private customLabelNode: cc.Node = null;\r\n private customLabel: cc.Label = null;\r\n private customLabelStringSplit: string[] = null;\r\n private monitorComp: cc.Component = null;\r\n\r\n protected start() {\r\n this.boardNode = this.node.getChildByName('DataBoard');\r\n if (!CC_EDITOR && !window['DATABOARD']) {\r\n this.destroy();\r\n return;\r\n }\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n let texture = new cc.Texture2D();\r\n texture.initWithData(new Uint8Array([255, 255, 255]), cc.Texture2D.PixelFormat.RGB888, 1, 1);\r\n\r\n this.boardNode = new cc.Node('DataBoard');\r\n this.boardNode.setParent(this.node);\r\n this.boardNode.x = this.boardNode.y = 0;\r\n this.boardNode.zIndex = cc.macro.MAX_ZINDEX;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].HideInHierarchy;\r\n this.boardNode['_objFlags'] |= cc.Object['Flags'].LockedInEditor;\r\n\r\n this.outlineBoxNode = new cc.Node('OutlineBox');\r\n this.outlineBoxNode.setParent(this.boardNode);\r\n this.outlineBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.outlineBoxNode.active = this.isOutlineBoxActive;\r\n this.outlineBoxNode.color = this.outlineBoxColor;\r\n this.outlineBoxNode.opacity = this.outlineBoxOpacity;\r\n\r\n this.collideBoxNode = new cc.Node('CollideBox');\r\n this.collideBoxNode.setParent(this.boardNode);\r\n this.collideBoxNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.collideBoxNode.active = this.isCollideBoxActive;\r\n this.collideBoxNode.color = this.collideBoxColor;\r\n this.collideBoxNode.opacity = this.collideBoxOpacity;\r\n\r\n this.anchorPointNode = new cc.Node('AnchorPoint');\r\n this.anchorPointNode.setParent(this.boardNode);\r\n this.anchorPointNode.addComponent(cc.Sprite).spriteFrame = new cc.SpriteFrame(texture);\r\n this.anchorPointNode.color = cc.color(255, 0, 0);\r\n this.anchorPointNode.width = ANCHOR_SIZE;\r\n this.anchorPointNode.height = ANCHOR_SIZE;\r\n\r\n this.customLabelNode = new cc.Node('CustomLabel');\r\n this.customLabelNode.setParent(this.boardNode);\r\n this.customLabel = this.customLabelNode.addComponent(cc.Label);\r\n this.customLabelNode.addComponent(cc.LabelOutline).color = cc.color(0, 0, 0);\r\n this.customLabelNode.active = this.isCustomLabelActive;\r\n this.customLabelString = this._customLabelString;\r\n this.customLabelNode.x = this.customLabelOffset.x;\r\n this.customLabelNode.y = this.customLabelOffset.y;\r\n this.customLabelNode.color = this.customLabelColor;\r\n this.customLabelSize = this._customLabelSize;\r\n\r\n this.updateAngle();\r\n this.updateScale();\r\n this.updateAnchor();\r\n this.updateSize();\r\n this.node.on(cc.Node.EventType.ROTATION_CHANGED, this.updateAngle, this);\r\n this.node.on(cc.Node.EventType.SCALE_CHANGED, this.updateScale, this);\r\n this.node.on(cc.Node.EventType.ANCHOR_CHANGED, this.updateAnchor, this);\r\n this.node.on(cc.Node.EventType.SIZE_CHANGED, this.updateSize, this);\r\n }\r\n\r\n private updateAngle() {\r\n this.collideBoxNode.angle = -this.node.angle;\r\n this.customLabelNode.angle = -this.node.angle;\r\n }\r\n\r\n private updateScale() {\r\n this.boardNode.scaleX = 1 / this.node.scaleX;\r\n this.boardNode.scaleY = 1 / this.node.scaleY;\r\n this.outlineBoxNode.scaleX = this.node.scaleX;\r\n this.outlineBoxNode.scaleY = this.node.scaleY;\r\n this.collideBoxNode.scaleX = this.node.scaleX;\r\n this.collideBoxNode.scaleY = this.node.scaleY;\r\n }\r\n\r\n private updateAnchor() {\r\n this.outlineBoxNode.anchorX = this.node.anchorX;\r\n this.outlineBoxNode.anchorY = this.node.anchorY;\r\n this.collideBoxNode.anchorX = this.node.anchorX;\r\n this.collideBoxNode.anchorY = this.node.anchorY;\r\n }\r\n\r\n private updateSize() {\r\n this.outlineBoxNode.width = this.node.width;\r\n this.outlineBoxNode.height = this.node.height;\r\n this.collideBoxNode.width = this.node.width;\r\n this.collideBoxNode.height = this.node.height;\r\n }\r\n\r\n protected update() {\r\n if (!this.isCustomLabelActive) return;\r\n if (!this.customLabelStringSplit) return;\r\n let str = '';\r\n let strs = this.customLabelStringSplit;\r\n if (!this.monitorComp && this.customComponentName) {\r\n this.monitorComp = this.node.getComponent(this.customComponentName);\r\n }\r\n for (let i = 0, len = strs.length; i < len; ++i) {\r\n let tmp = null;\r\n switch (strs[i]) {\r\n case 'wp':\r\n let matrix = this.node['_worldMatrix'].m;\r\n tmp = `${matrix[12].toFixed(this.customLabelDigit)},\\t${matrix[13].toFixed(this.customLabelDigit)}`;\r\n break;\r\n case 'angle':\r\n tmp = this.node.angle.toFixed(this.customLabelDigit) + '°';\r\n break;\r\n case 'radian':\r\n tmp = (this.node.angle / 180).toFixed(this.customLabelDigit) + 'π';\r\n break;\r\n case 'matrix':\r\n matrix = this.node['_worldMatrix'].m;\r\n tmp = '';\r\n for (let i = 0; i < 4; ++i) {\r\n for (let j = 0; j < 4; ++j) {\r\n let m = matrix[j * 4 + i];\r\n tmp += (m < 0 ? '\\t\\t' : '\\t\\t\\t') + m.toFixed(this.customLabelDigit);\r\n }\r\n i !== 3 && (tmp += '\\n');\r\n }\r\n break;\r\n case 'children':\r\n tmp = '';\r\n for (let i = 0, len = this.node.childrenCount; i < len; ++i) {\r\n tmp += `\\t\\t\\t${i}:${this.node.children[i].name}`;\r\n i !== len - 1 && (tmp += '\\n');\r\n }\r\n break;\r\n case '~': tmp = ',\\t'; break;\r\n case '!': tmp = ':\\t'; break;\r\n case '@': tmp = '\\t\\t'; break;\r\n default:\r\n if (this.node[strs[i]] !== undefined) {\r\n tmp = this.node[strs[i]];\r\n } else if (strs[i].startsWith('#') && this.monitorComp !== null) {\r\n tmp = this.parseString(strs[i].substring(1));\r\n } else {\r\n tmp = strs[i];\r\n }\r\n if (typeof tmp === 'number') {\r\n tmp = tmp.toFixed(this.customLabelDigit);\r\n } else if (tmp.name) {\r\n tmp = tmp.name;\r\n }\r\n break;\r\n }\r\n str += tmp;\r\n }\r\n this.customLabel.string = str;\r\n }\r\n\r\n private parseString(str: string) {\r\n let strs = str.split('.');\r\n let ret = this.monitorComp[strs[0]] || `#${strs[0]}`;\r\n for (let i = 1, len = strs.length; i < len; ++i) {\r\n if (ret[strs[i]] === undefined) {\r\n return `${ret.name ? ret.name : ret}.${strs[i]}`;\r\n }\r\n ret = ret[strs[i]];\r\n }\r\n return ret;\r\n }\r\n\r\n protected onDestroy() {\r\n if (cc.isValid(this.boardNode)) {\r\n this.boardNode.removeFromParent();\r\n this.boardNode.destroy();\r\n }\r\n this.node.targetOff(this);\r\n }\r\n}"]} \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Hero.js b/temp/quick-scripts/src/assets/Script/Hero.js deleted file mode 100644 index 30d38ae..0000000 --- a/temp/quick-scripts/src/assets/Script/Hero.js +++ /dev/null @@ -1,61 +0,0 @@ -"use strict"; -cc._RF.push(module, '9285eM4YhBJhL8+C569X294', 'Hero'); -// Script/Hero.ts - -"use strict"; -var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - return function (d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -})(); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property; -var Helloworld = /** @class */ (function (_super) { - __extends(Helloworld, _super); - function Helloworld() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.hp = 100; - _this.mp = 60; - _this.equip = { - name: '装备', - sword: { - name: '小刀', - attack: 30 - }, - shoe: { - name: '草鞋', - attr: { - name: '属性', - speed: 5, - durable: 100 - } - } - }; - return _this; - } - Helloworld.prototype.update = function (dt) { - this.hp += 1.0 * dt; - this.mp += 0.5 * dt; - }; - Helloworld = __decorate([ - ccclass - ], Helloworld); - return Helloworld; -}(cc.Component)); -exports.default = Helloworld; - -cc._RF.pop(); \ No newline at end of file diff --git a/temp/quick-scripts/src/assets/Script/Hero.js.map b/temp/quick-scripts/src/assets/Script/Hero.js.map deleted file mode 100644 index e68c0df..0000000 --- a/temp/quick-scripts/src/assets/Script/Hero.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["assets\\Script\\Hero.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAM,IAAA,KAAsB,EAAE,CAAC,UAAU,EAAlC,OAAO,aAAA,EAAE,QAAQ,cAAiB,CAAC;AAG1C;IAAwC,8BAAY;IAApD;QAAA,qEAuBC;QAtBG,QAAE,GAAG,GAAG,CAAC;QACT,QAAE,GAAG,EAAE,CAAC;QACR,WAAK,GAAG;YACJ,IAAI,EAAC,IAAI;YACT,KAAK,EAAC;gBACF,IAAI,EAAC,IAAI;gBACT,MAAM,EAAC,EAAE;aACZ;YACD,IAAI,EAAC;gBACD,IAAI,EAAC,IAAI;gBACT,IAAI,EAAC;oBACD,IAAI,EAAC,IAAI;oBACT,KAAK,EAAC,CAAC;oBACP,OAAO,EAAC,GAAG;iBACd;aACJ;SACJ,CAAA;;IAML,CAAC;IAJG,2BAAM,GAAN,UAAQ,EAAE;QACN,IAAI,CAAC,EAAE,IAAI,GAAG,GAAC,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,IAAI,GAAG,GAAC,EAAE,CAAC;IACtB,CAAC;IAtBgB,UAAU;QAD9B,OAAO;OACa,UAAU,CAuB9B;IAAD,iBAAC;CAvBD,AAuBC,CAvBuC,EAAE,CAAC,SAAS,GAuBnD;kBAvBoB,UAAU","file":"","sourceRoot":"/","sourcesContent":["const {ccclass, property} = cc._decorator;\r\n\r\n@ccclass\r\nexport default class Helloworld extends cc.Component {\r\n hp = 100;\r\n mp = 60;\r\n equip = {\r\n name:'装备',\r\n sword:{\r\n name:'小刀',\r\n attack:30\r\n },\r\n shoe:{\r\n name:'草鞋',\r\n attr:{\r\n name:'属性',\r\n speed:5,\r\n durable:100\r\n }\r\n }\r\n }\r\n\r\n update (dt) {\r\n this.hp += 1.0*dt;\r\n this.mp += 0.5*dt;\r\n }\r\n}"]} \ No newline at end of file diff --git a/temp/startup.json b/temp/startup.json deleted file mode 100644 index c997d3a..0000000 --- a/temp/startup.json +++ /dev/null @@ -1 +0,0 @@ -{"pid":14324}