edit_scene.ts 4.3 KB

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