Пример #1
0
    public override void BuildFace(Chunk chunk, Vector3Int localPos, Direction direction)
    {
        VertexData[]      vertexData      = chunk.pools.PopVertexDataArray(4);
        VertexDataFixed[] vertexDataFixed = chunk.pools.PopVertexDataFixedArray(4);
        {
            for (int i = 0; i < 4; i++)
            {
                vertexData[i] = chunk.pools.PopVertexData();
            }

            BlockUtils.PrepareVertices(localPos, vertexData, direction);
            BlockUtils.PrepareTexture(chunk, localPos, vertexData, direction, texture);
            BlockUtils.SetColors(vertexData, ref color);

            for (int i = 0; i < 4; i++)
            {
                vertexDataFixed[i] = VertexDataUtils.ClassToStruct(vertexData[i]);
            }
            chunk.GeometryHandler.Batcher.AddFace(vertexDataFixed);

            for (int i = 0; i < 4; i++)
            {
                chunk.pools.PushVertexData(vertexData[i]);
            }
        }
        chunk.pools.PushVertexDataFixedArray(vertexDataFixed);
        chunk.pools.PushVertexDataArray(vertexData);
    }