Fog and more blocks
This commit is contained in:
@@ -92,9 +92,8 @@ void Game::Setup(int w, int h) {
|
||||
Texture texture;
|
||||
m_world->TextureID = texture.LoadTextures(BlockDictionary->Textures);
|
||||
|
||||
|
||||
for (int x = 0; x < 2; x++)
|
||||
for (int y = 0; y < 3; y++) {
|
||||
for (int y = 0; y < 2; y++) {
|
||||
|
||||
m_world->Chunks.push_back(std::make_shared<Chunk>(x, y));
|
||||
|
||||
@@ -150,7 +149,7 @@ void Game::Run() {
|
||||
|
||||
SDL_Event e;
|
||||
|
||||
const float clear[] = { 0.1f, 0.45f, 0.9f, 1.0f };
|
||||
const float clear[] = { 186.0f / 255.0f, 214.0f / 255.0f, 254.0f / 255.0f };
|
||||
|
||||
m_renderer = std::make_unique<Renderer>();
|
||||
|
||||
|
||||
@@ -13,25 +13,38 @@ Chunk::Chunk(int x, int z) {
|
||||
|
||||
m_model = glm::translate(glm::mat4(1.0f), { x * CHUNK_WIDTH, 0, z * CHUNK_DEPTH });
|
||||
|
||||
std::default_random_engine generator;
|
||||
|
||||
// [x + WIDTH * (y + HEIGHT * z)]
|
||||
for (int x = 0; x < CHUNK_WIDTH; x++)
|
||||
for (int y = 0; y < CHUNK_HEIGHT; y++)
|
||||
for (int z = 0; z < CHUNK_DEPTH; z++) {
|
||||
|
||||
if (y > 15) {
|
||||
if (y > 32) {
|
||||
Voxels.push_back((uint8_t)EBlockType::Air);
|
||||
continue;
|
||||
}
|
||||
|
||||
std::uniform_real_distribution<float> distribution(0, 1);
|
||||
float r = distribution(generator);
|
||||
|
||||
if (r > 0.5f)
|
||||
if (y == 0) {
|
||||
|
||||
Voxels.push_back((uint8_t)EBlockType::Bedrock);
|
||||
|
||||
}
|
||||
else if (y < 28) {
|
||||
|
||||
Voxels.push_back((uint8_t)EBlockType::Stone);
|
||||
|
||||
}
|
||||
else if (y < 32) {
|
||||
|
||||
Voxels.push_back((uint8_t)EBlockType::Dirt);
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
Voxels.push_back((uint8_t)EBlockType::Grass);
|
||||
else
|
||||
Voxels.push_back((uint8_t)EBlockType::Air);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -21,14 +21,20 @@ std::shared_ptr<CBlockDictionary> CBlockDictionary::GetInstance() {
|
||||
|
||||
void CBlockDictionary::Build() {
|
||||
|
||||
RegisterTexture("stone.png");
|
||||
RegisterTexture("dirt.png");
|
||||
RegisterTexture("grass_side.png");
|
||||
RegisterTexture("grass_top.png");
|
||||
RegisterTexture("cobblestone.png");
|
||||
RegisterTexture("bedrock.png");
|
||||
|
||||
// Texture winding order - top, bottom, left, right, front, back
|
||||
RegisterBlock(EBlockType::Air, { });
|
||||
RegisterBlock(EBlockType::Dirt, { EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt });
|
||||
RegisterBlock(EBlockType::Grass, { EFaceTexture::Grass, EFaceTexture::Dirt, EFaceTexture::GrassSide, EFaceTexture::GrassSide, EFaceTexture::GrassSide, EFaceTexture::GrassSide });
|
||||
RegisterBlock(EBlockType::Air, { });
|
||||
RegisterBlock(EBlockType::Stone, { EFaceTexture::Stone, EFaceTexture::Stone, EFaceTexture::Stone, EFaceTexture::Stone, EFaceTexture::Stone, EFaceTexture::Stone });
|
||||
RegisterBlock(EBlockType::Dirt, { EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt, EFaceTexture::Dirt });
|
||||
RegisterBlock(EBlockType::Grass, { EFaceTexture::Grass, EFaceTexture::Dirt, EFaceTexture::GrassSide, EFaceTexture::GrassSide, EFaceTexture::GrassSide, EFaceTexture::GrassSide });
|
||||
RegisterBlock(EBlockType::Cobblestone, { EFaceTexture::Cobblestone, EFaceTexture::Cobblestone, EFaceTexture::Cobblestone, EFaceTexture::Cobblestone, EFaceTexture::Cobblestone, EFaceTexture::Cobblestone });
|
||||
RegisterBlock(EBlockType::Bedrock, { EFaceTexture::Bedrock, EFaceTexture::Bedrock, EFaceTexture::Bedrock, EFaceTexture::Bedrock, EFaceTexture::Bedrock, EFaceTexture::Bedrock });
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -8,9 +8,12 @@ namespace EBlockType {
|
||||
|
||||
enum Block : uint8_t {
|
||||
|
||||
Air = 0,
|
||||
Dirt = 1,
|
||||
Grass = 2
|
||||
Air = 0,
|
||||
Stone,
|
||||
Grass,
|
||||
Dirt,
|
||||
Cobblestone,
|
||||
Bedrock
|
||||
|
||||
};
|
||||
|
||||
@@ -20,9 +23,12 @@ namespace EFaceTexture {
|
||||
|
||||
enum Texture : uint16_t {
|
||||
|
||||
Dirt = 0,
|
||||
GrassSide = 1,
|
||||
Grass = 2
|
||||
Stone,
|
||||
Dirt,
|
||||
GrassSide,
|
||||
Grass,
|
||||
Cobblestone,
|
||||
Bedrock
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user