attributes_scene_setting.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import { _decorator, Component, EditBox, instantiate, Node, Prefab, Toggle } from 'cc';
  2. import { attributes_data, scene_item_data, scene_tips_rule_data, ui_att_item } from '../../../data/data';
  3. import { scene_tips_rule_item } from './scene_tips_rule_item';
  4. import { config } from '../../config';
  5. import { Attributes } from '../Attributes';
  6. import { main } from '../../main';
  7. const { ccclass, property } = _decorator;
  8. @ccclass('attributes_scene_setting')
  9. export class attributes_scene_setting extends Component {
  10. @property(Prefab) itemPb:Prefab = null;
  11. @property(Node) rule_content:Node = null;
  12. @property(Node) btn_add_rule:Node = null;
  13. @property(Node) rule_find_tips:Node = null;
  14. @property(Node) tips:Node = null;
  15. @property(Node) answer:Node = null;
  16. @property(EditBox) edit_des:EditBox = null;
  17. @property(Node) show_arrow_node:Node = null;
  18. @property(Toggle) toggle_show_arrow:Toggle = null;
  19. private call_back = null;
  20. private m_attributes_call = null;
  21. private m_attributes_data:attributes_data = null;
  22. private m_data:scene_tips_rule_data = null;
  23. public initView(call,attributes_call){
  24. this.call_back = call;
  25. this.m_attributes_call = attributes_call;
  26. this.btn_add_rule.on(Node.EventType.TOUCH_END,()=>{
  27. this.addRule()
  28. })
  29. this.edit_des.node.on(EditBox.EventType.EDITING_DID_ENDED,()=>{
  30. this.m_data.scene_des = this.edit_des.string;
  31. this.update_att(this.m_data)
  32. })
  33. this.toggle_show_arrow.node.on(Toggle.EventType.TOGGLE, ()=>{
  34. Attributes.is_show_more_scene_arrow = !Attributes.is_show_more_scene_arrow
  35. if(this.m_attributes_call!=null) {
  36. this.m_attributes_call(this.m_attributes_data)
  37. }
  38. })
  39. }
  40. public update_att_info(_main:main, data:attributes_data){
  41. this.m_attributes_data = data
  42. let cur_scene_data = _main.edit_scene_view.getCurSelectScene()
  43. if(this.m_attributes_data.type===config.attributes_type.scene) {
  44. if(cur_scene_data.type == config.Scene_Type_List.many_screen_switch_up_down||
  45. cur_scene_data.type == config.Scene_Type_List.many_screen_switch_left_right) {
  46. this.show_arrow_node.active = true
  47. this.toggle_show_arrow.isChecked = Attributes.is_show_more_scene_arrow
  48. } else {
  49. this.show_arrow_node.active = false
  50. }
  51. } else {
  52. this.show_arrow_node.active = false
  53. }
  54. }
  55. public update_att(data:scene_tips_rule_data){
  56. this.m_data = data;
  57. this.rule_content.removeAllChildren()
  58. this.rule_content.destroyAllChildren()
  59. // if(this.rule_content.children.length===this.m_data.rule_list.length){
  60. // for (let index = 0; index < this.rule_content.children.length; index++) {
  61. // const element = this.rule_content.children[index];
  62. // element.getComponent(scene_tips_rule_item).initView(this.m_data.rule_list[index],this.m_data.rule_list.length,this.onTipsDelete.bind(this),config.attributes_list_type.scene_rule_tips)
  63. // }
  64. // }else{
  65. for (let index = 0; index < this.m_data.rule_list.length; index++) {
  66. let item = instantiate(this.itemPb)
  67. item.parent = this.rule_content
  68. item.getComponent(scene_tips_rule_item).initView(this.m_data.rule_list[index],index,this.onTipsDelete.bind(this),config.attributes_list_type.scene_rule_tips)
  69. }
  70. // }
  71. this.edit_des.string = this.m_data.scene_des==undefined?"":this.m_data.scene_des;
  72. this.rule_find_tips.getComponent(scene_tips_rule_item).initView(this.m_data.rule_find_tips,-1,null,config.attributes_list_type.scene_rule_tips)
  73. this.tips.getComponent(scene_tips_rule_item).initView(this.m_data.tips_data.tips_tips,-1,null,config.attributes_list_type.scene_rule_tips)
  74. this.answer.getComponent(scene_tips_rule_item).initView(this.m_data.tips_data.tips_answer,-1,null,config.attributes_list_type.scene_rule_tips)
  75. }
  76. onTipsDelete(index:number){
  77. this.m_data.rule_list.splice(index,1)
  78. }
  79. addRule(){
  80. let item = instantiate(this.itemPb)
  81. item.parent = this.rule_content;
  82. let data = new ui_att_item
  83. item.getComponent(scene_tips_rule_item).initView(data,this.m_data.rule_list.length,this.onTipsDelete.bind(this),config.attributes_list_type.scene_rule_tips)
  84. this.m_data.rule_list.push(data)
  85. }
  86. }