Exemple #1
0
        //把这个区域的data载入到内存中(从文件)
        private static bool LoadRegionData(Index regionIndex)
        {
            string indexString = regionIndex.ToString();

            //如果没有载入
            if (LoadedRegions.ContainsKey(indexString) == false)
            {
                // 如果文件存在,就载入
                string regionPath = GetRegionPath(regionIndex);
                if (File.Exists(regionPath))
                {
                    StreamReader reader     = new StreamReader(regionPath);
                    string[]     regionData = reader.ReadToEnd().Split((char)ushort.MaxValue);
                    reader.Close();
                    LoadedRegions[indexString] = regionData;

                    return(true);
                }

                else
                {
                    //文件不存在
                    return(false);
                }
            }
            //数据已经载入
            return(true);
        }
Exemple #2
0
 private static string[] GetRegionData(Index regionIndex)
 {
     if (LoadRegionData(regionIndex) == true)
     {
         return(LoadedRegions[regionIndex.ToString()]);
     }
     else
     {
         return(null);
     }
 }
Exemple #3
0
        public static Chunk GetChunkComponent(Index index)
        {
            string indexString = index.ToString();

            if (ChunkManager.Chunks.ContainsKey(indexString))
            {
                return(ChunkManager.Chunks[indexString]);
            }
            else
            {
                return(null);
            }
        }
Exemple #4
0
        //返回chunkData,没找到就返回空串
        private string GetChunkData(Index index)
        {
            //尝试从temp中寻找返回
            string indexString = index.ToString();

            if (TempChunkData.ContainsKey(indexString))
            {
                return(TempChunkData[indexString]);
            }

            int regionIndex = GetChunkRegionIndex(index);

            string[] regionData = GetRegionData(GetParentRegion(index));
            if (regionData == null)
            {
                return("");
            }
            return(regionData[regionIndex]);
        }
Exemple #5
0
 //获取区域块对应的文件名
 private static string GetRegionPath(Index regionIndex)
 {
     return(Engine.WorldPath + (regionIndex.ToString() + ",.region"));
 }
Exemple #6
0
 //将chunk的data写入到temp
 private void WriteChunkData(Index index, string data)
 {
     TempChunkData[index.ToString()] = data;
 }