add BlockModel struct
This commit is contained in:
@@ -86,20 +86,23 @@ template<> void ContentUnitLoader<Block>::loadUnit(
|
||||
}
|
||||
|
||||
// block model
|
||||
std::string modelTypeName = BlockModelTypeMeta.getNameString(def.model);
|
||||
auto& model = def.model;
|
||||
std::string modelTypeName = BlockModelTypeMeta.getNameString(model.type);
|
||||
root.at("model").get(modelTypeName);
|
||||
root.at("model-name").get(def.modelName);
|
||||
if (BlockModelTypeMeta.getItem(modelTypeName, def.model)) {
|
||||
if (def.model == BlockModelType::CUSTOM && def.customModelRaw == nullptr) {
|
||||
root.at("model-name").get(def.model.name);
|
||||
if (BlockModelTypeMeta.getItem(modelTypeName, model.type)) {
|
||||
if (model.type == BlockModelType::CUSTOM && def.model.customRaw == nullptr) {
|
||||
if (root.has("model-primitives")) {
|
||||
def.customModelRaw = root["model-primitives"];
|
||||
} else if (def.modelName.empty()) {
|
||||
throw std::runtime_error(name + ": no 'model-primitives' or 'model-name' found");
|
||||
def.model.customRaw = root["model-primitives"];
|
||||
} else if (def.model.name.empty()) {
|
||||
throw std::runtime_error(
|
||||
name + ": no 'model-primitives' or 'model-name' found"
|
||||
);
|
||||
}
|
||||
}
|
||||
} else if (!modelTypeName.empty()) {
|
||||
logger.error() << "unknown model: " << modelTypeName;
|
||||
def.model = BlockModelType::NONE;
|
||||
model.type = BlockModelType::NONE;
|
||||
}
|
||||
|
||||
std::string cullingModeName = CullingModeMeta.getNameString(def.culling);
|
||||
@@ -171,9 +174,9 @@ template<> void ContentUnitLoader<Block>::loadUnit(
|
||||
"block " + util::quote(def.name) + ": invalid block size"
|
||||
);
|
||||
}
|
||||
if (def.model == BlockModelType::BLOCK &&
|
||||
if (model.type == BlockModelType::BLOCK &&
|
||||
(def.size.x != 1 || def.size.y != 1 || def.size.z != 1)) {
|
||||
def.model = BlockModelType::AABB;
|
||||
model.type = BlockModelType::AABB;
|
||||
def.hitboxes = {AABB(def.size)};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user