示例#1
0
文件: World.cs 项目: JynxSp0ck/MadJam
 public void move(IntVec3 delta)
 {
     Debug.Log(delta.x + ", " + delta.y + ", " + delta.z);
     RenderChunk[,,] newchunks = new RenderChunk[Settings.map_size, Settings.map_size, Settings.map_size];
     for (int i = 0; i < Settings.map_size; i++)
     {
         for (int j = 0; j < Settings.map_size; j++)
         {
             for (int k = 0; k < Settings.map_size; k++)
             {
                 newchunks[i, j, k] = null;
             }
         }
     }
     for (int i = 0; i < Settings.map_size; i++)
     {
         for (int j = 0; j < Settings.map_size; j++)
         {
             for (int k = 0; k < Settings.map_size; k++)
             {
                 IntVec3 index = new IntVec3(i, j, k) - delta;
                 if (index.x >= 0 && index.y >= 0 && index.z >= 0 && index.x < Settings.map_size && index.y < Settings.map_size && index.z < Settings.map_size)
                 {
                     newchunks[index.x, index.y, index.z] = chunks[i, j, k];
                 }
                 else if (chunks[i, j, k] != null)
                 {
                     chunks[i, j, k].destroy();
                 }
             }
         }
     }
     chunks    = newchunks;
     chunkpos += delta;
 }
示例#2
0
        void process(MeshTask task)
        {
            IntVec3 pos = Client.view.world.getChunkIndex(task.chunk.pos * Settings.chunk_size);

            if (pos == null)
            {
                return;
            }
            RenderChunk rc = Client.view.world.chunks[pos.x, pos.y, pos.z];

            rc.setMesh(task.mesh);
        }