Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / RoomInfo.cs
@小李xl 小李xl on 28 Feb 2023 1 KB 小修改
  1.  
  2. using System.Collections.Generic;
  3. using Godot;
  4.  
  5. /// <summary>
  6. /// 房间的数据描述
  7. /// </summary>
  8. public class RoomInfo
  9. {
  10. public RoomInfo(int id, DungeonRoomSplit roomSplit)
  11. {
  12. Id = id;
  13. RoomSplit = roomSplit;
  14. }
  15.  
  16. /// <summary>
  17. /// 房间 id
  18. /// </summary>
  19. public int Id;
  20.  
  21. /// <summary>
  22. /// 生成该房间使用的配置数据
  23. /// </summary>
  24. public DungeonRoomSplit RoomSplit;
  25. /// <summary>
  26. /// 房间大小, 单位: 格
  27. /// </summary>
  28. public Vector2I Size;
  29.  
  30. /// <summary>
  31. /// 房间位置, 单位: 格
  32. /// </summary>
  33. public Vector2I Position;
  34. /// <summary>
  35. /// 门
  36. /// </summary>
  37. public List<RoomDoorInfo> Doors = new List<RoomDoorInfo>();
  38.  
  39. /// <summary>
  40. /// 下一个房间
  41. /// </summary>
  42. public List<RoomInfo> Next = new List<RoomInfo>();
  43. /// <summary>
  44. /// 上一个房间
  45. /// </summary>
  46. public RoomInfo Prev;
  47.  
  48. /// <summary>
  49. /// 获取房间横轴结束位置, 单位: 格
  50. /// </summary>
  51. public int GetHorizontalEnd()
  52. {
  53. return Position.X + Size.X;
  54. }
  55.  
  56. /// <summary>
  57. /// 获取房间纵轴结束位置, 单位: 格
  58. /// </summary>
  59. public int GetVerticalEnd()
  60. {
  61. return Position.Y + Size.Y;
  62. }
  63. /// <summary>
  64. /// 获取房间横轴开始位置, 单位: 格
  65. /// </summary>
  66. public int GetHorizontalStart()
  67. {
  68. return Position.X;
  69. }
  70.  
  71. /// <summary>
  72. /// 获取房间纵轴开始位置, 单位: 格
  73. /// </summary>
  74. public int GetVerticalStart()
  75. {
  76. return Position.Y;
  77. }
  78. }