コード例 #1
0
ファイル: NbtCompound.cs プロジェクト: fcraft-based/GemsCraft
        internal override T Query <T>(TagQuery query, bool bypassCheck)
        {
            TagQueryToken token = null;

            if (!bypassCheck)
            {
                token = query.Next();

                if (token != null && !token.Name.Equals(Name))
                {
                    return(null);
                }
            }

            TagQueryToken nextToken = query.Peek();

            if (nextToken != null)
            {
                NbtTag nextTag = Get(nextToken.Name);
                if (nextTag == null)
                {
                    return(null);
                }

                return(nextTag.Query <T>(query));
            }

            return((T)((NbtTag)this));
        }
コード例 #2
0
ファイル: NbtCompound.cs プロジェクト: fcraft-based/GemsCraft
        public void Set(int tagIdx, NbtTag tag)
        {
            if (tagIdx > Tags.Count)
            {
                throw new IndexOutOfRangeException();
            }

            Tags[tagIdx] = tag;
        }
コード例 #3
0
ファイル: NbtCompound.cs プロジェクト: fcraft-based/GemsCraft
 public void Set(string tagName, NbtTag tag)
 {
     foreach (var tg in Tags)
     {
         if (tg.Name.Equals(tagName))
         {
             int idx = Tags.IndexOf(tg);
             Tags[idx] = tag;
             if (TagCache.ContainsKey(tagName))
             {
                 TagCache[tagName] = tag;
             }
             return;
         }
     }
 }