public void AddOrUpdate(ScriptID id) { var n0 = Search(id.Name); var n1 = Search(id.FileID, id.GUID); if (n1 != null && n0 != n1) { throw new System.Exception($"查询到冲突:\nname:{id.Name},fileID:{id.FileID},guid:{id.GUID}\nname:{n1.Name},fileID:{n1.FileID},guid:{n1.GUID}"); } if (n0 != null) { n0.FileID = id.FileID; n0.GUID = id.GUID; if (Log) { Debug.Log($"update {n0.Name} from fileID:{n0.FileID},guid:{n0.GUID} to fileID:{id.FileID},guid:{id.GUID}"); } } else { _all.Add(id); if (Log) { Debug.Log($"add name:{id.Name},fileID:{id.FileID},guid:{id.GUID}"); } } }
public bool Add(ScriptID id) { var n0 = Search(id.Name); if (n0 != null) { return(false); } else { _all.Add(id); return(true); } }
/// <summary> /// Returns true if specified script is Indic. /// </summary> private static bool IsScriptIndic(ScriptID scriptId) { if (scriptId == ScriptID.Bengali || scriptId == ScriptID.Devanagari || scriptId == ScriptID.Gurmukhi || scriptId == ScriptID.Gujarati || scriptId == ScriptID.Kannada || scriptId == ScriptID.Malayalam || scriptId == ScriptID.Oriya || scriptId == ScriptID.Tamil || scriptId == ScriptID.Telugu) { return(true); } else { return(false); } }
public void GetCharAttribute( int unicodeScalar, out bool isCombining, out bool needsCaretInfo, out bool isIndic, out bool isDigit, out bool isLatin, out bool isStrong ) { CharacterAttribute charAttribute = Classification.CharAttributeOf((int)Classification.GetUnicodeClass(unicodeScalar)); byte itemClass = charAttribute.ItemClass; isCombining = (itemClass == (byte)ItemClass.SimpleMarkClass || itemClass == (byte)ItemClass.ComplexMarkClass || Classification.IsIVS(unicodeScalar)); isStrong = (itemClass == (byte)ItemClass.StrongClass); int script = charAttribute.Script; needsCaretInfo = ScriptCaretInfo[script]; ScriptID scriptId = (ScriptID)script; isDigit = scriptId == ScriptID.Digit; isLatin = scriptId == ScriptID.Latin; if (isLatin) { isIndic = false; } else { isIndic = IsScriptIndic(scriptId); } }
public void Write(SerializedWriter writer) { if (HasScriptTypeIndex(writer.Generation)) { writer.Write((int)TypeID); } else { writer.Write(OriginalTypeID); } if (HasIsStrippedType(writer.Generation)) { writer.Write(IsStrippedType); } if (HasScriptTypeIndex(writer.Generation)) { writer.Write(ScriptTypeIndex); } if (HasHash(writer.Generation)) { if (TypeID == ClassIDType.MonoBehaviour) { ScriptID.Write(writer); } OldTypeHash.Write(writer); } if (OldType != null) { OldType.Write(writer); if (HasTypeDependencies(writer.Generation)) { writer.WriteArray(TypeDependencies); } } }
public void Read(SerializedReader reader) { if (HasScriptTypeIndex(reader.Generation)) { TypeID = (ClassIDType)reader.ReadInt32(); } else { OriginalTypeID = reader.ReadInt32(); } if (HasIsStrippedType(reader.Generation)) { IsStrippedType = reader.ReadBoolean(); } if (HasScriptTypeIndex(reader.Generation)) { ScriptTypeIndex = reader.ReadInt16(); } if (HasHash(reader.Generation)) { if (TypeID == ClassIDType.MonoBehaviour) { ScriptID.Read(reader); } OldTypeHash.Read(reader); } if (OldType != null) { OldType.Read(reader); if (HasTypeDependencies(reader.Generation)) { TypeDependencies = reader.ReadInt32Array(); } } }
/// <summary> /// Returns true if specified script is Indic. /// </summary> private static bool IsScriptIndic(ScriptID scriptId) { if (scriptId == ScriptID.Bengali || scriptId == ScriptID.Devanagari || scriptId == ScriptID.Gurmukhi || scriptId == ScriptID.Gujarati || scriptId == ScriptID.Kannada || scriptId == ScriptID.Malayalam || scriptId == ScriptID.Oriya || scriptId == ScriptID.Tamil || scriptId == ScriptID.Telugu) { return true; } else { return false; } }