Exemple #1
0
 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));
     }
 }
Exemple #2
0
 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);
 }
Exemple #3
0
 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);
 }
Exemple #4
0
        ////////////////////////////////////////////////////////////////////////////
        ////////////////////////////////////////////////////////////////////////////

        internal bool TryGetCharacter(string id, out uint character)
        {
            return(CharacterLookupTable.TryGetValue(id, out character));
        }