コード例 #1
0
 public static async ETTask DestroyByInviteId(this InviteComponent self, long id)
 {
     if (self._Remove(id))
     {
         await self.MemorySync.Delete <Invite>(id);
     }
 }
コード例 #2
0
        public static void Start(this InviteComponent self)
        {
            var proxy = Game.Scene.GetComponent <CacheProxyComponent>();

            self.MemorySync               = proxy.GetMemorySyncSolver <Invite>();
            self.MemorySync.onCreate     += self.OnCreated;
            self.MemorySync.onWillDelete += self.OnDeleted;
        }
コード例 #3
0
        public static async ETTask <Invite> CreateInvite(this InviteComponent self, InviteData inviteData)
        {
            Invite invite = ComponentFactory.CreateWithId <Invite>(IdGenerater.GenerateId());

            invite.SetData(inviteData);
            self._Create(invite);
            await self.MemorySync.Create(invite);

            return(invite);
        }
コード例 #4
0
 public static async ETTask DestroyByUid(this InviteComponent self, long uid)
 {
     if (self._uIdInviteDict.TryGetValue(uid, out var inviteList))
     {
         for (int i = inviteList.Count - 1; i >= 0; i--)
         {
             self._idInviteDict.Remove(inviteList[i].Id);
             inviteList[i].Dispose();
             inviteList.RemoveAt(i);
             await self.MemorySync.Delete <Invite>(inviteList[i].Id);
         }
         self._uIdInviteDict.Remove(uid);
     }
 }
コード例 #5
0
        private static void OnDeleted(this InviteComponent self, long id)
        {
            //if (self.MemorySync.IsMine(id))
            //    return;
            var invite = self.MemorySync.Get <Invite>(id);

            if (invite == null)
            {
                // GG跑到這邊表示有問題
                Log.Error($"Invite[{id}] is missing!");
            }
            else
            {
                self._Remove(invite.Id);
            }
        }
コード例 #6
0
        public static void Destroy(this InviteComponent self)
        {
            if (self.IsDisposed)
            {
                return;
            }
            self.Dispose();

            foreach (Invite invite in self._idInviteDict.Values)
            {
                invite.Dispose();
            }
            self._idInviteDict.Clear();
            self._uIdInviteDict.Clear();

            self.MemorySync.onCreate     -= self.OnCreated;
            self.MemorySync.onWillDelete -= self.OnDeleted;
            // 非擁有者請勿操作Dispose
            self.MemorySync.Dispose();
        }