PlayerDataComponentSystem.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. namespace ET.Server
  2. {
  3. [FriendOf(typeof (PlayerDataComponent))]
  4. public static class PlayerDataComponentSystem
  5. {
  6. public class PlayerDataComponentaAwakeSystem: AwakeSystem<PlayerDataComponent, PlayerInfo, WNPlayer>
  7. {
  8. /// <summary>
  9. /// 玩家基础数据组件创建
  10. /// </summary>
  11. /// <param name="self"></param>
  12. /// <param name="info"></param>
  13. /// <param name="player"></param>
  14. protected override void Awake(PlayerDataComponent self, PlayerInfo info, WNPlayer player)
  15. {
  16. Log.Info($"创建玩家基础数据组件...");
  17. self.Player = player;
  18. self.Data = info;
  19. }
  20. }
  21. public class PlayerDataComponentDestroySystem: DestroySystem<PlayerDataComponent>
  22. {
  23. /// <summary>
  24. /// 玩家基础数据组件销毁
  25. /// </summary>
  26. /// <param name="self"></param>
  27. protected override void Destroy(PlayerDataComponent self)
  28. {
  29. Log.Debug($"玩家基础数据保存");
  30. self?.Save();
  31. }
  32. }
  33. public static async ETTask Save(this PlayerDataComponent self)
  34. {
  35. if (self.Data != null)
  36. {
  37. self.Data.Id = self.Player.GetId();
  38. await DBManagerComponent.Instance.GetZoneDB(self.DomainZone()).Save(self.Data);
  39. }
  40. }
  41. }
  42. }