edit_scene.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import { _decorator, Component, Node, Prefab } from 'cc';
  2. import { tools } from '../tools';
  3. import { config } from '../config';
  4. import { control } from './control';
  5. import { main } from '../main';
  6. import { scene_item_data } from '../../data/data';
  7. import { scene_select_list } from './scene_select_list';
  8. import { ClientEvent } from '../clientEvent';
  9. import { cur_edit_scene } from './cur_edit_scene';
  10. import { scene_task } from './task/scene_task';
  11. import { http } from '../http';
  12. import { Attributes } from './Attributes';
  13. import { gameManager } from '../run/gameManager';
  14. const { ccclass, property } = _decorator;
  15. @ccclass('edit_scene')
  16. export class edit_scene extends Component {
  17. @property(Node) btn_refresh_scene:Node = null;
  18. @property(Node) btn_add_scene:Node = null;
  19. @property(Node) btn_run:Node = null;
  20. @property(Node) btn_run_all:Node = null;
  21. @property(Node) btn_save:Node = null;
  22. @property(Node) btn_delete:Node = null;
  23. @property(Node) scene_select_list:Node = null;
  24. @property(Node) scene_task:Node = null;
  25. @property(Prefab) scene_prefab:Prefab = null;
  26. @property(Node) cur_edit_scene_node:Node = null;
  27. @property(Node) btn_widget_list:Node = null;
  28. private m_main:main = null;
  29. public getMain(){
  30. return this.m_main;
  31. }
  32. public init(_main:main){
  33. this.m_main = _main
  34. this.initSceneList()
  35. this.cur_edit_scene_node.getComponent(cur_edit_scene).initView(this)
  36. this.scene_select_list.getComponent(scene_select_list).initView(this.m_main)
  37. this.scene_task.getComponent(scene_task).initView(this)
  38. }
  39. public getTaskData(){
  40. return this.scene_task.getComponent(scene_task).getTaskData()
  41. }
  42. public getCurSelectSceneIndex(){
  43. return this.scene_select_list.getComponent(scene_select_list).getCurSelectSceneIndex();
  44. }
  45. public getCurSelectScene(){
  46. return this.scene_select_list.getComponent(scene_select_list).getCurSelectScene()
  47. }
  48. public getCurEditBaseView(){
  49. return this.cur_edit_scene_node.getComponent(cur_edit_scene).getCurEditBaseView()
  50. }
  51. public getPrefabByType():Prefab{
  52. return this.scene_prefab;
  53. }
  54. initSceneList(){
  55. }
  56. onAddScene(data:scene_item_data){
  57. this.m_main.control_view.push_scene_data(data)
  58. ClientEvent.dispatchEvent(config.Event.UpdateSceneList)
  59. }
  60. protected start(): void {
  61. this.btn_refresh_scene.on(Node.EventType.TOUCH_END, ()=> {
  62. ClientEvent.dispatchEvent(config.Event.UpdateEditScene)
  63. })
  64. this.btn_add_scene.on(Node.EventType.TOUCH_END,()=>{
  65. tools.show_add_scene(this.onAddScene.bind(this))
  66. })
  67. this.btn_run.on(Node.EventType.TOUCH_END,()=>{
  68. let curScene = this.getCurSelectScene()
  69. if(curScene.is_child_scene){
  70. return tools.showToast("子场景不可以运行")
  71. }
  72. // tools.game_run()
  73. tools.show_loading(()=>{
  74. tools.game_run(()=>{
  75. tools.hide_loading()
  76. })
  77. })
  78. })
  79. this.btn_run_all.on(Node.EventType.TOUCH_END,()=>{
  80. tools.game_run_all()
  81. })
  82. this.btn_save.on(Node.EventType.TOUCH_END,()=>{
  83. tools.requestSaveEditScene()
  84. })
  85. this.btn_delete.on(Node.EventType.TOUCH_END,()=>{
  86. if(this.m_main.control_view.get_bag_data().content.length<=0){
  87. tools.showToast("暂无场景可以删除!")
  88. }else{
  89. tools.show_dialog("是否删除当前选中的场景?",()=>{
  90. this.m_main.control_view.remove_scene_data(this.scene_select_list.getComponent(scene_select_list).getCurSelectScene())
  91. ClientEvent.dispatchEvent(config.Event.UpdateSceneList)
  92. })
  93. }
  94. })
  95. this.btn_widget_list.on(Node.EventType.TOUCH_END,()=>{
  96. Attributes.Singleton.hideAllAtt()
  97. ClientEvent.dispatchEvent(config.Event.ShowWidgetList)
  98. })
  99. }
  100. }