RoomSystem.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System.Collections.Generic;
  2. namespace ET.Server
  3. {
  4. [FriendOf(typeof(Room))]
  5. public static class RoomSystem
  6. {
  7. [ObjectSystem]
  8. public class RoomAwakeSystem : AwakeSystem<Room, Player>
  9. {
  10. protected override void Awake(Room self, Player owner)
  11. {
  12. Log.Info($"创建房间实体...");
  13. self.RoomId = RandomGenerator.RandRoomId();
  14. self.Type = 1;
  15. self.OwnerId = owner.Id;
  16. self.Players = new List<Player>();
  17. self.CreateTime = TimeHelper.ServerNow();
  18. // 添加房间玩家集合
  19. self.Players.Add(owner);
  20. // 添加麻将主逻辑组件
  21. switch (self.Type)
  22. {
  23. case 1:
  24. // 黄冈晃晃
  25. self.AddComponent<HGHHMainCheckerComponent>();
  26. break;
  27. case 2:
  28. break;
  29. }
  30. // 添加本地房间数据
  31. self.DomainScene().GetComponent<GameRoomComponent>().Add(self);
  32. }
  33. [ObjectSystem]
  34. public class RoomDestroySystem : DestroySystem<Room>
  35. {
  36. protected override void Destroy(Room self)
  37. {
  38. Log.Info($"销毁房间实体...");
  39. // 移除本地房间数据
  40. self.DomainScene().GetComponent<GameRoomComponent>()?.Remove(self.RoomId);
  41. }
  42. }
  43. }
  44. }
  45. }