fix block overriding

This commit is contained in:
MihailRis 2024-12-19 22:54:54 +03:00
parent 2787f2fc54
commit cda34e3975
2 changed files with 4 additions and 6 deletions

View File

@ -220,11 +220,11 @@ void ContentLoader::loadBlock(
}
// block model
std::string modelTypeName;
std::string modelTypeName = to_string(def.model);
root.at("model").get(modelTypeName);
root.at("model-name").get(def.modelName);
if (auto model = BlockModel_from(modelTypeName)) {
if (*model == BlockModel::custom) {
if (*model == BlockModel::custom && def.customModelRaw == nullptr) {
if (root.has("model-primitives")) {
def.customModelRaw = root["model-primitives"];
} else if (def.modelName.empty()) {
@ -246,7 +246,7 @@ void ContentLoader::loadBlock(
root.at("material").get(def.material);
// rotation profile
std::string profile = "none";
std::string profile = def.rotations.name;
root.at("rotation").get(profile);
def.rotatable = profile != "none";
@ -285,8 +285,6 @@ void ContentLoader::loadBlock(
);
aabb.b += aabb.a;
def.hitboxes = {aabb};
} else {
def.hitboxes = {AABB()};
}
// block light emission [r, g, b] where r,g,b in range [0..15]

View File

@ -181,7 +181,7 @@ public:
bool translucent = false;
/// @brief Set of block physical hitboxes
std::vector<AABB> hitboxes;
std::vector<AABB> hitboxes {AABB()};
/// @brief Set of available block rotations (coord-systems)
BlockRotProfile rotations = BlockRotProfile::NONE;