internal bool TryUnregisterImageInfo(string id, out uint unregisteredCharacter) { lock (m_Lock) { if (!CharacterLookupTable.TryGetValue(id, out var c)) { unregisteredCharacter = 0; return(false); } if (Font.characterLookupTable.ContainsKey(c)) { Font.characterLookupTable.Remove(c); } CharacterLookupTable.TryRemove(id, out unregisteredCharacter); return(ImageInfoLookupTable.TryRemove(unregisteredCharacter, out var unregisteredImageInfo)); } }
internal bool TryRegisterImageInfo(BeatSaberPlus.Utils.EnhancedImageInfo imageInfo, out uint replaceCharacter) { if (!CharacterLookupTable.ContainsKey(imageInfo.ImageID)) { uint next; do { next = GetNextReplaceChar(); }while (Font.characterLookupTable.ContainsKey(next)); Font.characterLookupTable.Add(next, new TMP_Character(next, new Glyph(next, new UnityEngine.TextCore.GlyphMetrics(0, 0, 0, 0, imageInfo.Width), new UnityEngine.TextCore.GlyphRect(0, 0, 0, 0)))); CharacterLookupTable.TryAdd(imageInfo.ImageID, next); ImageInfoLookupTable.TryAdd(next, imageInfo); replaceCharacter = next; return(true); } replaceCharacter = 0; return(false); }
public bool TryRegisterImageInfo(EnhancedImageInfo imageInfo, out uint replaceCharacter) { if (!CharacterLookupTable.ContainsKey(imageInfo.ImageId)) { uint next; do { next = GetNextReplaceChar(); }while (Font.characterLookupTable.ContainsKey(next)); Font.characterLookupTable.Add(next, new TMP_Character(next, new Glyph(next, new GlyphMetrics(0, 0, 0, 0, imageInfo.Width), new GlyphRect(0, 0, 0, 0)))); CharacterLookupTable.TryAdd(imageInfo.ImageId, next); ImageInfoLookupTable.TryAdd(next, imageInfo); replaceCharacter = next; return(true); } replaceCharacter = 0; return(false); }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// internal bool TryGetCharacter(string id, out uint character) { return(CharacterLookupTable.TryGetValue(id, out character)); }