event_collect_event.ts 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { _decorator, Component, instantiate, Node, Prefab, Toggle } from 'cc';
  2. import { event_collect_event_item, event_item } from '../../../data/data';
  3. import { Attributes } from '../Attributes';
  4. import { tools } from '../../tools';
  5. import { select_collect_event_item } from './select_collect_event_item';
  6. import { collect_event_item } from './collect_event_item';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('event_collect_event')
  9. export class event_collect_event extends Component {
  10. private m_data:event_collect_event_item = null;
  11. @property(Node) btn_select_collect_event:Node = null;
  12. @property(Node) alone_node:Node = null;
  13. @property(Node) content:Node = null;
  14. @property(Prefab) item_prefab:Prefab = null;
  15. private _self_event_id:number = 0;
  16. protected start(): void {
  17. this.alone_node.on(Toggle.EventType.TOGGLE, ()=> {
  18. this.m_data.is_alone = this.alone_node.getComponent(Toggle).isChecked
  19. })
  20. }
  21. public initView(data:event_collect_event_item,self_event_id:number){
  22. this.m_data = data;
  23. this._self_event_id = self_event_id;
  24. this.btn_select_collect_event.on(Node.EventType.TOUCH_END,()=>{
  25. let list = Attributes.Singleton.getBeActionEventList()
  26. if(list.length<=0){
  27. return tools.showToast("没有可添加的事件")
  28. }
  29. tools.select_collect_event(list,(event_list:number[])=>{
  30. this.m_data.event_id_list =event_list;
  31. this.updateStatus()
  32. },this._self_event_id,this.m_data.event_id_list)
  33. })
  34. this.updateStatus()
  35. this.updateAloneStatus()
  36. }
  37. updateAloneStatus() {
  38. if(this.m_data.is_alone==undefined||this.m_data.is_alone==null) {
  39. this.m_data.is_alone = false
  40. }
  41. this.alone_node.getComponent(Toggle).isChecked = this.m_data.is_alone
  42. }
  43. updateStatus(){
  44. this.content.removeAllChildren()
  45. for (let index = 0; index < this.m_data.event_id_list.length; index++) {
  46. const id = this.m_data.event_id_list[index];
  47. let item = instantiate(this.item_prefab);
  48. item.parent = this.content;
  49. item.getComponent(collect_event_item).initView(id)
  50. }
  51. }
  52. }