Files
18xchat/assets/Scripts/chat18x/ui/panels/ThemeItem.ts
T
2025-08-12 16:58:02 +08:00

47 lines
1.4 KiB
TypeScript

import { _decorator, Component, Label, Node, Sprite, UITransform } from "cc";
import { GButton } from "db://assets/Scripts/Main/Common/GButton";
import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import Utils from "db://assets/Scripts/Main/Common/Utils";
import { NavigationManager } from "../../manager/NavigationManager";
import { TbThemes, Theme } from "../../../schema/schema";
const { ccclass, property } = _decorator;
@ccclass("ThemeItem")
export class ThemeItem extends Component {
@property(Sprite)
lockImg: Sprite;
@property(Label)
titleName: Label;
@property(Sprite)
img: Sprite;
private category: number;
private isLocked: boolean;
start() {}
refresh(themeData: Theme) {
this.lockImg.node.active = !themeData.isRelease;
this.isLocked = !themeData.isRelease;
this.titleName.string = themeData.name;
this.category = themeData.category;
ResManager.I.changeBundleSpriteFrame(
this.img,
themeData.path,
"Chat18x",
() => {
let sizeTran = this.img.node.parent.getComponent(UITransform);
Utils.adjustBgPixelRatioToSize(sizeTran.contentSize, this.img.node, 2);
}
);
GButton.RemoveAndBandClick(this.node, this.OnClickThis, this);
}
OnClickThis() {
if (this.isLocked) {
return;
}
NavigationManager.Instance.navigateToGirlList(this.category);
}
}