PlayerDataComponentSystem.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. self.Player = player;
  17. self.Data = info;
  18. }
  19. }
  20. public class PlayerDataComponentDestroySystem: DestroySystem<PlayerDataComponent>
  21. {
  22. /// <summary>
  23. /// 玩家基础数据组件销毁
  24. /// </summary>
  25. /// <param name="self"></param>
  26. protected override void Destroy(PlayerDataComponent self)
  27. {
  28. Log.Debug($"玩家基础数据保存");
  29. self?.Save();
  30. }
  31. }
  32. public static async ETTask Save(this PlayerDataComponent self)
  33. {
  34. if (self.Data != null)
  35. {
  36. self.Data.PlayerId = self.Player.GetId();
  37. await DBManagerComponent.Instance.GetZoneDB(self.DomainZone()).Save(self.Data);
  38. }
  39. }
  40. }
  41. }