64 lines
2.1 KiB
C#
Raw Normal View History

2015-05-29 15:46:44 -06:00
using System;
using Microsoft.Xna.Framework.Graphics;
using TrueCraft.Core.World;
using Microsoft.Xna.Framework;
namespace TrueCraft.Client.Rendering
{
2015-06-16 15:53:28 -04:00
/// <summary>
///
/// </summary>
2015-05-29 15:46:44 -06:00
public class ChunkMesh : Mesh
{
2015-06-16 15:53:28 -04:00
/// <summary>
///
/// </summary>
2015-05-29 15:46:44 -06:00
public ReadOnlyChunk Chunk { get; set; }
2015-06-16 15:53:28 -04:00
/// <summary>
///
/// </summary>
/// <param name="chunk"></param>
/// <param name="device"></param>
/// <param name="vertices"></param>
/// <param name="indices"></param>
public ChunkMesh(ReadOnlyChunk chunk, TrueCraftGame game, VertexPositionNormalColorTexture[] vertices, int[] indices)
: base(game, 1, true)
2015-05-29 15:46:44 -06:00
{
Chunk = chunk;
Vertices = vertices;
2015-06-16 15:53:28 -04:00
SetSubmesh(0, indices);
}
/// <summary>
///
/// </summary>
/// <param name="chunk"></param>
/// <param name="device"></param>
/// <param name="vertices"></param>
/// <param name="opaqueIndices"></param>
/// <param name="transparentIndices"></param>
public ChunkMesh(ReadOnlyChunk chunk, TrueCraftGame game, VertexPositionNormalColorTexture[] vertices, int[] opaqueIndices, int[] transparentIndices)
: base(game, 2, true)
{
Chunk = chunk;
Vertices = vertices;
SetSubmesh(0, opaqueIndices);
SetSubmesh(1, transparentIndices);
}
2015-06-16 15:53:28 -04:00
/// <summary>
///
/// </summary>
/// <param name="vertices"></param>
/// <returns></returns>
protected override BoundingBox RecalculateBounds(VertexPositionNormalColorTexture[] vertices)
2015-06-16 15:53:28 -04:00
{
return new BoundingBox(
new Vector3(Chunk.X * TrueCraft.Core.World.Chunk.Width, 0, Chunk.Z * TrueCraft.Core.World.Chunk.Depth),
new Vector3(Chunk.X * TrueCraft.Core.World.Chunk.Width
2015-05-29 15:46:44 -06:00
+ TrueCraft.Core.World.Chunk.Width, TrueCraft.Core.World.Chunk.Height,
2015-06-16 15:53:28 -04:00
Chunk.Z * TrueCraft.Core.World.Chunk.Depth + TrueCraft.Core.World.Chunk.Depth));
2015-05-29 15:46:44 -06:00
}
}
}