Example #1
0
        protected virtual void CacheDependencies(LocalizationTableCollection collection)
        {
            foreach (var table in collection.Tables)
            {
                var guid = LocalizationEditorSettings.Instance.GetAssetGuid(table.GetInstanceId());
                m_GuidToCollection[guid] = collection;
            }

            m_GuidToCollection[TableReference.StringFromGuid(collection.SharedData.TableCollectionNameGuid)] = collection;
        }
Example #2
0
 void OnTableRemovedFromCollection(LocalizationTableCollection collection, LocalizationTable table)
 {
     if (m_GuidToCollection != null)
     {
         if (!AssetDatabase.TryGetGUIDAndLocalFileIdentifier(table, out var guid, out long _))
         {
             Debug.LogError("Failed to extract table guid: " + table?.name, table);
             return;
         }
         m_GuidToCollection.Remove(guid);
     }
 }
Example #3
0
 void OnCollectionRemoved(LocalizationTableCollection collection)
 {
     if (collection is StringTableCollection stringTableCollection)
     {
         if (m_StringTableCollections != null && m_StringTableCollections.Contains(stringTableCollection))
         {
             m_StringTableCollections.Remove(stringTableCollection);
             m_GuidToCollection = null; // Clear cache
         }
     }
     else if (collection is AssetTableCollection assetTableCollection)
     {
         if (m_AssetTableCollections != null && m_AssetTableCollections.Contains(assetTableCollection))
         {
             m_AssetTableCollections.Remove(assetTableCollection);
             m_GuidToCollection = null; // Clear cache
         }
     }
     else
     {
         throw new System.Exception("Unhandled collection type: " + collection.GetType());
     }
 }
Example #4
0
        protected virtual void AddToCache(LocalizationTableCollection collection)
        {
            var validState = collection.IsValid;

            if (!validState.valid)
            {
                Debug.LogWarning($"Collection {collection.name} is invalid and will be ignored because {validState.error}.");
                return;
            }

            if (collection is StringTableCollection stringTableCollection)
            {
                if (m_StringTableCollections != null && !m_StringTableCollections.Contains(stringTableCollection))
                {
                    m_StringTableCollections.Add(stringTableCollection);
                    if (m_GuidToCollection != null)
                    {
                        CacheDependencies(stringTableCollection);
                    }
                }
            }
            else if (collection is AssetTableCollection assetTableCollection)
            {
                if (m_AssetTableCollections != null && !m_AssetTableCollections.Contains(assetTableCollection))
                {
                    m_AssetTableCollections.Add(assetTableCollection);
                    if (m_GuidToCollection != null)
                    {
                        CacheDependencies(assetTableCollection);
                    }
                }
            }
            else
            {
                throw new System.Exception("Unhandled collection type: " + collection.GetType());
            }
        }
Example #5
0
 internal void Init(LocalizationTableCollection target)
 {
     m_Collection = target;
 }
 internal virtual void RaiseTableRemovedFromCollection(LocalizationTableCollection collection, LocalizationTable table) => TableRemovedFromCollection?.Invoke(collection, table);
 internal virtual void RaiseTableAddedToCollection(LocalizationTableCollection collection, LocalizationTable table) => TableAddedToCollection?.Invoke(collection, table);
 internal virtual void RaiseCollectionRemoved(LocalizationTableCollection collection) => CollectionRemoved?.Invoke(collection);
 internal virtual void RaiseCollectionModified(object sender, LocalizationTableCollection collection) => CollectionModified?.Invoke(sender, collection);
 internal virtual void RaiseTableEntryRemoved(LocalizationTableCollection collection, SharedTableData.SharedTableEntry entry) => TableEntryRemoved?.Invoke(collection, entry);