diff --git a/TrueCraft.Client/Rendering/BlockRenderer.cs b/TrueCraft.Client/Rendering/BlockRenderer.cs index 5cdba07..a460510 100644 --- a/TrueCraft.Client/Rendering/BlockRenderer.cs +++ b/TrueCraft.Client/Rendering/BlockRenderer.cs @@ -18,16 +18,16 @@ namespace TrueCraft.Client.Rendering } public static VertexPositionNormalColorTexture[] RenderBlock(IBlockProvider provider, BlockDescriptor descriptor, - Vector3 offset, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Vector3 offset, int indiciesOffset, out int[] indicies) { var textureMap = provider.GetTextureMap(descriptor.Metadata); if (textureMap == null) textureMap = new Tuple(0, 0); // TODO: handle this better - return Renderers[descriptor.ID].Render(descriptor, offset, textureMap, indiciesOffset, out indicies); + return Renderers[descriptor.ID].Render(descriptor, offset, faces, textureMap, indiciesOffset, out indicies); } public virtual VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { var texCoords = new Vector2(textureMap.Item1, textureMap.Item2); var texture = new[] @@ -39,23 +39,42 @@ namespace TrueCraft.Client.Rendering }; for (int i = 0; i < texture.Length; i++) texture[i] *= new Vector2(16f / 256f); - return CreateUniformCube(offset, texture, indiciesOffset, out indicies, Color.White); + return CreateUniformCube(offset, texture, faces, indiciesOffset, out indicies, Color.White); } - protected VertexPositionNormalColorTexture[] CreateUniformCube(Vector3 offset, Vector2[] texture, int indiciesOffset, out int[] indicies, Color color) + protected VertexPositionNormalColorTexture[] CreateUniformCube(Vector3 offset, Vector2[] texture, + VisibleFaces faces, int indiciesOffset, out int[] indicies, Color color) { - indicies = new int[6 * 6]; - var verticies = new VertexPositionNormalColorTexture[4 * 6]; + faces = VisibleFaces.All; // Temporary + + int totalFaces = 0; + uint f = (uint)faces; + while (f != 0) + { + if ((f & 1) == 1) + totalFaces++; + f >>= 1; + } + + indicies = new int[6 * totalFaces]; + var verticies = new VertexPositionNormalColorTexture[4 * totalFaces]; int[] _indicies; int textureIndex = 0; + int sidesSoFar = 0; for (int _side = 0; _side < 6; _side++) { + if ((faces & VisibleForCubeFace[_side]) == 0) + { + textureIndex += 4; + continue; + } var side = (CubeFace)_side; var quad = CreateQuad(side, offset, texture, textureIndex % texture.Length, indiciesOffset, out _indicies, color); - Array.Copy(quad, 0, verticies, _side * 4, 4); - Array.Copy(_indicies, 0, indicies, _side * 6, 6); + Array.Copy(quad, 0, verticies, sidesSoFar * 4, 4); + Array.Copy(_indicies, 0, indicies, sidesSoFar * 6, 6); textureIndex += 4; + sidesSoFar++; } return verticies; } @@ -86,6 +105,16 @@ namespace TrueCraft.Client.Rendering NegativeY = 5 } + protected static readonly VisibleFaces[] VisibleForCubeFace = + { + VisibleFaces.South, + VisibleFaces.North, + VisibleFaces.East, + VisibleFaces.West, + VisibleFaces.Top, + VisibleFaces.Bottom + }; + protected static readonly Vector3[][] CubeMesh; protected static readonly Vector3[] CubeNormals = @@ -163,6 +192,12 @@ namespace TrueCraft.Client.Rendering new Vector3(-0.5f, -0.5f, 0.5f), new Vector3(0.5f, -0.5f, 0.5f) }; + + // TEMP + return; + for (int i = 0; i < CubeMesh.Length; i++) + for (int j = 0; j < CubeMesh[0].Length; j++) + CubeMesh[i][j] *= new Vector3(0.5f); } } } \ No newline at end of file diff --git a/TrueCraft.Client/Rendering/Blocks/CraftingTableRenderer.cs b/TrueCraft.Client/Rendering/Blocks/CraftingTableRenderer.cs index a93311a..6b83f0a 100644 --- a/TrueCraft.Client/Rendering/Blocks/CraftingTableRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/CraftingTableRenderer.cs @@ -54,9 +54,9 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { - return CreateUniformCube(offset, Texture, indiciesOffset, out indicies, Color.White); + return CreateUniformCube(offset, Texture, faces, indiciesOffset, out indicies, Color.White); } } } \ No newline at end of file diff --git a/TrueCraft.Client/Rendering/Blocks/FarmlandRenderer.cs b/TrueCraft.Client/Rendering/Blocks/FarmlandRenderer.cs index aef7e5d..175476f 100644 --- a/TrueCraft.Client/Rendering/Blocks/FarmlandRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/FarmlandRenderer.cs @@ -91,14 +91,14 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { var texture = DryTexture; if (descriptor.Metadata == (byte)FarmlandBlock.MoistureLevel.Moist) texture = MoistTexture; var overhead = new Vector3(0.5f, 0.5f, 0.5f); - var cube = CreateUniformCube(overhead, texture, indiciesOffset, out indicies, Color.White); + var cube = CreateUniformCube(overhead, texture, faces, indiciesOffset, out indicies, Color.White); for (int i = 0; i < cube.Length; i++) { if (cube[i].Position.Y > 0) diff --git a/TrueCraft.Client/Rendering/Blocks/GrassRenderer.cs b/TrueCraft.Client/Rendering/Blocks/GrassRenderer.cs index f16572d..1661510 100644 --- a/TrueCraft.Client/Rendering/Blocks/GrassRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/GrassRenderer.cs @@ -93,7 +93,7 @@ namespace TrueCraft.Client.Rendering.Blocks public static readonly Color BiomeColor = new Color(105, 169, 63); public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Microsoft.Xna.Framework.Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { var texture = Texture; if (descriptor.Coordinates.Y < World.Height) @@ -103,7 +103,7 @@ namespace TrueCraft.Client.Rendering.Blocks texture = SnowTexture; } } - var cube = CreateUniformCube(offset, texture, indiciesOffset, out indicies, Color.White); + var cube = CreateUniformCube(offset, texture, faces, indiciesOffset, out indicies, Color.White); // Apply biome colors to top of cube for (int i = (int)(CubeFace.PositiveY) * 4; i < (int)(CubeFace.PositiveY) * 4 + 4; i++) { diff --git a/TrueCraft.Client/Rendering/Blocks/LadderRenderer.cs b/TrueCraft.Client/Rendering/Blocks/LadderRenderer.cs index 0f9b069..c613c79 100644 --- a/TrueCraft.Client/Rendering/Blocks/LadderRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/LadderRenderer.cs @@ -25,7 +25,7 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { VertexPositionNormalColorTexture[] verticies; Vector3 correction; @@ -54,7 +54,8 @@ namespace TrueCraft.Client.Rendering.Blocks break; default: // Should never happen - verticies = CreateUniformCube(offset, Texture, indiciesOffset, out indicies, Color.White); + verticies = CreateUniformCube(offset, Texture, VisibleFaces.All, + indiciesOffset, out indicies, Color.White); correction = Vector3.Zero; break; } diff --git a/TrueCraft.Client/Rendering/Blocks/LeavesRenderer.cs b/TrueCraft.Client/Rendering/Blocks/LeavesRenderer.cs index 27dca06..6004927 100644 --- a/TrueCraft.Client/Rendering/Blocks/LeavesRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/LeavesRenderer.cs @@ -36,17 +36,20 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { switch ((WoodBlock.WoodType)descriptor.Metadata) { case WoodBlock.WoodType.Spruce: - return CreateUniformCube(offset, SpruceTextures, indiciesOffset, out indicies, GrassRenderer.BiomeColor); + return CreateUniformCube(offset, SpruceTextures, VisibleFaces.All, + indiciesOffset, out indicies, GrassRenderer.BiomeColor); case WoodBlock.WoodType.Birch: - return CreateUniformCube(offset, BaseTextures, indiciesOffset, out indicies, GrassRenderer.BiomeColor); + return CreateUniformCube(offset, BaseTextures, VisibleFaces.All, + indiciesOffset, out indicies, GrassRenderer.BiomeColor); case WoodBlock.WoodType.Oak: default: - return CreateUniformCube(offset, BaseTextures, indiciesOffset, out indicies, GrassRenderer.BiomeColor); + return CreateUniformCube(offset, BaseTextures, VisibleFaces.All, + indiciesOffset, out indicies, GrassRenderer.BiomeColor); } } } diff --git a/TrueCraft.Client/Rendering/Blocks/LogRenderer.cs b/TrueCraft.Client/Rendering/Blocks/LogRenderer.cs index 96ac09c..68399c6 100644 --- a/TrueCraft.Client/Rendering/Blocks/LogRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/LogRenderer.cs @@ -124,17 +124,17 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { switch ((WoodBlock.WoodType)descriptor.Metadata) { case WoodBlock.WoodType.Spruce: - return CreateUniformCube(offset, SpruceTexture, indiciesOffset, out indicies, Color.White); + return CreateUniformCube(offset, SpruceTexture, faces, indiciesOffset, out indicies, Color.White); case WoodBlock.WoodType.Birch: - return CreateUniformCube(offset, BirchTexture, indiciesOffset, out indicies, Color.White); + return CreateUniformCube(offset, BirchTexture, faces, indiciesOffset, out indicies, Color.White); case WoodBlock.WoodType.Oak: default: - return CreateUniformCube(offset, BaseTexture, indiciesOffset, out indicies, Color.White); + return CreateUniformCube(offset, BaseTexture, faces, indiciesOffset, out indicies, Color.White); } } } diff --git a/TrueCraft.Client/Rendering/Blocks/SlabRenderer.cs b/TrueCraft.Client/Rendering/Blocks/SlabRenderer.cs index f163000..27aedd9 100644 --- a/TrueCraft.Client/Rendering/Blocks/SlabRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/SlabRenderer.cs @@ -188,7 +188,8 @@ namespace TrueCraft.Client.Rendering.Blocks } } - public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, Tuple textureMap, int indiciesOffset, out int[] indicies) + public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { if (descriptor.ID == SlabBlock.BlockID) return RenderSlab(descriptor, offset, textureMap, indiciesOffset, out indicies); @@ -198,7 +199,9 @@ namespace TrueCraft.Client.Rendering.Blocks protected virtual VertexPositionNormalColorTexture[] RenderSlab(BlockDescriptor descriptor, Vector3 offset, Tuple textureMap, int indiciesOffset, out int[] indicies) { - var result = CreateUniformCube(offset, GetTextureMap((SlabBlock.SlabMaterial)descriptor.Metadata), indiciesOffset, out indicies, Color.White); + var result = CreateUniformCube(offset, + GetTextureMap((SlabBlock.SlabMaterial)descriptor.Metadata), VisibleFaces.All, + indiciesOffset, out indicies, Color.White); for (int i = 0; i < 6; i++) { var face = (CubeFace)i; @@ -227,9 +230,11 @@ namespace TrueCraft.Client.Rendering.Blocks return result; } - protected virtual VertexPositionNormalColorTexture[] RenderDoubleSlab(BlockDescriptor descriptor, Vector3 offset, Tuple textureMap, int indiciesOffset, out int[] indicies) + protected virtual VertexPositionNormalColorTexture[] RenderDoubleSlab(BlockDescriptor descriptor, + Vector3 offset, Tuple textureMap, int indiciesOffset, out int[] indicies) { - return CreateUniformCube(offset, GetTextureMap((SlabBlock.SlabMaterial)descriptor.Metadata), indiciesOffset, out indicies, Color.White); + return CreateUniformCube(offset, GetTextureMap((SlabBlock.SlabMaterial)descriptor.Metadata), + VisibleFaces.All, indiciesOffset, out indicies, Color.White); } } } diff --git a/TrueCraft.Client/Rendering/Blocks/SnowRenderer.cs b/TrueCraft.Client/Rendering/Blocks/SnowRenderer.cs index b90a19f..6a16e2a 100644 --- a/TrueCraft.Client/Rendering/Blocks/SnowRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/SnowRenderer.cs @@ -25,10 +25,10 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { var overhead = new Vector3(0.5f, 0.5f, 0.5f); - var cube = CreateUniformCube(overhead, Texture, indiciesOffset, out indicies, Color.White); + var cube = CreateUniformCube(overhead, Texture, faces, indiciesOffset, out indicies, Color.White); var heightMultiplier = new Vector3(1, ((descriptor.Metadata + 1) / 16f), 1); for (int i = 0; i < cube.Length; i++) { diff --git a/TrueCraft.Client/Rendering/Blocks/TNTRenderer.cs b/TrueCraft.Client/Rendering/Blocks/TNTRenderer.cs index ea07cf6..cacfc39 100644 --- a/TrueCraft.Client/Rendering/Blocks/TNTRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/TNTRenderer.cs @@ -53,9 +53,9 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { - return CreateUniformCube(offset, Texture, indiciesOffset, out indicies, Color.White); + return CreateUniformCube(offset, Texture, faces, indiciesOffset, out indicies, Color.White); } } } \ No newline at end of file diff --git a/TrueCraft.Client/Rendering/Blocks/TorchRenderer.cs b/TrueCraft.Client/Rendering/Blocks/TorchRenderer.cs index 31c4f06..21ad0d4 100644 --- a/TrueCraft.Client/Rendering/Blocks/TorchRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/TorchRenderer.cs @@ -51,11 +51,11 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { var overhead = new Vector3(0.5f, 0.5f, 0.5f); var centerized = new Vector3(7f / 16f, 0, 7f / 16f); - var cube = CreateUniformCube(overhead, Texture, indiciesOffset, out indicies, Color.White); + var cube = CreateUniformCube(overhead, Texture, VisibleFaces.All, indiciesOffset, out indicies, Color.White); for (int i = 0; i < cube.Length; i++) { cube[i].Position.X *= 1f / 8f; diff --git a/TrueCraft.Client/Rendering/Blocks/VegitationRenderer.cs b/TrueCraft.Client/Rendering/Blocks/VegitationRenderer.cs index af1fc71..e739989 100644 --- a/TrueCraft.Client/Rendering/Blocks/VegitationRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/VegitationRenderer.cs @@ -101,7 +101,7 @@ namespace TrueCraft.Client.Rendering.Blocks } public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { if (descriptor.ID == RoseBlock.BlockID) return RenderQuads(descriptor, offset, RoseTexture, indiciesOffset, out indicies, Color.White); diff --git a/TrueCraft.Client/Rendering/Blocks/WaterRenderer.cs b/TrueCraft.Client/Rendering/Blocks/WaterRenderer.cs index 92fd4d5..b2d14e7 100644 --- a/TrueCraft.Client/Rendering/Blocks/WaterRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/WaterRenderer.cs @@ -26,16 +26,16 @@ namespace TrueCraft.Client.Rendering.Blocks }; public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { // TODO: Rest of water rendering (shape and level and so on) var overhead = new Vector3(0.5f, 0.5f, 0.5f); - var cube = CreateUniformCube(overhead, Texture, indiciesOffset, out indicies, Color.White); + var cube = CreateUniformCube(overhead, Texture, faces, indiciesOffset, out indicies, Color.DarkBlue); for (int i = 0; i < cube.Length; i++) { if (cube[i].Position.Y > 0) { - cube[i].Position.Y *= 15f / 16f; + cube[i].Position.Y *= 14f / 16f; } cube[i].Position += offset; cube[i].Position -= overhead; diff --git a/TrueCraft.Client/Rendering/Blocks/WheatRenderer.cs b/TrueCraft.Client/Rendering/Blocks/WheatRenderer.cs index c3b7bd8..debaf0c 100644 --- a/TrueCraft.Client/Rendering/Blocks/WheatRenderer.cs +++ b/TrueCraft.Client/Rendering/Blocks/WheatRenderer.cs @@ -35,7 +35,7 @@ namespace TrueCraft.Client.Rendering } public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { // Wheat is rendered by rendering the four vertical faces of a cube, then moving them // towards the middle. We also render a second set of four faces so that you can see diff --git a/TrueCraft.Client/Rendering/ChunkRenderer.cs b/TrueCraft.Client/Rendering/ChunkRenderer.cs index 097e5d6..ffd4f49 100644 --- a/TrueCraft.Client/Rendering/ChunkRenderer.cs +++ b/TrueCraft.Client/Rendering/ChunkRenderer.cs @@ -82,19 +82,6 @@ namespace TrueCraft.Client.Rendering return (result != null); } - [Flags] - public enum VisibleFaces - { - None = 0, - North = 1, - South = 2, - East = 4, - West = 8, - Top = 16, - Bottom = 32, - All = North | South | East | West | Top | Bottom - } - private class RenderState { public readonly List Verticies @@ -139,16 +126,39 @@ namespace TrueCraft.Client.Rendering { continue; } - if (chunk.GetBlockId(next) != 0) + var provider = BlockRepository.GetBlockProvider(chunk.GetBlockId(next)); + if (provider.Opaque) { VisibleFaces faces; - state.DrawableCoordinates.TryGetValue(next, out faces); + if (!state.DrawableCoordinates.TryGetValue(next, out faces)) + faces = VisibleFaces.None; faces |= AdjacentCoordFaces[i]; state.DrawableCoordinates[next] = faces; } } } + private void AddTransparentBlock(Coordinates3D coords, RenderState state, ReadOnlyChunk chunk) + { + // Add adjacent blocks + VisibleFaces faces = VisibleFaces.None; + for (int i = 0; i < AdjacentCoordinates.Length; i++) + { + var next = coords + AdjacentCoordinates[i]; + if (next.X < 0 || next.X >= Chunk.Width + || next.Y < 0 || next.Y >= Chunk.Height + || next.Z < 0 || next.Z >= Chunk.Depth) + { + faces |= AdjacentCoordFaces[i]; + continue; + } + if (chunk.GetBlockId(next) == 0) + faces |= AdjacentCoordFaces[i]; + } + if (faces != VisibleFaces.None) + state.DrawableCoordinates[coords] = faces; + } + private void UpdateFacesFromAdjacent(Coordinates3D adjacent, ReadOnlyChunk chunk, VisibleFaces mod, ref VisibleFaces faces) { @@ -219,7 +229,11 @@ namespace TrueCraft.Client.Rendering if (id != 0 && coords.Y == 0) AddBottomBlock(coords, state, chunk); if (!provider.Opaque) + { AddAdjacentBlocks(coords, state, chunk); + if (id != 0) + AddTransparentBlock(coords, state, chunk); + } else { if (coords.X == 0 || coords.X == Chunk.Width - 1 || @@ -250,7 +264,7 @@ namespace TrueCraft.Client.Rendering if (provider.RenderOpaque) { int[] i; - var v = BlockRenderer.RenderBlock(provider, descriptor, + var v = BlockRenderer.RenderBlock(provider, descriptor, coords.Value, new Vector3(chunk.X * Chunk.Width + c.X, c.Y, chunk.Z * Chunk.Depth + c.Z), state.Verticies.Count, out i); state.Verticies.AddRange(v); @@ -259,7 +273,7 @@ namespace TrueCraft.Client.Rendering else { int[] i; - var v = BlockRenderer.RenderBlock(provider, descriptor, + var v = BlockRenderer.RenderBlock(provider, descriptor, coords.Value, new Vector3(chunk.X * Chunk.Width + c.X, c.Y, chunk.Z * Chunk.Depth + c.Z), state.Verticies.Count, out i); state.Verticies.AddRange(v); @@ -268,4 +282,17 @@ namespace TrueCraft.Client.Rendering } } } + + [Flags] + public enum VisibleFaces + { + None = 0, + North = 1, + South = 2, + East = 4, + West = 8, + Top = 16, + Bottom = 32, + All = North | South | East | West | Top | Bottom + } } diff --git a/TrueCraft.Client/Rendering/FlatQuadRenderer.cs b/TrueCraft.Client/Rendering/FlatQuadRenderer.cs index 66d4a36..d53106e 100644 --- a/TrueCraft.Client/Rendering/FlatQuadRenderer.cs +++ b/TrueCraft.Client/Rendering/FlatQuadRenderer.cs @@ -24,7 +24,7 @@ namespace TrueCraft.Client.Rendering } public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset, - Tuple textureMap, int indiciesOffset, out int[] indicies) + VisibleFaces faces, Tuple textureMap, int indiciesOffset, out int[] indicies) { return RenderQuads(descriptor, offset, Texture, indiciesOffset, out indicies, Color.White); }