Render snow variation of grass blocks
This also increases the average rainfall everywhere so that fucking deserts are less common
This commit is contained in:
parent
f3fc43fbf9
commit
939a6dc79c
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using TrueCraft.API.World;
|
||||
|
||||
namespace TrueCraft.API.Logic
|
||||
{
|
||||
@ -8,6 +9,9 @@ namespace TrueCraft.API.Logic
|
||||
public byte Metadata;
|
||||
public byte BlockLight;
|
||||
public byte SkyLight;
|
||||
// Optional
|
||||
public Coordinates3D Coordinates;
|
||||
// Optional
|
||||
public IChunk Chunk;
|
||||
}
|
||||
}
|
@ -3,6 +3,8 @@ using Microsoft.Xna.Framework.Graphics;
|
||||
using Microsoft.Xna.Framework;
|
||||
using TrueCraft.Core.Logic.Blocks;
|
||||
using TrueCraft.API.Logic;
|
||||
using TrueCraft.Core.World;
|
||||
using TrueCraft.API;
|
||||
|
||||
namespace TrueCraft.Client.Rendering.Blocks
|
||||
{
|
||||
@ -13,11 +15,14 @@ namespace TrueCraft.Client.Rendering.Blocks
|
||||
BlockRenderer.RegisterRenderer(GrassBlock.BlockID, new GrassRenderer());
|
||||
for (int i = 0; i < Texture.Length; i++)
|
||||
Texture[i] *= new Vector2(16f / 256f);
|
||||
for (int i = 0; i < Texture.Length; i++)
|
||||
SnowTexture[i] *= new Vector2(16f / 256f);
|
||||
}
|
||||
|
||||
private static Vector2 TextureMap = new Vector2(0, 0);
|
||||
private static Vector2 EndsTexture = new Vector2(2, 0);
|
||||
private static Vector2 SideTexture = new Vector2(3, 0);
|
||||
private static Vector2 SideTextureSnow = new Vector2(4, 4);
|
||||
private static Vector2[] Texture =
|
||||
{
|
||||
// Positive Z
|
||||
@ -51,13 +56,54 @@ namespace TrueCraft.Client.Rendering.Blocks
|
||||
EndsTexture,
|
||||
EndsTexture + Vector2.UnitX,
|
||||
};
|
||||
private static Vector2[] SnowTexture =
|
||||
{
|
||||
// Positive Z
|
||||
SideTextureSnow + Vector2.UnitX + Vector2.UnitY,
|
||||
SideTextureSnow + Vector2.UnitY,
|
||||
SideTextureSnow,
|
||||
SideTextureSnow + Vector2.UnitX,
|
||||
// Negative Z
|
||||
SideTextureSnow + Vector2.UnitX + Vector2.UnitY,
|
||||
SideTextureSnow + Vector2.UnitY,
|
||||
SideTextureSnow,
|
||||
SideTextureSnow + Vector2.UnitX,
|
||||
// Positive X
|
||||
SideTextureSnow + Vector2.UnitX + Vector2.UnitY,
|
||||
SideTextureSnow + Vector2.UnitY,
|
||||
SideTextureSnow,
|
||||
SideTextureSnow + Vector2.UnitX,
|
||||
// Negative X
|
||||
SideTextureSnow + Vector2.UnitX + Vector2.UnitY,
|
||||
SideTextureSnow + Vector2.UnitY,
|
||||
SideTextureSnow,
|
||||
SideTextureSnow + Vector2.UnitX,
|
||||
// Positive Y
|
||||
TextureMap + Vector2.UnitX + Vector2.UnitY,
|
||||
TextureMap + Vector2.UnitY,
|
||||
TextureMap,
|
||||
TextureMap + Vector2.UnitX,
|
||||
// Negative Y
|
||||
EndsTexture + Vector2.UnitX + Vector2.UnitY,
|
||||
EndsTexture + Vector2.UnitY,
|
||||
EndsTexture,
|
||||
EndsTexture + Vector2.UnitX,
|
||||
};
|
||||
|
||||
public static readonly Color BiomeColor = new Color(105, 169, 63);
|
||||
|
||||
public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Vector3 offset,
|
||||
public override VertexPositionNormalColorTexture[] Render(BlockDescriptor descriptor, Microsoft.Xna.Framework.Vector3 offset,
|
||||
Tuple<int, int> textureMap, int indiciesOffset, out int[] indicies)
|
||||
{
|
||||
var cube = CreateUniformCube(offset, Texture, indiciesOffset, out indicies, Color.White);
|
||||
var texture = Texture;
|
||||
if (descriptor.Coordinates.Y < World.Height)
|
||||
{
|
||||
if (descriptor.Chunk.GetBlockID(descriptor.Coordinates + Coordinates3D.Up) == SnowfallBlock.BlockID)
|
||||
{
|
||||
texture = SnowTexture;
|
||||
}
|
||||
}
|
||||
var cube = CreateUniformCube(offset, texture, 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++)
|
||||
{
|
||||
|
@ -131,7 +131,8 @@ namespace TrueCraft.Client.Rendering
|
||||
Metadata = chunk.GetMetadata(coords),
|
||||
BlockLight = chunk.GetBlockLight(coords),
|
||||
SkyLight = chunk.GetSkyLight(coords),
|
||||
Coordinates = coords
|
||||
Coordinates = coords,
|
||||
Chunk = chunk.Chunk
|
||||
};
|
||||
var provider = BlockRepository.GetBlockProvider(descriptor.ID);
|
||||
if (provider.RenderOpaque)
|
||||
|
@ -101,6 +101,7 @@
|
||||
<Compile Include="Rendering\Blocks\SugarcaneRenderer.cs" />
|
||||
<Compile Include="Rendering\Blocks\VegitationRenderer.cs" />
|
||||
<Compile Include="Rendering\VertexPositionNormalColorTexture.cs" />
|
||||
<Compile Include="Rendering\Blocks\WheatRenderer.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<ItemGroup>
|
||||
|
@ -71,6 +71,8 @@ namespace TrueCraft.Core.Logic.Blocks
|
||||
|
||||
public override string DisplayName { get { return "Snow"; } }
|
||||
|
||||
public override TrueCraft.API.BoundingBox? BoundingBox { get { return null; } }
|
||||
|
||||
public override Tuple<int, int> GetTextureMap(byte metadata)
|
||||
{
|
||||
return new Tuple<int, int>(2, 4);
|
||||
@ -81,4 +83,4 @@ namespace TrueCraft.Core.Logic.Blocks
|
||||
return new[] { new ItemStack(SnowballItem.ItemID) };
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ namespace TrueCraft.Core.World
|
||||
TempNoise.Octaves = 2;
|
||||
TempNoise.Lacunarity = 1.3;
|
||||
RainNoise.Frequency = 0.03;
|
||||
RainNoise.Octaves = 2;
|
||||
RainNoise.Octaves = 3;
|
||||
RainNoise.Amplitude = 5;
|
||||
RainNoise.Lacunarity = 1.7;
|
||||
TempNoise.Seed = seed;
|
||||
|
Reference in New Issue
Block a user