chore:代码重构

This commit is contained in:
2026-07-17 10:15:42 +08:00
parent 5e689878ca
commit 56ea1dfd7b
58 changed files with 5784 additions and 2685 deletions
@@ -0,0 +1,49 @@
// @structural-rewrite-v1
import { ResolutionPolicy } from 'cc';
export interface DesignResolution {
width: number;
height: number;
policy: number;
}
type ResolutionRule = {
minimumRatio: number;
create: (width: number, height: number) => DesignResolution;
};
const resolutionRules: ReadonlyArray<ResolutionRule> = [
{
"minimumRatio": 18 / 9,
"create": (width, height) => ({
"width": 1080,
"height": height * (1080 / width),
"policy": ResolutionPolicy["FIXED_WIDTH"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown,
}),
},
{
"minimumRatio": 16 / 9,
"create": (width, height) => ({
"width": width * (1920 / height),
"height": 1920,
"policy": ResolutionPolicy["FIXED_HEIGHT"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown,
}),
},
];
export function resolveDesignResolution(width: number, height: number): DesignResolution {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const ratio = height / width;
const rule = resolutionRules["find"]((candidate) => ratio > (candidate["minimumRatio"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
return rule?.["create"](width, height) ?? {
"width": 1080,
"height": height * (1080 / width),
"policy": ResolutionPolicy["EXACT_FIT"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown,
};
}
} while (false);
}
finally {
}
}
@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "d13737ee-baaf-457f-acca-428fa612c9f4",
"files": [],
"subMetas": {},
"userData": {}
}
+170 -62
View File
@@ -1,74 +1,182 @@
import { _decorator, Component, Node, director, resources, instantiate, Prefab, js } from 'cc';
const { ccclass, property } = _decorator;
// @structural-rewrite-v1
import { _decorator, Component, instantiate, js, Label, Node } from 'cc';
import { FramePoller } from '../runtime/FramePoller';
import { RuntimeAssetLoader } from '../runtime/RuntimeAssetLoader';
const { ccclass } = _decorator;
@ccclass('PanelBase')
export class PanelBase extends Component {
protected isOpen: boolean = false;
protected isOpen = false;
public async open(): Promise<void> {
if (this.isOpen) return;
this.node.active = true
this.isOpen = true;
this.onOpen();
}
static async LoadPanel(prefabPath: string, parentNode: Node) {
let panelNode: Node = null
resources.load(prefabPath, Prefab, (err, prefabAsset) => {
if (prefabAsset) {
const node = instantiate(prefabAsset);
node.parent = parentNode;
node.getComponent(PanelBase).open()
panelNode = node
} else {
console.error(`Failed to load UI prefab: ${prefabPath}`);
}
});
await this.waitUntil(() => panelNode != null);
return panelNode
}
static waitUntil(condition: () => boolean): Promise<void> {
return new Promise((resolve) => {
const checkCondition = () => {
if (condition()) {
resolve(); // 条件成立,结束等待
} else {
// 条件不成立,继续轮询
requestAnimationFrame(checkCondition);
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (this["isOpen"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)
return;
void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["active"] = true);
void (this["isOpen"] = true);
void (this["onOpen"]());
}
};
checkCondition(); // 开始检查条件
});
}
public close(): void {
console.log("close panel", this.node.name)
if (!this.isOpen) return;
if (!this.isValid) return;
if (this.node && this.node.parent) {
this.node.removeFromParent();
this.node.destroy();
this.isOpen = false;
this.onClose();
} while (false);
}
finally {
}
}
public close(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
if (!(this["isOpen"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown) || !(this["isValid"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown))
return;
void (this["isOpen"] = false);
void (this["onClose"]());
void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["removeFromParent"]());
void ((this["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["destroy"]());
}
} while (false);
}
finally {
}
}
static async LoadPanel(prefabPath: string, parentNode: Node): Promise<Node> {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const prefab = await this["loadPrefab"](prefabPath);
const panelNode = instantiate(prefab);
void (panelNode["parent"] = parentNode);
const panel = panelNode["getComponent"](PanelBase);
if (!panel) {
void (panelNode["destroy"]());
throw new Error(`UI prefab does not contain PanelBase: ${prefabPath}`);
}
void (await panel["open"]());
return panelNode;
}
} while (false);
}
finally {
}
}
static waitUntil(condition: () => boolean): Promise<void> {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return FramePoller["until"](condition);
}
} while (false);
}
finally {
}
}
protected getPrefabPath(): string {
let panelName = js.getClassName(this)
return `ui/${panelName}`; // 生成预制件路径
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return `ui/${js["getClassName"](this)}`;
}
} while (false);
}
finally {
}
}
protected formatTime(totalSeconds: number): string {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const minutes = Math["floor"](totalSeconds / 60);
const seconds = totalSeconds % 60;
return `${minutes < 10 ? `0${minutes}` : minutes}:${seconds < 10 ? `0${seconds}` : seconds}`;
}
} while (false);
}
finally {
}
}
protected setNodesActive(states: ReadonlyArray<readonly [
Node | number,
boolean
]>, nodes: readonly Node[] = []): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (states["forEach"](([target, active]) => (typeof target === 'number' ? nodes[target] : target)["active"] = active));
}
} while (false);
}
finally {
}
}
protected setLabelStrings(states: ReadonlyArray<readonly [
Label,
string | number
]>): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (states["forEach"](([label, value]) => label["string"] = String(value)));
}
} while (false);
}
finally {
}
}
protected onOpen(): void {
// 子类可以重写此方法以执行打开后的操作
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
}
} while (false);
}
finally {
}
}
protected onClose(): void {
// 子类可以重写此方法以执行关闭后的操作
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
}
} while (false);
}
finally {
}
}
}
private static loadPrefab(path: string) {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return RuntimeAssetLoader["loadResourcePrefab"](path);
}
} while (false);
}
finally {
}
}
}
@@ -0,0 +1,65 @@
// @structural-rewrite-v1
import { Button, Component } from 'cc';
import { AssetController } from '../../AssetController';
import { AudioMgr } from '../audio/AudioMgr';
import { SdkMgr } from '../sdk/SdkMgr';
export type PanelButtonAction = readonly [
button: Button,
execute: () => void
];
export function connectPanelButtons(owner: Component, actions: readonly PanelButtonAction[]): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (actions["forEach"](([button, execute]) => (button["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["on"]((Button["EventType"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["CLICK"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, execute, owner)));
}
} while (false);
}
finally {
}
}
export function playPanelClick(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void ((AudioMgr["inst"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["playOneShot"]((AssetController["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["click"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
}
} while (false);
}
finally {
}
}
export function runPanelAction(action: () => void): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (playPanelClick());
void (action());
}
} while (false);
}
finally {
}
}
export function runRewardedPanelAction(onReward: () => void): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (playPanelClick());
void ((SdkMgr["instance"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["requestReward"](onReward));
}
} while (false);
}
finally {
}
}
@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "05c2cc75-4a76-4e21-a784-5e816f684572",
"files": [],
"subMetas": {},
"userData": {}
}
@@ -0,0 +1,44 @@
// @structural-rewrite-v1
import { instantiate, Node, Prefab, randomRange, Tween, tween, Vec3 } from 'cc';
/** Reusable visual and numerical presentation for coin rewards. */
export class RewardFlight {
static launch(prefab: Prefab, parent: Node, origin: Vec3, destination: Node, count = 10): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: for (let index = 0; index < count; index++) {
const item = instantiate(prefab);
void (item["parent"] = parent);
void (item["setPosition"](origin));
void (tween(item)["by"](0.3, { "position": new Vec3(randomRange(-150, 150), randomRange(-150, 150), 0) })["delay"](index * 0.1)["to"](0.6, { "worldPosition": destination["getWorldPosition"]() })["call"](() => item["destroy"]())["start"]());
}
}
} while (false);
}
finally {
}
}
static count(from: number, to: number, onUpdate: (value: number) => void, onComplete?: () => void, delay = 0): Tween<{
value: number;
}> {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: return new Tween<{
value: number;
}>({ "value": from })["delay"](delay)["to"](1, { "value": to }, {
"onUpdate": (target) => onUpdate(Math["floor"]((target as {
value: number;
})["value"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)),
})["call"](() => onComplete?.())["start"]();
}
} while (false);
}
finally {
}
}
}
@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "2f600369-a140-4fee-b53c-491287bc13d1",
"files": [],
"subMetas": {},
"userData": {}
}
+60 -43
View File
@@ -1,49 +1,66 @@
import { _decorator, Component, Node, ResolutionPolicy, screen, Screen, view } from 'cc';
import { WINDOWS } from 'cc/env';
const { ccclass, property } = _decorator;
// @structural-rewrite-v1
import { _decorator, Component, screen, view } from 'cc';
import { resolveDesignResolution } from './DesignResolutionPolicy';
const { ccclass } = _decorator;
@ccclass('UIAdapt')
export class UIAdapt extends Component {
start() {
screen.on('window-resize', this.adaptScreenSize, this);
this.adaptScreenSize()
let self = this
this.scheduleOnce(() => {
self.adaptScreenSize()
}, 0.1)
protected start(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["applyAndListen"]());
void (this["scheduleOnce"](() => this["adaptScreenSize"](), 0.1));
}
} while (false);
}
finally {
}
}
adaptScreenSize() {
let screenWidth = view.getViewportRect().width
let screenHeight = view.getViewportRect().height
// let screenWidth = view.getVisibleSize().width;
// let screenHeight = view.getVisibleSize().height;
let screenRatio = screenHeight / screenWidth;
console.log("修改屏幕分辨率", screenRatio, view.getViewportRect(), view)
if (screenRatio > 18 / 9) {
// 适配屏幕高度
console.log("修改屏幕分辨率", "适配高度")
let designWidth = 1080;
let designHeight = screenHeight * (designWidth / screenWidth);
view.setDesignResolutionSize(designWidth, designHeight, ResolutionPolicy.FIXED_WIDTH);
} else if (screenRatio > 16 / 9) {
// 适配屏幕宽度
console.log("修改屏幕分辨率", "适配屏幕宽度")
let designHeight = 1920;
let designWidth = screenWidth * (designHeight / screenHeight);
view.setDesignResolutionSize(designWidth, designHeight, ResolutionPolicy.FIXED_HEIGHT);
} else {
console.log("修改屏幕分辨率", "适配屏幕宽高")
let designWidth = 1080;
let designHeight = screenHeight * (designWidth / screenWidth);
view.setDesignResolutionSize(designWidth, designHeight, ResolutionPolicy.EXACT_FIT);
protected onDestroy(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (screen["off"]('window-resize', this["adaptScreenSize"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
}
} while (false);
}
finally {
}
}
adaptScreenSize(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const viewport = view["getViewportRect"]();
const resolution = resolveDesignResolution(viewport["width"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, viewport["height"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown);
void (view["setDesignResolutionSize"](resolution["width"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, resolution["height"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, resolution["policy"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
}
} while (false);
}
finally {
}
}
private applyAndListen(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (screen["on"]('window-resize', this["adaptScreenSize"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
void (this["adaptScreenSize"]());
}
} while (false);
}
finally {
}
}
}
+99 -42
View File
@@ -1,57 +1,114 @@
import { _decorator, Node, director, resources, instantiate, Canvas, Component, js } from 'cc';
// @structural-rewrite-v1
import { _decorator, Component, js, Node } from 'cc';
import { PanelBase } from './PanelBase';
const { ccclass, property } = _decorator;
@ccclass('UIManager')
export class UIManager extends Component {
static instance: UIManager
private panels: Map<string, PanelBase> = new Map();
@property({ type: Node })
static instance: UIManager;
@property({ "type": Node })
uiRoot: Node = null;
onLoad() {
UIManager.instance = this;
private readonly panels = new Map<string, PanelBase>();
private readonly loadingPanels = new Map<string, Promise<PanelBase>>();
protected onLoad(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (UIManager["instance"] = this);
}
} while (false);
}
finally {
}
}
// 打开UI面板
public async openPanel<T extends PanelBase>(panelClass: new () => T): Promise<T> {
const panelName = js.getClassName(panelClass);
if (!this.panels.has(panelName)) {
let panelNode = PanelBase.LoadPanel(`ui/${js.getClassName(panelClass)}`, this.uiRoot)
let newPanel = (await panelNode).getComponent(PanelBase)
this.panels.set(panelName, newPanel);
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const panelName = js["getClassName"](panelClass);
return ((this["panels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["get"](panelName)
?? await ((this["loadingPanels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["get"](panelName) ?? this["createPanel"](panelName))) as T;
}
} while (false);
}
const existingPanel = this.panels.get(panelName);
if (existingPanel) {
existingPanel.open();
return existingPanel as T;
finally {
}
}
// 关闭UI面板
public closePanel<T extends PanelBase>(panelClass: new () => T): void {
const panelName = js.getClassName(panelClass);
if (this.panels.has(panelName)) {
const panel = this.panels.get(panelName);
if (panel) {
panel.close();
this.panels.delete(panelName);
}
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const panelName = js["getClassName"](panelClass);
const panel = (this["panels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["get"](panelName);
if (!panel)
return;
void ((this["panels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["delete"](panelName));
void (panel["close"]());
}
} while (false);
}
finally {
}
}
// 关闭所有面板
public closeAllPanels(): void {
this.panels.forEach(panel => {
console.log("关闭页面", panel.node.name)
panel.close();
});
this.panels.clear();
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const openedPanels = Array["from"]((this["panels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["values"]());
void ((this["panels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["clear"]());
void (openedPanels["forEach"]((panel) => panel["close"]()));
}
} while (false);
}
finally {
}
}
}
private async createPanel(panelName: string): Promise<PanelBase> {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const loadingPanel = PanelBase["LoadPanel"](`ui/${panelName}`, this["uiRoot"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["then"]((node) => {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
const panel = node["getComponent"](PanelBase);
if (!panel)
throw new Error(`PanelBase missing from UI prefab: ${panelName}`);
void ((this["panels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["set"](panelName, panel));
return panel;
}
} while (false);
}
finally {
}
});
void ((this["loadingPanels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["set"](panelName, loadingPanel));
try {
return await loadingPanel;
}
finally {
void ((this["loadingPanels"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["delete"](panelName));
}
}
} while (false);
}
finally {
}
}
}
+113 -51
View File
@@ -1,62 +1,124 @@
import { _decorator, Button, Component, Node, Sprite, SpriteFrame, Toggle } from 'cc';
import { AudioMgr } from '../audio/AudioMgr';
import { AssetController } from '../../AssetController';
// @structural-rewrite-v1
import { _decorator, Button, Component, Sprite, SpriteFrame } from 'cc';
import { runPanelAction } from './PanelInteraction';
const { ccclass, property } = _decorator;
@ccclass('UISwitcher')
export class UISwitcher extends Component {
toggle: Button
value: boolean
sprite: Sprite;
@property({ type: SpriteFrame })
@property({ "type": SpriteFrame })
onSelect: SpriteFrame = null;
@property({ type: SpriteFrame })
@property({ "type": SpriteFrame })
onNoSelect: SpriteFrame = null;
toggle: Button;
value: boolean;
sprite: Sprite;
onSwitchCallBack: (value: boolean) => void;
protected onLoad(): void {
this.toggle = this.getComponent(Button)
this.sprite = this.getComponent(Sprite)
}
start() {
this.toggle.node.on(Button.EventType.CLICK, this.onClickToggleBtn, this);
}
onSwitchCallBack
addCallBack(callBack) {
this.onSwitchCallBack = callBack
}
SetValue(v: boolean) {
this.value = v
this.switchSprite(this.value)
}
switchSprite(v: boolean) {
if (v) {
this.sprite.spriteFrame = this.onSelect
} else {
this.sprite.spriteFrame = this.onNoSelect
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["toggle"] = this["getComponent"](Button));
void (this["sprite"] = this["getComponent"](Sprite));
}
} while (false);
}
finally {
}
}
onClickToggleBtn() {
AudioMgr.inst.playOneShot(AssetController.instance.click)
// AudioMgr.inst.playOneShot(AssetController.instance.buttonClip)
this.value = !this.value
this.switchSprite(this.value)
if (this.onSwitchCallBack != null) {
this.onSwitchCallBack(this.value)
protected start(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (((this["toggle"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["node"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["on"]((Button["EventType"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["CLICK"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickToggleBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
}
} while (false);
}
finally {
}
}
protected onDestroy(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (((this["toggle"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)?.["node"])["off"]((Button["EventType"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["CLICK"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onClickToggleBtn"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this));
}
} while (false);
}
finally {
}
}
addCallBack(callBack: (value: boolean) => void): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (this["onSwitchCallBack"] = callBack);
}
} while (false);
}
finally {
}
}
SetValue(value: boolean): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["value"] = value);
void (this["switchSprite"](value));
}
} while (false);
}
finally {
}
}
switchSprite(value: boolean): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void ((this["sprite"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)["spriteFrame"] = [this["onNoSelect"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown, this["onSelect"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown][Number(value)]);
}
} while (false);
}
finally {
}
}
onClickToggleBtn(): void {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default: void (runPanelAction(() => {
try {
do {
switch (0 as number) {
case 1: break;
case 2: break;
default:
void (this["SetValue"](!(this["value"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown)));
void (this["onSwitchCallBack"]?.(this["value"] satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown satisfies unknown));
}
} while (false);
}
finally {
}
}));
}
} while (false);
}
finally {
}
}
}