aabb block shape WIP + common refactor

This commit is contained in:
MihailRis
2023-11-30 14:48:38 +03:00
parent 73d87ae451
commit 0c35eeb072
21 changed files with 177 additions and 76 deletions
+6 -2
View File
@@ -4,6 +4,7 @@
#include <string>
#include "../maths/aabb.h"
#include "../typedefs.h"
#define FACE_MX 0
#define FACE_PX 1
@@ -15,13 +16,15 @@
#define BLOCK_AABB_GRID 16
enum class BlockModel {
none, block, xsprite
none, // invisible
block, // default shape
xsprite, // X-shape (grass)
aabb // box shaped as block hitbox
};
class Block {
public:
std::string const name;
unsigned int id;
// 0 1 2 3 4 5
std::string textureFaces[6]; // -x,x, -y,y, -z,z
unsigned char emission[4];
@@ -36,6 +39,7 @@ public:
AABB hitbox;
struct {
blockid_t id;
bool solid = true;
bool emissive = false;
bool hitboxGrid[BLOCK_AABB_GRID][BLOCK_AABB_GRID][BLOCK_AABB_GRID];
+10 -10
View File
@@ -97,16 +97,16 @@ float calc_height(fnl_state *noise, int real_x, int real_z){
}
WorldGenerator::WorldGenerator(const Content* content)
: idStone(content->require("base:stone")->id),
idDirt(content->require("base:dirt")->id),
idGrassBlock(content->require("base:grass_block")->id),
idSand(content->require("base:sand")->id),
idWater(content->require("base:water")->id),
idWood(content->require("base:wood")->id),
idLeaves(content->require("base:leaves")->id),
idGrass(content->require("base:grass")->id),
idFlower(content->require("base:flower")->id),
idBedrock(content->require("base:bedrock")->id) {;
: idStone(content->require("base:stone")->rt.id),
idDirt(content->require("base:dirt")->rt.id),
idGrassBlock(content->require("base:grass_block")->rt.id),
idSand(content->require("base:sand")->rt.id),
idWater(content->require("base:water")->rt.id),
idWood(content->require("base:wood")->rt.id),
idLeaves(content->require("base:leaves")->rt.id),
idGrass(content->require("base:grass")->rt.id),
idFlower(content->require("base:flower")->rt.id),
idBedrock(content->require("base:bedrock")->rt.id) {;
}
int generate_tree(fnl_state *noise,