Example #1
0
 public ChunkManagerV8(RegionChunkDataNode chunk) : base(chunk) => Version = DataVersion.V8;
Example #2
0
 internal ChunkManager(RegionChunkDataNode chunk)
 {
     Node = chunk;
     Info = ChunkInfo.FromChunkInRegion(chunk);
 }
Example #3
0
        private DataNode Search(DataNode node)
        {
            if (node is DirectoryDataNode)
            {
                DirectoryDataNode dirNode = node as DirectoryDataNode;
                if (!dirNode.IsExpanded)
                {
                    dirNode.Expand();
                }

                foreach (var subNode in dirNode.Nodes)
                {
                    DataNode resultNode = Search(subNode);
                    if (resultNode != null)
                    {
                        return(resultNode);
                    }
                }

                return(null);
            }
            else if (node is RegionFileDataNode)
            {
                RegionFileDataNode regionNode = node as RegionFileDataNode;

                int rx, rz;
                if (!RegionFileDataNode.RegionCoordinates(regionNode.NodePathName, out rx, out rz))
                {
                    return(null);
                }
                if (rx != _groupX.Region.Value || rz != _groupZ.Region.Value)
                {
                    return(null);
                }

                if (!regionNode.IsExpanded)
                {
                    regionNode.Expand();
                }

                foreach (var subNode in regionNode.Nodes)
                {
                    DataNode resultNode = Search(subNode);
                    if (resultNode != null)
                    {
                        return(resultNode);
                    }
                }

                return(null);
            }
            else if (node is RegionChunkDataNode)
            {
                RegionChunkDataNode chunkNode = node as RegionChunkDataNode;
                if (chunkNode.X != _groupX.LocalChunk.Value || chunkNode.Z != _groupZ.LocalChunk.Value)
                {
                    return(null);
                }

                return(chunkNode);
            }

            return(null);
        }
 internal ChunkManagerV14(RegionChunkDataNode chunk) : base(chunk) => Version = DataVersion.V14;