UnitEventEditor.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.EventTrigger;
  3. using CommonFroms.G2D;
  4. using CommonFroms.G2D.DataGrid;
  5. using CommonFroms.Utils;
  6. using CommonLang;
  7. using CommonLang.Xml;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.IO;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Xml;
  14. namespace CommonAIEditor.Unit
  15. {
  16. public class UnitEventEditor : CommonAIEditor.EventEditor.EventEditor
  17. {
  18. //----------------------------------------------------------------------------------------
  19. private FileInfo tree_setting_file;
  20. private UnitEventTemplate mData;
  21. public UnitEventEditor(DataManagerPanel<UnitEventTemplate> owner, UnitEventTemplate data)
  22. {
  23. this.mData = data;
  24. this.OnDataLoaded += UnitEventEditor_OnDataLoaded;
  25. this.OnDataSaved += UnitEventEditor_OnDataSaved;
  26. this.tree_setting_file = new FileInfo(owner.TreeRoot.SettingDir + "\\" + data.ID + ".tree");
  27. }
  28. private void UnitEventEditor_OnDataSaved(EventEditor.EventEditor obj)
  29. {
  30. try
  31. {
  32. var tree_xml = new XmlDocument();
  33. var eroot = tree_xml.CreateElement("root");
  34. tree_xml.AppendChild(eroot);
  35. this.SaveTreeInfo(eroot);
  36. var xmltext = XmlUtil.ToString(tree_xml);
  37. File.WriteAllText(tree_setting_file.FullName, xmltext, CUtils.UTF8);
  38. }
  39. catch (Exception) { }
  40. }
  41. private void UnitEventEditor_OnDataLoaded(EventEditor.EventEditor obj)
  42. {
  43. try
  44. {
  45. var xmltext = File.ReadAllText(tree_setting_file.FullName, CUtils.UTF8);
  46. var tree_xml = XmlUtil.FromString(xmltext);
  47. var eroot = tree_xml.DocumentElement;
  48. this.LoadTreeInfo(eroot);
  49. }
  50. catch (Exception) { }
  51. }
  52. public override List<IEventDataNode> LoadEventDataNodes()
  53. {
  54. this.Text = mData.ToString() + " - 事件编辑器";
  55. List<IEventDataNode> ret = new List<IEventDataNode>();
  56. ret.AddRange(mData.Events);
  57. return ret;
  58. }
  59. public override void OnSave(List<IEventDataNode> events)
  60. {
  61. mData.Events.Clear();
  62. foreach (UnitEvent evt in events)
  63. {
  64. mData.Events.Add(evt);
  65. }
  66. }
  67. public override IEventDataNode CreateEventDataNode()
  68. {
  69. return new UnitEvent();
  70. }
  71. public override IG2DPropertyAdapter[] CreatePropertyAdapters()
  72. {
  73. return new IG2DPropertyAdapter[] { new UnitEventAdapters(this), };
  74. }
  75. public UnitEvent ShowSelectEvent(string srcName)
  76. {
  77. UnitEvent src = mData.GetEvent(srcName);
  78. G2DListSelectEditor<UnitEvent> dialog = new G2DListSelectEditor<UnitEvent>(new List<UnitEvent>(mData.Events), src);
  79. if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  80. {
  81. return dialog.SelectedObject;
  82. }
  83. return null;
  84. }
  85. }
  86. }