| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- import { _decorator, Component, Node, Sprite, Label, ImageAsset, SpriteFrame, Texture2D } from 'cc';
- import { DataSystem } from '../core/data/DataSystem';
- import { ResourceLoader } from '../core/resourceManager/ResourceLoader';
- import { WindowOpenMode } from '../core/ui/window/WindowOpenMode';
- import { WindowSystem } from '../core/ui/window/WindowSystem';
- import { ConfigData } from '../data/ConfigData';
- import { ISJSB } from '../data/jsb/platform';
- import { UserData } from '../data/UserData';
- import { LevelBonusData } from '../levelBonus/LevelBonusData';
- const { ccclass, property, requireComponent } = _decorator;
- /**用户数据 */
- @ccclass('UserInfo')
- @requireComponent(ResourceLoader)
- export class UserInfo extends Component {
- @property({ type: Sprite, tooltip: "头像" }) headSprige: Sprite;
- @property({ type: Label, tooltip: "红包币" }) bonusLabel: Label;
- @property({ type: Label, tooltip: "元宝" }) diamondLabel: Label;
- @property({ type: Label, tooltip: "粮草" }) moneyLabel: Label;
- @property({ type: Label, tooltip: "粮草" }) moneySpeedLabel: Label;
- @property({ type: Label, tooltip: "通关红包数量" }) redPacketNumLabel: Label;
- @property({ type: Node, tooltip: "通关红包气泡节点" }) redPacketNode: Node;
- private userData: UserData;
- start() {
- this.userData = DataSystem.getData(UserData);
- this.setAvator();
- this.setDiamond();
- this.setMoneySpeed();
- }
- update() {
- DataSystem.watch(UserData, 'diamond') && this.setDiamond();
- DataSystem.watch(UserData, 'money') && this.setMoney();
- DataSystem.watch(UserData, 'bonus') && this.setBonus();
- DataSystem.watch(UserData, "level") && this.setMoneySpeed();
- DataSystem.watch(LevelBonusData, 'showSaveTimes') && this.setRedPacket();
- }
- private setDiamond() {
- this.diamondLabel.string = this.userData.diamond > 10000 ? (this.userData.diamond / 1000).toFixed(1) + "k" : this.userData.diamond + "";
- }
- private setBonus() {
- this.bonusLabel.string = this.userData.bonus + '≈' + (this.userData.bonus / 10000).toFixed(3) + '元';
- }
- private setMoney() {
- this.moneyLabel.string = this.userData.money > 10000 ? (this.userData.money / 1000).toFixed(1) + "k" : this.userData.money + "";
- }
- private async setAvator() {
- let avator = DataSystem.getData(UserData).avator;
- if (ISJSB() && avator) {
- let img = await await this.getComponent(ResourceLoader).loadRemote<ImageAsset>(avator, { ext: ".png" });
- const spriteFrame = new SpriteFrame();
- const texture = new Texture2D();
- texture.image = img;
- spriteFrame.texture = texture;
- this.headSprige.spriteFrame = spriteFrame;
- }
- }
- private setMoneySpeed() {
- if (this.userData.level) {
- let speed = DataSystem.getData(ConfigData)["mission"][this.userData.level]["recover"];
- this.moneySpeedLabel.string = '(' + speed + "点/分钟)";
- }
- }
- private setRedPacket() {
- this.redPacketNumLabel.string = DataSystem.getData(LevelBonusData).showSaveTimes + '';
- this.redPacketNode.active = DataSystem.getData(LevelBonusData).showSaveTimes > 0;
- }
- private openGain() {
- WindowSystem.open('prefabs/ui/gain/gain', WindowOpenMode.NotCloseAndCover, [{ type: 1 }]);
- }
- }
|