// -------------------------------------------------------------------------------
        protected override void ThrottledUpdate()
        {
            if (manager == null)
            {
                manager = localPlayer.GetComponent <AchievementManager>();
            }

            for (int i = 0; i < contentGroup.childCount; i++)
            {
                GameObject.Destroy(contentGroup.GetChild(i).gameObject);
            }

            foreach (AchievementSyncStruct _entry in manager.GetEntries(SortOrder.None, category))
            {
                AchievementSyncStruct entry  = _entry;
                GameObject            prefab = null;

                if (displayType == DisplayType.Horizontal)
                {
                    prefab = horizontalSlotPrefab.gameObject;
                }
                else if (displayType == DisplayType.Vertical)
                {
                    prefab = verticalSlotPrefab.gameObject;
                }
                else if (displayType == DisplayType.Grid)
                {
                    prefab = gridSlotPrefab.gameObject;
                }

                GameObject go = GameObject.Instantiate(prefab);
                go.transform.SetParent(contentGroup, false);
                go.GetComponent <UIPlayerListAchievementSlot>().Init(localPlayer, ref entry);
            }
        }
        public void SaveData_Achievement(GameObject player)
        {
            connection.Execute("DELETE FROM c2w_achievement WHERE owner=?", player.name);

            AchievementManager manager = player.GetComponent <AchievementManager>();

            foreach (AchievementSyncStruct entry in manager.GetEntries())
            {
                connection.InsertOrReplace(new c2w_achievement {
                    owner = player.name,
                    slot  = entry.slot,
                    name  = entry.name,
                    value = entry.value
                });
            }
        }