public void FindLooseTablesUsingSharedTableData(SharedTableData sharedTableData, IList <LocalizedTable> foundTables) { if (sharedTableData == null) { throw new ArgumentNullException(nameof(sharedTableData)); } if (foundTables == null) { throw new ArgumentNullException(nameof(foundTables)); } // We need to find all tables that reference the shared table data that do not belong to a collection var foundAssets = AssetDatabase.FindAssets("t:LocalizedTable"); foreach (var guid in foundAssets) { // Ignore tables we know about if (CollectionDependencies.ContainsKey(guid)) { continue; } // Filter by table type var path = AssetDatabase.GUIDToAssetPath(guid); var loadedTable = AssetDatabase.LoadAssetAtPath <LocalizedTable>(path); if (loadedTable.SharedData == sharedTableData) { foundTables.Add(loadedTable); } } }
public void Setup() { LocalizationSettingsHelper.SaveCurrentSettings(); m_SharedStringTableData = ScriptableObject.CreateInstance <SharedTableData>(); m_SharedStringTableData.TableCollectionName = kStringTableCollectionName; m_SharedStringTableData.TableCollectionNameGuid = kStringTableNameGuid; m_SharedStringTableData.AddKey(kStringKeyName, kStringKeyId); m_SharedAssetTableData = ScriptableObject.CreateInstance <SharedTableData>(); m_SharedAssetTableData.TableCollectionName = kAssetTableCollectionName; m_SharedAssetTableData.TableCollectionNameGuid = kAssetTableNameGuid; m_Settings = LocalizationSettingsHelper.CreateEmpty(); var stringDb = new LocalizedStringDatabase(); m_Settings.SetStringDatabase(stringDb); var assetDb = new LocalizedAssetDatabase(); m_Settings.SetAssetDatabase(assetDb); var rm = new ResourceManager(); stringDb.SharedTableDataOperations[kStringTableNameGuid] = rm.CreateCompletedOperation(m_SharedStringTableData, null); assetDb.SharedTableDataOperations[kAssetTableNameGuid] = rm.CreateCompletedOperation(m_SharedAssetTableData, null); LocalizationSettings.Instance = m_Settings; }
public void Init() { m_Table = ScriptableObject.CreateInstance <TTable>(); m_Table.name = nameof(TTable); m_SharedTableData = ScriptableObject.CreateInstance <SharedTableData>(); m_SharedTableData.name = "Shared " + m_Table.name; m_Table.SharedData = m_SharedTableData; }
public void Init() { m_Table = ScriptableObject.CreateInstance <TTable>(); m_Table.name = $"SharedTableEntryMetadataTests - {nameof(TTable)}"; m_SharedTableData = ScriptableObject.CreateInstance <SharedTableData>(); m_SharedTableData.name = "Shared " + m_Table.name; m_Table.SharedData = m_SharedTableData; }
public void Init() { m_SharedTableData = ScriptableObject.CreateInstance <SharedTableData>(); for (int i = 0; i < 100; ++i) { m_SharedTableData.AddKey("My Key " + i); } }
public void Setup() { m_SharedTableData = ScriptableObject.CreateInstance <SharedTableData>(); var key = m_SharedTableData.AddKey(); key.Metadata.AddMetadata(new Comment { CommentText = kCommentText }); m_SharedTableDataSerializedObject = new SerializedObject(m_SharedTableData); m_SharedEntryMetadataProperty = m_SharedTableDataSerializedObject.FindProperty(kMetadataPath); m_CommentProperty = m_SharedEntryMetadataProperty.FindPropertyRelative(kCommentPath); }
public LocalizedTableCollection FindCollectionForSharedTableData(SharedTableData sharedTableData) { if (sharedTableData == null) { throw new ArgumentNullException(nameof(sharedTableData)); } if (AssetDatabase.TryGetGUIDAndLocalFileIdentifier(sharedTableData, out var guid, out long _)) { return(FindCollectionFromDependencyGuid(guid)); } return(null); }
static SharedTableData.SharedTableEntry GetOrCreateEntryFromTranslationUnit(SharedTableData sharedTableData, ITranslationUnit unit) { // Does it contain an id? long keyId = SharedTableData.EmptyId; string name = null; if (!string.IsNullOrEmpty(unit.Id)) { if (long.TryParse(unit.Id, out keyId)) { var entry = sharedTableData.GetEntry(keyId); if (entry != null) { return(entry); } } else { // Is the Id a name? var entry = sharedTableData.GetEntry(unit.Id); if (entry != null) { return(entry); } name = unit.Id; } } // Use the name if (!string.IsNullOrEmpty(unit.Name)) { var entry = sharedTableData.GetEntry(unit.Name); if (entry != null) { return(entry); } name = unit.Name; } // Create a new entry if (keyId != SharedTableData.EmptyId) { return(sharedTableData.AddKey(name, keyId)); } if (!string.IsNullOrEmpty(name)) { return(sharedTableData.AddKey(name)); } return(sharedTableData.AddKey()); }
void Init(SerializedProperty property) { if (m_PlatformOverridesList == null) { m_PlatformOverridesList = new ReorderableList(property.serializedObject, property.FindPropertyRelative("m_PlatformOverrides")) { drawElementCallback = DrawListElement, drawHeaderCallback = DrawListHeader, onAddDropdownCallback = DrawAddDropdown, elementHeightCallback = GetHeight }; var target = m_PlatformOverridesList.serializedProperty.serializedObject.targetObject; SharedTableData sharedTableData = target as SharedTableData ?? (target as LocalizationTable)?.SharedData; Debug.Assert(sharedTableData != null, "Shared Table Data is null. Platform Override can only be used on a Shared Table Entry."); m_Collection = LocalizationEditorSettings.GetCollectionForSharedTableData(sharedTableData); m_TableType = m_Collection.GetType() == typeof(StringTableCollection) ? typeof(StringTable) : typeof(AssetTable); } }
public override void PullBegin(StringTableCollection collection) { m_SharedTableData = collection.SharedData; }
static string GetEntryLabel(TableEntryReference entryReference, SharedTableData sharedTableData) { return(entryReference.ReferenceType != TableEntryReference.Type.Empty ? entryReference.ResolveKeyName(sharedTableData) : "None"); }