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)); }
public void Set(int tagIdx, NbtTag tag) { if (tagIdx > Tags.Count) { throw new IndexOutOfRangeException(); } Tags[tagIdx] = tag; }
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; } } }