You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.0 KiB
64 lines
2.0 KiB
|
3 weeks ago
|
import { _decorator, Component, Label, Node, sp, Sprite } from 'cc';
|
||
|
|
import { ItemData } from '../game/ConfigProjectData';
|
||
|
|
import { SpriteLoad } from '../../mx/components/SpriteLoad';
|
||
|
|
import { GBundle, GPath, UIID } from '../game/ConfigRes';
|
||
|
|
import { applyItemQualityFrame } from './ItemQualityFrame';
|
||
|
|
const { ccclass, property } = _decorator;
|
||
|
|
|
||
|
|
@ccclass('ItemGrid')
|
||
|
|
export class ItemGrid extends Component {
|
||
|
|
|
||
|
|
@property
|
||
|
|
canClick: boolean = true;
|
||
|
|
|
||
|
|
bgquality: Sprite = null;
|
||
|
|
icon: Sprite = null;
|
||
|
|
scrap: Sprite = null;
|
||
|
|
lbNum: Label = null;
|
||
|
|
qDowneff: Node = null;
|
||
|
|
qUpeff: Node = null;
|
||
|
|
|
||
|
|
protected onLoad(): void {
|
||
|
|
this.bgquality = this.node.find("bgquality").getComponent(Sprite);
|
||
|
|
this.icon = this.node.find("icon").getComponent(Sprite);
|
||
|
|
this.scrap = this.node.find("scrap").getComponent(Sprite);
|
||
|
|
this.lbNum = this.node.find("lbNum").getComponent(Label);
|
||
|
|
this.qDowneff = this.node.find("qDowneff");
|
||
|
|
this.qUpeff = this.node.find("qUpeff");
|
||
|
|
}
|
||
|
|
|
||
|
|
protected onEnable(): void {
|
||
|
|
this.node.on(Node.EventType.TOUCH_END, this.onClick, this);
|
||
|
|
}
|
||
|
|
|
||
|
|
protected onDisable(): void {
|
||
|
|
this.node.off(Node.EventType.TOUCH_END, this.onClick, this);
|
||
|
|
}
|
||
|
|
|
||
|
|
Data: ItemData = null;
|
||
|
|
|
||
|
|
setData(item: ItemData) {
|
||
|
|
this.Data = item;
|
||
|
|
this.updateUI();
|
||
|
|
}
|
||
|
|
|
||
|
|
updateUI() {
|
||
|
|
applyItemQualityFrame(this.bgquality.node.getOrAddComponent(SpriteLoad), this.Data.staticData);
|
||
|
|
this.icon.node.getOrAddComponent(SpriteLoad).setSprite(GPath.Item(this.Data.staticData.icon), GBundle.Items);
|
||
|
|
this.lbNum.string = this.Data.num + "";
|
||
|
|
let q = this.Data.staticData.quality;
|
||
|
|
this.qDowneff.children.map(x => x.active = x.name == q + "");
|
||
|
|
this.qUpeff.children.map(x => x.active = x.name == q + "");
|
||
|
|
this.scrap.node.active = [4, 10, 11, 13].includes(this.Data.staticData.type);
|
||
|
|
}
|
||
|
|
|
||
|
|
onClick() {
|
||
|
|
if (!this.canClick) return;
|
||
|
|
gg.ui.openPanel(UIID.ItemDetailBox, {
|
||
|
|
data: this.Data
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|