cur_edit_scene.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. import { _decorator, Component, director, Director, instantiate, Node, Size, UITransform, Vec3 } from 'cc';
  2. import { scene_select_list } from './scene_select_list';
  3. import { edit_scene } from './edit_scene';
  4. import { ClientEvent } from '../clientEvent';
  5. import { config } from '../config';
  6. import { base_view } from './base_view';
  7. import { scroll_scene } from './scroll_scene';
  8. import { tools } from '../tools';
  9. import { widget_item } from './widget_item';
  10. import { scene_item_data, widget_item_data } from '../../data/data';
  11. const { ccclass, property } = _decorator;
  12. @ccclass('cur_edit_scene')
  13. export class cur_edit_scene extends Component {
  14. private m_edit_scene:edit_scene = null;
  15. protected start(): void {
  16. ClientEvent.on(config.Event.UpdateEditScene,this.UpdateEditScene,this)
  17. ClientEvent.on(config.Event.DragWidgetEnd,this.DragWidgetEnd,this)
  18. ClientEvent.on(config.Event.RemoveWidget,this.removeWidget,this)
  19. ClientEvent.on(config.Event.updateWidgetData,this.updateWidgetData,this)
  20. }
  21. public initView(_edit_scene:edit_scene){
  22. this.node.removeAllChildren()
  23. this.m_edit_scene = _edit_scene;
  24. }
  25. DragWidgetEnd(){
  26. if(this.m_edit_scene.getMain().action_node.children.length>0){
  27. let base_v = this.getCurEditBaseView()
  28. if(base_v===null){
  29. tools.showToast("当前没有创建场景")
  30. }else{
  31. let page = base_v.getCurPageView();
  32. if(page===null){
  33. return tools.showToast("当前没有分页")
  34. }
  35. let node = instantiate(this.m_edit_scene.getMain().action_node.children[0])
  36. let bg = page.getComponent(scroll_scene).getBg();
  37. let pos = bg.getComponent(UITransform).convertToNodeSpaceAR(node.position)
  38. let data = this.m_edit_scene.getMain().action_node.children[0].getComponent(widget_item).getData()
  39. node.getComponent(widget_item).initWidgetByScene(data)
  40. if(data.type===config.Widget_Type_List.UI_TOP||data.type===config.Widget_Type_List.TEXT_SOUND){
  41. node.getComponent(UITransform).contentSize = new Size(1080,1920)
  42. node.position = new Vec3(1080*0.5,1920*0.5,0);
  43. }else{
  44. node.position = pos;
  45. }
  46. page.getComponent(scroll_scene).addWidget(node)
  47. //添加数据
  48. // let scene_data = this.getCurEditSceneData()
  49. // let cur_page_num = this.getCurEditBaseView().cur_page();
  50. // let temp_data = node.getComponent(widget_item).getData();
  51. // let cur_page_data = scene_data.page_list[cur_page_num]
  52. // let n_data = new widget_item_data(temp_data.name,temp_data.type)
  53. // n_data.att = temp_data.att;
  54. // cur_page_data.page_widget_list.push(n_data)
  55. director.once(Director.EVENT_AFTER_DRAW,()=>{
  56. this.updateWidgetData()
  57. // console.log("---",this.getCurEditSceneData())
  58. })
  59. }
  60. }
  61. }
  62. public updateWidgetData(){
  63. let base_v = this.getCurEditBaseView()
  64. let page = base_v.getCurPageView();
  65. let bg = page.getComponent(scroll_scene).getBg();
  66. let scene_data = this.getCurEditSceneData()
  67. let cur_page_num = this.getCurEditBaseView().cur_page();
  68. let cur_page_data = scene_data.page_list[cur_page_num]
  69. let temp = []
  70. for (let index = 0; index < bg.children.length; index++) {
  71. let node = bg.children[index]
  72. let temp_data = node.getComponent(widget_item).getData();
  73. let data = new widget_item_data(temp_data.name,temp_data.type)
  74. data.att = temp_data.att;
  75. temp.push(data)
  76. }
  77. cur_page_data.page_widget_list =temp
  78. }
  79. public removeWidget(node:Node){
  80. // let scene_data = this.getCurEditSceneData()
  81. // let cur_page_num = this.getCurEditBaseView().cur_page();
  82. // let cur_page_data = scene_data.page_list[cur_page_num]
  83. // let data = node.getComponent(widget_item).getData();
  84. // let index = cur_page_data.page_widget_list.indexOf(data)
  85. // console.log(" cur_page_data.page_widget_list", cur_page_data.page_widget_list)
  86. // if(index!=-1){
  87. // cur_page_data.page_widget_list.splice(index,1)
  88. // }
  89. this.updateWidgetData()
  90. node.destroy()
  91. node.removeFromParent()
  92. // console.log(" cur_page_data.page_widget_list", cur_page_data.page_widget_list)
  93. }
  94. UpdateEditScene(){
  95. this.node.destroyAllChildren()
  96. this.node.removeAllChildren()
  97. let data = this.m_edit_scene.getCurSelectScene()
  98. if(data!=null){
  99. let pf = instantiate(this.m_edit_scene.getPrefabByType())
  100. pf.parent = this.node
  101. pf.getComponent(base_view).initView(this.m_edit_scene)
  102. }
  103. }
  104. onClickScene(){
  105. let base_v = this.getCurEditBaseView()
  106. if(base_v!=null){
  107. if(base_v.getCurPageView()!=null){
  108. ClientEvent.dispatchEvent(config.Event.UpdateAttributes,base_v.getCurPageView().getComponent(scroll_scene).getScenePageAtt())
  109. }else{
  110. ClientEvent.dispatchEvent(config.Event.UpdateAttributes,null)
  111. }
  112. }
  113. }
  114. getCurEditSceneData():scene_item_data{
  115. if(this.node.children.length<=0){
  116. return null;
  117. }
  118. return this.node.children[0].getComponent(base_view).getData()
  119. }
  120. getCurEditBaseView():base_view{
  121. if(this.node.children.length<=0){
  122. return null;
  123. }
  124. return this.node.children[0].getComponent(base_view)
  125. }
  126. }