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; }
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); } }
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()); } }
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()); } }
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);