SelectMapPanel.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { _decorator, Button, Component, instantiate, Node, ScrollView } from 'cc';
  2. import { LayerMgr } from '../../script/Manager/LayerMgr';
  3. import { allMapList, getAllMapKeys, MapData, UserMap } from '../../script/Manager/LocalDataMgr';
  4. import { MapItem } from './MapItem';
  5. const { ccclass, property } = _decorator;
  6. @ccclass('SelectMapPanel')
  7. export class SelectMapPanel extends Component {
  8. @property(Node)
  9. itemRoot: Node = null;
  10. @property(Node)
  11. itemPrefab: Node = null;
  12. @property(Button)
  13. btnClose: Button = null;
  14. @property(ScrollView)
  15. scrollView:ScrollView = null;
  16. _mapData:MapData = null
  17. _allMapList:{ [key: number]: string };
  18. _items: Node[] = [];
  19. _hasCreatedItems:boolean = false;
  20. protected start(): void {
  21. this.btnClose.node.on(Node.EventType.TOUCH_END,this.onBtnCloseClick,this)
  22. }
  23. init() {
  24. if(this._hasCreatedItems) return;
  25. this._hasCreatedItems = true;
  26. this._allMapList = allMapList
  27. this._mapData = UserMap.getMapData()
  28. let allMapKeys = getAllMapKeys()
  29. let count = allMapKeys.length;
  30. for (let i = 0; i < count; i++) {
  31. this.createItem(allMapKeys[i]);
  32. }
  33. }
  34. onBtnCloseClick()
  35. {
  36. this.node.active = false
  37. }
  38. createItem(key: number) {
  39. let itemNode = instantiate(this.itemPrefab);
  40. itemNode.parent = this.itemRoot;
  41. this._items.push(itemNode);
  42. itemNode.active = true
  43. let mapItem = itemNode.getComponent(MapItem)
  44. mapItem.init(key,this.judgeSelect(key))
  45. }
  46. judgeSelect(key)
  47. {
  48. let selMaps = this._mapData.selectedMaps
  49. let index = selMaps.indexOf(key)
  50. return index !== -1
  51. }
  52. clearSelectAllMaps()
  53. {
  54. UserMap.removeAllSelectMap()
  55. this.refreshMapSelectioin()
  56. }
  57. refreshMapSelectioin()
  58. {
  59. let allMapKeys = getAllMapKeys()
  60. let count = allMapKeys.length;
  61. for(let i = 0; i < count; i++){
  62. let item = this._items[i]
  63. item.getComponent(MapItem).setSelectMap(false)
  64. }
  65. }
  66. slideToBottom()
  67. {
  68. this.scrollView.scrollToBottom()
  69. }
  70. selectAllMap()
  71. {
  72. UserMap.addAllSelectMap()
  73. this._items.forEach((item)=>{
  74. item.getComponent(MapItem).setSelectMap(true)
  75. })
  76. }
  77. //获取上一关的
  78. lastLevel()
  79. {
  80. }
  81. nextLevel()
  82. {
  83. }
  84. }