Example #1
0
        public override void CreateTreeByData()
        {
            AllChunksInDict = new Dictionary<int, LinkedList<Chunk>>();

            // 只在CW_DEBUG模式下进行设置信息的检查
            #if CW_DEBUG
            if (Global.WorldSize % Global.ChunkSize != 0)
            {
                LogMgr.Log("世界宽度不能被Chunk宽度整除");
                return;
            }

            if (Global.WorldHeight % 2 != 0)
            {
                LogMgr.Log("世界高度不能被2整除");
                return;
            }
            #endif

            int ChunkSize = Global.ChunkSize;
            int WorldHeight = Global.WorldHeight;
            int Size = Global.WorldSize / ChunkSize;

            for (int i = 0; i < WorldHeight; i += 2)
            {
                AllChunksInDict[i] = new LinkedList<Chunk>();

                for (int x = 0; x < Size; x++)
                {
                    for (int y = 0; y < Size; y++)
                    {
                        Chunk TmpChunk = new Chunk(
                            x * ChunkSize, i, y * ChunkSize,
                            (x + 1) * ChunkSize - 1, i + 1, (y + 1) * ChunkSize - 1
                        );

                        AllChunksInDict[i].AddLast(TmpChunk);
                        AllChunks.AddLast(TmpChunk);
                    }
                }
            }
        }
Example #2
0
 public ChunkMeshCreator(Chunk chunk)
     : base(chunk)
 {
 }