import { _decorator, Component, instantiate, Node, Prefab, Vec3 } from 'cc'; import { config } from '../../config'; import { edit_event_view_select_btn } from './edit_event_view_select_btn'; import { Attributes } from '../Attributes'; import { event_item } from '../../../data/data'; import { event_item_view } from './event_item_view'; import { control } from '../control'; import { main } from '../../main'; import { ClientEvent } from '../../clientEvent'; const { ccclass, property } = _decorator; @ccclass('edit_event_view') export class edit_event_view extends Component { @property(Prefab) event_item_prefab:Prefab = null; @property(Node) btn_close:Node = null; @property(Node) content:Node = null; @property(Node) type_content:Node = null; @property(Node) type_btn:Node = null; private m_cur_select_type:number = -1; public show(){ this.btn_close.on(Node.EventType.TOUCH_END,()=>{ this.node.removeFromParent() }) this.type_content.removeAllChildren() let btn = instantiate(this.type_btn) btn.getComponent(edit_event_view_select_btn).initView(-1,"全部",this.onTypeItemClick.bind(this)) btn.getComponent(edit_event_view_select_btn).selectStatus() btn.parent = this.type_content btn = instantiate(this.type_btn) btn.parent = this.type_content btn.getComponent(edit_event_view_select_btn).initView(-2,"搜索",this.onTypeItemClick.bind(this)) config.event_type_map.forEach((v,k)=>{ let item = instantiate(this.type_btn) item.parent = this.type_content item.getComponent(edit_event_view_select_btn).initView(k,v,this.onTypeItemClick.bind(this)) }) this.m_cur_select_type = -1; this.updateView() } allBtnUnSelect(){ for (let index = 0; index < this.type_content.children.length; index++) { const element = this.type_content.children[index]; element.getComponent(edit_event_view_select_btn).unselectStatus() } } onTypeItemClick(item:edit_event_view_select_btn){ this.allBtnUnSelect() item.selectStatus() if(this.m_cur_select_type!=item.getType()){ this.m_cur_select_type = item.getType() this.updateView() } } updateView(){ this.content.removeAllChildren() let list = this.getEventListByType() for (let index = 0; index < list.length; index++) { const element = list[index]; let item = instantiate(this.event_item_prefab) item.parent = this.content; item.getComponent(event_item_view).initView(element.type,element,this.onDeleteItem.bind(this)) } } public onDeleteItem(item:event_item){ let task_data = main.Singleton.edit_scene_view.getTaskData() if(task_data!=null){ for (let index = 0; index < task_data.event_list.length; index++) { const element = task_data.event_list[index]; if(element.event_id===item.event_id){ task_data.event_list.splice(index,1) this.updateView() ClientEvent.dispatchEvent(config.Event.UpdateEditScene) break; } } } } getEventListByType(){ let list = Attributes.Singleton.getEventList() if(this.m_cur_select_type==-1){ return list; }else if(this.m_cur_select_type==2){ return [] }else{ let temp:event_item[] = [] for (let index = 0; index < list.length; index++) { const element = list[index]; if(element.type==this.m_cur_select_type){ temp.push(element) } } return temp; } } }