Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / ui / mapEditorCreateGroup / MapEditorCreateGroupPanel.cs
@小李xl 小李xl on 23 Jul 2023 1 KB 创建地牢组和地牢房间
  1. using System.IO;
  2. using System.Text.RegularExpressions;
  3. using Godot;
  4.  
  5. namespace UI.MapEditorCreateGroup;
  6.  
  7. public partial class MapEditorCreateGroupPanel : MapEditorCreateGroup
  8. {
  9.  
  10. /// <summary>
  11. /// 填完数据后获取数据对象, 并进行验证, 如果验证失败, 则返回 null
  12. /// </summary>
  13. public DungeonRoomGroup GetGroupInfo()
  14. {
  15. //组名
  16. var groupName = S_GroupNameInput.Instance.Text;
  17. //检查名称是否合规
  18. if (!Regex.IsMatch(groupName, "^\\w+$"))
  19. {
  20. EditorTipsManager.ShowTips("错误", "组名称'" + groupName + "'不符合名称约束, 组名称只允许包含大小写字母和数字!");
  21. return null;
  22. }
  23. //验证是否有同名组
  24. var path = MapProjectManager.CustomMapPath + groupName;
  25. var dir = new DirectoryInfo(path);
  26. if (dir.Exists && dir.GetDirectories().Length > 0)
  27. {
  28. EditorTipsManager.ShowTips("错误", $"已经有相同路径的房间了!");
  29. return null;
  30. }
  31.  
  32. var group = new DungeonRoomGroup();
  33. group.GroupName = groupName;
  34. group.Remark = S_RemarkInput.Instance.Text;
  35. return group;
  36. }
  37. }