IEntity.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. //------------------------------------------------------------
  2. // Game Framework
  3. // Copyright © 2013-2021 loyalsoft. All rights reserved.
  4. // Homepage: http://www.game7000.com/
  5. // Feedback: http://www.game7000.com/
  6. //------------------------------------------------------------
  7. namespace GameFramework.Entity
  8. {
  9. /// <summary>
  10. /// 实体接口。
  11. /// </summary>
  12. public interface IEntity
  13. {
  14. /// <summary>
  15. /// 获取实体编号。
  16. /// </summary>
  17. int Id
  18. {
  19. get;
  20. }
  21. /// <summary>
  22. /// 获取实体资源名称。
  23. /// </summary>
  24. string EntityAssetName
  25. {
  26. get;
  27. }
  28. /// <summary>
  29. /// 获取实体实例。
  30. /// </summary>
  31. object Handle
  32. {
  33. get;
  34. }
  35. /// <summary>
  36. /// 获取实体所属的实体组。
  37. /// </summary>
  38. IEntityGroup EntityGroup
  39. {
  40. get;
  41. }
  42. /// <summary>
  43. /// 实体初始化。
  44. /// </summary>
  45. /// <param name="entityId">实体编号。</param>
  46. /// <param name="entityAssetName">实体资源名称。</param>
  47. /// <param name="entityGroup">实体所属的实体组。</param>
  48. /// <param name="isNewInstance">是否是新实例。</param>
  49. /// <param name="userData">用户自定义数据。</param>
  50. void OnInit(int entityId, string entityAssetName, IEntityGroup entityGroup, bool isNewInstance, object userData);
  51. /// <summary>
  52. /// 实体回收。
  53. /// </summary>
  54. void OnRecycle();
  55. /// <summary>
  56. /// 实体显示。
  57. /// </summary>
  58. /// <param name="userData">用户自定义数据。</param>
  59. void OnShow(object userData);
  60. /// <summary>
  61. /// 实体隐藏。
  62. /// </summary>
  63. /// <param name="isShutdown">是否是关闭实体管理器时触发。</param>
  64. /// <param name="userData">用户自定义数据。</param>
  65. void OnHide(bool isShutdown, object userData);
  66. /// <summary>
  67. /// 实体附加子实体。
  68. /// </summary>
  69. /// <param name="childEntity">附加的子实体。</param>
  70. /// <param name="userData">用户自定义数据。</param>
  71. void OnAttached(IEntity childEntity, object userData);
  72. /// <summary>
  73. /// 实体解除子实体。
  74. /// </summary>
  75. /// <param name="childEntity">解除的子实体。</param>
  76. /// <param name="userData">用户自定义数据。</param>
  77. void OnDetached(IEntity childEntity, object userData);
  78. /// <summary>
  79. /// 实体附加子实体。
  80. /// </summary>
  81. /// <param name="parentEntity">被附加的父实体。</param>
  82. /// <param name="userData">用户自定义数据。</param>
  83. void OnAttachTo(IEntity parentEntity, object userData);
  84. /// <summary>
  85. /// 实体解除子实体。
  86. /// </summary>
  87. /// <param name="parentEntity">被解除的父实体。</param>
  88. /// <param name="userData">用户自定义数据。</param>
  89. void OnDetachFrom(IEntity parentEntity, object userData);
  90. /// <summary>
  91. /// 实体轮询。
  92. /// </summary>
  93. /// <param name="elapseSeconds">逻辑流逝时间,以秒为单位。</param>
  94. /// <param name="realElapseSeconds">真实流逝时间,以秒为单位。</param>
  95. void OnUpdate(float elapseSeconds, float realElapseSeconds);
  96. }
  97. }