rename BlockModel to BlockModelType
This commit is contained in:
@@ -45,7 +45,7 @@ void BlockWrapsRenderer::draw(const BlockWrapper& wrapper) {
|
||||
if (vox->id != BLOCK_VOID) {
|
||||
const auto& def = level.content.getIndices()->blocks.require(vox->id);
|
||||
switch (def.model) {
|
||||
case BlockModel::block:
|
||||
case BlockModelType::BLOCK:
|
||||
batch->cube(
|
||||
glm::vec3(wrapper.position) + glm::vec3(0.5f),
|
||||
glm::vec3(1.01f),
|
||||
@@ -54,7 +54,7 @@ void BlockWrapsRenderer::draw(const BlockWrapper& wrapper) {
|
||||
false
|
||||
);
|
||||
break;
|
||||
case BlockModel::aabb: {
|
||||
case BlockModelType::AABB: {
|
||||
const auto& aabb =
|
||||
(def.rotatable ? def.rt.hitboxes[vox->state.rotation]
|
||||
: def.hitboxes)
|
||||
|
||||
@@ -33,16 +33,16 @@ std::unique_ptr<ImageData> BlocksPreview::draw(
|
||||
|
||||
glm::vec3 offset(0.1f, 0.5f, 0.1f);
|
||||
switch (def.model) {
|
||||
case BlockModel::none:
|
||||
case BlockModelType::NONE:
|
||||
// something went wrong...
|
||||
break;
|
||||
case BlockModel::block:
|
||||
case BlockModelType::BLOCK:
|
||||
shader.uniformMatrix("u_apply", glm::translate(glm::mat4(1.0f), offset));
|
||||
batch.blockCube(glm::vec3(size * 0.63f), texfaces,
|
||||
glm::vec4(1.0f), !def.rt.emissive);
|
||||
batch.flush();
|
||||
break;
|
||||
case BlockModel::aabb:
|
||||
case BlockModelType::AABB:
|
||||
{
|
||||
glm::vec3 hitbox {};
|
||||
for (const auto& box : def.hitboxes) {
|
||||
@@ -60,7 +60,7 @@ std::unique_ptr<ImageData> BlocksPreview::draw(
|
||||
}
|
||||
batch.flush();
|
||||
break;
|
||||
case BlockModel::custom:{
|
||||
case BlockModelType::CUSTOM:{
|
||||
glm::vec3 pmul = glm::vec3(size * 0.63f);
|
||||
glm::vec3 hitbox = glm::vec3(1.0f);
|
||||
glm::vec3 poff = glm::vec3(0.0f, 0.0f, 1.0f);
|
||||
@@ -78,7 +78,7 @@ std::unique_ptr<ImageData> BlocksPreview::draw(
|
||||
}
|
||||
break;
|
||||
}
|
||||
case BlockModel::xsprite: {
|
||||
case BlockModelType::XSPRITE: {
|
||||
shader.uniformMatrix("u_apply", glm::translate(glm::mat4(1.0f), offset));
|
||||
glm::vec3 right = glm::normalize(glm::vec3(1.f, 0.f, -1.f));
|
||||
batch.sprite(
|
||||
|
||||
@@ -454,21 +454,21 @@ void BlocksRenderer::render(
|
||||
int y = i / (CHUNK_D * CHUNK_W);
|
||||
int z = (i / CHUNK_D) % CHUNK_W;
|
||||
switch (def.model) {
|
||||
case BlockModel::block:
|
||||
case BlockModelType::BLOCK:
|
||||
blockCube({x, y, z}, texfaces, def, vox.state, !def.shadeless,
|
||||
def.ambientOcclusion);
|
||||
break;
|
||||
case BlockModel::xsprite: {
|
||||
case BlockModelType::XSPRITE: {
|
||||
blockXSprite(x, y, z, glm::vec3(1.0f),
|
||||
texfaces[FACE_MX], texfaces[FACE_MZ], 1.0f);
|
||||
break;
|
||||
}
|
||||
case BlockModel::aabb: {
|
||||
case BlockModelType::AABB: {
|
||||
blockAABB({x, y, z}, texfaces, &def, vox.state.rotation,
|
||||
!def.shadeless, def.ambientOcclusion);
|
||||
break;
|
||||
}
|
||||
case BlockModel::custom: {
|
||||
case BlockModelType::CUSTOM: {
|
||||
blockCustomModel({x, y, z}, &def, vox.state.rotation,
|
||||
!def.shadeless, def.ambientOcclusion);
|
||||
break;
|
||||
@@ -517,21 +517,21 @@ SortingMeshData BlocksRenderer::renderTranslucent(
|
||||
int y = i / (CHUNK_D * CHUNK_W);
|
||||
int z = (i / CHUNK_D) % CHUNK_W;
|
||||
switch (def.model) {
|
||||
case BlockModel::block:
|
||||
case BlockModelType::BLOCK:
|
||||
blockCube({x, y, z}, texfaces, def, vox.state, !def.shadeless,
|
||||
def.ambientOcclusion);
|
||||
break;
|
||||
case BlockModel::xsprite: {
|
||||
case BlockModelType::XSPRITE: {
|
||||
blockXSprite(x, y, z, glm::vec3(1.0f),
|
||||
texfaces[FACE_MX], texfaces[FACE_MZ], 1.0f);
|
||||
break;
|
||||
}
|
||||
case BlockModel::aabb: {
|
||||
case BlockModelType::AABB: {
|
||||
blockAABB({x, y, z}, texfaces, &def, vox.state.rotation,
|
||||
!def.shadeless, def.ambientOcclusion);
|
||||
break;
|
||||
}
|
||||
case BlockModel::custom: {
|
||||
case BlockModelType::CUSTOM: {
|
||||
blockCustomModel({x, y, z}, &def, vox.state.rotation,
|
||||
!def.shadeless, def.ambientOcclusion);
|
||||
break;
|
||||
|
||||
@@ -50,7 +50,7 @@ static inline UVRegion get_region_for(
|
||||
|
||||
void ModelsGenerator::prepare(Content& content, Assets& assets) {
|
||||
for (auto& [name, def] : content.blocks.getDefs()) {
|
||||
if (def->model == BlockModel::custom && def->modelName.empty()) {
|
||||
if (def->model == BlockModelType::CUSTOM && def->modelName.empty()) {
|
||||
assets.store(
|
||||
std::make_unique<model::Model>(
|
||||
loadCustomBlockModel(
|
||||
@@ -74,7 +74,7 @@ void ModelsGenerator::prepare(Content& content, Assets& assets) {
|
||||
|
||||
model::Model ModelsGenerator::fromCustom(
|
||||
const Assets& assets,
|
||||
const std::vector<BoxModel>& modelBoxes,
|
||||
const std::vector<AABB>& modelBoxes,
|
||||
const std::vector<std::string>& modelTextures,
|
||||
const std::vector<glm::vec3>& points,
|
||||
bool lighting
|
||||
@@ -131,11 +131,11 @@ model::Model ModelsGenerator::generate(
|
||||
if (def.iconType == ItemIconType::BLOCK) {
|
||||
auto model = assets.require<model::Model>("block");
|
||||
const auto& blockDef = content.blocks.require(def.icon);
|
||||
if (blockDef.model == BlockModel::xsprite) {
|
||||
if (blockDef.model == BlockModelType::XSPRITE) {
|
||||
return create_flat_model(
|
||||
"blocks:" + blockDef.textureFaces.at(0), assets
|
||||
);
|
||||
} else if (blockDef.model == BlockModel::custom) {
|
||||
} else if (blockDef.model == BlockModelType::CUSTOM) {
|
||||
model = assets.require<model::Model>(blockDef.modelName);
|
||||
for (auto& mesh : model.meshes) {
|
||||
mesh.scale(glm::vec3(0.2f));
|
||||
@@ -145,7 +145,7 @@ model::Model ModelsGenerator::generate(
|
||||
for (auto& mesh : model.meshes) {
|
||||
mesh.lighting = !blockDef.shadeless;
|
||||
switch (blockDef.model) {
|
||||
case BlockModel::aabb: {
|
||||
case BlockModelType::AABB: {
|
||||
glm::vec3 size = blockDef.hitboxes.at(0).size();
|
||||
float m = glm::max(size.x, glm::max(size.y, size.z));
|
||||
m = glm::min(1.0f, m);
|
||||
|
||||
Reference in New Issue
Block a user