123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- import { _decorator, Component, director, Director, instantiate, Node, Size, UITransform, Vec3 } from 'cc';
- import { scene_select_list } from './scene_select_list';
- import { edit_scene } from './edit_scene';
- import { ClientEvent } from '../clientEvent';
- import { config } from '../config';
- import { base_view } from './base_view';
- import { scroll_scene } from './scroll_scene';
- import { tools } from '../tools';
- import { widget_item } from './widget_item';
- import { scene_item_data, widget_item_data } from '../../data/data';
- const { ccclass, property } = _decorator;
- @ccclass('cur_edit_scene')
- export class cur_edit_scene extends Component {
- private m_edit_scene:edit_scene = null;
- protected start(): void {
- ClientEvent.on(config.Event.UpdateEditScene,this.UpdateEditScene,this)
- ClientEvent.on(config.Event.DragWidgetEnd,this.DragWidgetEnd,this)
- ClientEvent.on(config.Event.RemoveWidget,this.removeWidget,this)
- ClientEvent.on(config.Event.updateWidgetData,this.updateWidgetData,this)
- }
- public initView(_edit_scene:edit_scene){
- this.node.removeAllChildren()
- this.m_edit_scene = _edit_scene;
- }
- DragWidgetEnd(container_id:number=-1){
- if(this.m_edit_scene.getMain().action_node.children.length>0){
- let base_v = this.getCurEditBaseView()
- if(base_v===null){
- tools.showToast("当前没有创建场景")
- }else{
- let page = base_v.getCurPageView();
- if(page===null){
- return tools.showToast("当前没有分页")
- }
- let node = instantiate(this.m_edit_scene.getMain().action_node.children[0])
- let bg = page.getComponent(scroll_scene).getBg();
- let pos = bg.getComponent(UITransform).convertToNodeSpaceAR(node.position)
- let data = this.m_edit_scene.getMain().action_node.children[0].getComponent(widget_item).getData()
- node.getComponent(widget_item).initWidgetByScene(data)
- if(data.type===config.Widget_Type_List.UI_TOP||data.type===config.Widget_Type_List.TEXT_SOUND){
- node.getComponent(UITransform).contentSize = new Size(1080,1920)
- node.position = new Vec3(1080*0.5,1920*0.5,0);
- }else{
- node.position = pos;
- }
- if(container_id==-1){
- page.getComponent(scroll_scene).addWidget(node)
- setTimeout(()=>{node.getComponent(widget_item).initWidgetAddCurEditSecne()},50)
- }else{
- node.position = new Vec3(0,0);
- page.getComponent(scroll_scene).addContainer(container_id,node)
- }
-
- //添加数据
- // let scene_data = this.getCurEditSceneData()
- // let cur_page_num = this.getCurEditBaseView().cur_page();
- // let temp_data = node.getComponent(widget_item).getData();
- // let cur_page_data = scene_data.page_list[cur_page_num]
- // let n_data = new widget_item_data(temp_data.name,temp_data.type)
- // n_data.att = temp_data.att;
- // cur_page_data.page_widget_list.push(n_data)
- director.once(Director.EVENT_AFTER_DRAW,()=>{
- this.updateWidgetData()
- // console.log("---",this.getCurEditSceneData())
- })
- }
- }
-
- }
- public updateWidgetData(){
- let base_v = this.getCurEditBaseView()
- let page = base_v.getCurPageView();
- let bg = page.getComponent(scroll_scene).getBg();
- let scene_data = this.getCurEditSceneData()
- let cur_page_num = this.getCurEditBaseView().cur_page();
- let cur_page_data = scene_data.page_list[cur_page_num]
- let temp = []
- // console.log("updateWidgetData",bg)
- for (let index = 0; index < bg.children.length; index++) {
- let node = bg.children[index]
- let temp_data = node.getComponent(widget_item).getData();
- let data = new widget_item_data(temp_data.name,temp_data.type)
- if(temp_data.type==config.Widget_Type_List.CONTAINER_LAYER){
- let container = node.getComponent(widget_item).getContainer()
- temp_data.att.container_layer.widget_list = []
- for (let j = 0; j < container.children.length; j++) {
- const element = container.children[j];
- let element_data = element.getComponent(widget_item).getWidgetAtt();
- let item_data = new widget_item_data(element_data.name,element_data.widget_type)
- item_data.att = element_data
- temp_data.att.container_layer.widget_list.push(item_data)
- }
- data.att = temp_data.att;
- }else{
- data.att = temp_data.att;
- }
- temp.push(data)
- }
- cur_page_data.page_widget_list =temp
- // console.log("updateWidgetData",temp)
- }
- public removeWidget(node:Node){
- // let scene_data = this.getCurEditSceneData()
- // let cur_page_num = this.getCurEditBaseView().cur_page();
- // let cur_page_data = scene_data.page_list[cur_page_num]
- // let data = node.getComponent(widget_item).getData();
- // let index = cur_page_data.page_widget_list.indexOf(data)
- // console.log(" cur_page_data.page_widget_list", cur_page_data.page_widget_list)
- // if(index!=-1){
- // cur_page_data.page_widget_list.splice(index,1)
- // }
- this.updateWidgetData()
- node.destroy()
- node.removeFromParent()
- // console.log(" cur_page_data.page_widget_list", cur_page_data.page_widget_list)
- }
- UpdateEditScene(){
- this.node.destroyAllChildren()
- this.node.removeAllChildren()
- let data = this.m_edit_scene.getCurSelectScene()
- if(data!=null){
- let pf = instantiate(this.m_edit_scene.getPrefabByType())
- pf.parent = this.node
- pf.getComponent(base_view).initView(this.m_edit_scene)
- }
- }
- onClickScene(){
- let base_v = this.getCurEditBaseView()
- if(base_v!=null){
- if(base_v.getCurPageView()!=null){
- ClientEvent.dispatchEvent(config.Event.UpdateAttributes,base_v.getCurPageView().getComponent(scroll_scene).getScenePageAtt())
- }else{
- ClientEvent.dispatchEvent(config.Event.UpdateAttributes,null)
- }
-
- }
- }
- getCurEditSceneData():scene_item_data{
- if(this.node.children.length<=0){
- return null;
- }
- return this.node.children[0].getComponent(base_view).getData()
- }
- getCurEditBaseView():base_view{
- if(this.node.children.length<=0){
- return null;
- }
- return this.node.children[0].getComponent(base_view)
- }
- }
|