NewPackOpenedLayer.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { _decorator, Component, Node, MeshRenderer, instantiate } from 'cc';
  2. import BasePanel from '../../../core/component/BasePanel';
  3. import Data from '../../../core/manager/Data';
  4. import levelsData from 'db://assets/data/levelsData';
  5. import platformSystem from 'db://assets/platform/platformSystem';
  6. import audioManager from 'db://assets/manager/audioManager';
  7. import { constants } from 'db://assets/data/constants';
  8. const { ccclass, property } = _decorator;
  9. @ccclass('NewPackOpenedLayer')
  10. export class NewPackOpenedLayer extends BasePanel {
  11. onBtnClicked(event: any, customEventData: any) {
  12. audioManager.playOneShot(constants.audios.btnclick);
  13. this.close();
  14. }
  15. show() {
  16. platformSystem.platform.showInterstitialAd();
  17. let node_items = this.GetGameObject("node_items");
  18. node_items.children.map(a => a.active = false);
  19. let ids = [];
  20. let OpenItems:Array<any> = levelsData.getNormModelDatas();
  21. for (var i = Data.user.openIndex; i < Data.user.openIndex + 8 && i < OpenItems.length; ++i) {
  22. ids.push(OpenItems[i]);
  23. }
  24. for (var i = 0; i < node_items.children.length; ++i) {
  25. let child = node_items.children[i];
  26. child.active = true;
  27. this.setMesh(child, ids[i]);
  28. }
  29. Data.user.openIndex += 8;
  30. Data.user.openIndex = Math.min(Data.user.openIndex, OpenItems.length - 1);
  31. Data.save();
  32. }
  33. private setMesh(node: Node, name: string) {
  34. levelsData.LoadItemPrefabByName(name).then((res: any) => {
  35. let tmp: Node = instantiate(res);
  36. let render = tmp.getComponentInChildren(MeshRenderer) as MeshRenderer;
  37. let mesh = render.mesh;
  38. node.scale = render.node.scale.multiplyScalar(100);
  39. node.getComponent(MeshRenderer).mesh = mesh;
  40. tmp.destroy();
  41. })
  42. }
  43. }