BaguaInfo.ts 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { _decorator, Component, Node } from "cc";
  2. import { DataSystem } from "../../core/data/DataSystem";
  3. import { ResourceLoader } from "../../core/resourceManager/ResourceLoader";
  4. import List from "../../core/ui/virtualList/List";
  5. import { ConfigData } from "../../data/ConfigData";
  6. import { BaguaItem } from "./BaguaItem";
  7. import { Formation } from "./Formation";
  8. import { FormationData } from "./FormationData";
  9. const { ccclass, property, requireComponent } = _decorator;
  10. /**
  11. * 八卦信息
  12. * @author 袁浩
  13. */
  14. @ccclass('BaguaInfo')
  15. @requireComponent(ResourceLoader)
  16. export class BaguaInfo extends Component {
  17. @property({ tooltip: "羁绊列表", type: List })
  18. public list: List;
  19. private fetterList: any[] = [];
  20. start() {
  21. this.initUI();
  22. }
  23. private async initUI() {
  24. let formationData = DataSystem.getData(FormationData);
  25. let fetter = formationData.getFetter();
  26. let fetterConfig = DataSystem.getData(ConfigData).get("fetter");
  27. let activeIndex = -1;
  28. for (let key in fetterConfig) {
  29. fetterConfig[key].isActive = fetter.fetterID == fetterConfig[key].id;
  30. this.fetterList.push(fetterConfig[key]);
  31. if (fetterConfig[key].isActive) {
  32. activeIndex = this.fetterList.length - 1;
  33. }
  34. }
  35. this.list.numItems = this.fetterList.length;
  36. this.list.scrollTo(activeIndex);
  37. }
  38. /**
  39. * 当列表项渲染
  40. * @param item 项节点
  41. * @param index 项索引
  42. */
  43. public onListRender(item: Node, index: number) {
  44. item.getComponent(BaguaItem).onDataChange(this.fetterList[index]);
  45. }
  46. }