mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-11 14:01:49 +00:00
feat: 'squash' support for vec3 models
This commit is contained in:
parent
19e180ddbb
commit
7f2d9b887d
1 changed files with 17 additions and 1 deletions
|
|
@ -333,7 +333,23 @@ assetload::postfunc assetload::model(
|
||||||
if (io::exists(path)) {
|
if (io::exists(path)) {
|
||||||
auto bytes = io::read_bytes_buffer(path);
|
auto bytes = io::read_bytes_buffer(path);
|
||||||
auto modelVEC3 = std::make_shared<vec3::File>(vec3::load(path.string(), bytes));
|
auto modelVEC3 = std::make_shared<vec3::File>(vec3::load(path.string(), bytes));
|
||||||
return [loader, name, modelVEC3=std::move(modelVEC3)](Assets* assets) {
|
return [loader, name, cfg, modelVEC3=std::move(modelVEC3)](Assets* assets) {
|
||||||
|
if (cfg && cfg->squashed) {
|
||||||
|
model::Model fullModel;
|
||||||
|
for (auto& entry : modelVEC3->models) {
|
||||||
|
auto& vec3model = entry.second;
|
||||||
|
auto& model = vec3model.model;
|
||||||
|
model.translate(vec3model.origin);
|
||||||
|
fullModel.merge(std::move(model));
|
||||||
|
}
|
||||||
|
request_textures(loader, fullModel);
|
||||||
|
assets->store(
|
||||||
|
std::make_unique<model::Model>(fullModel),
|
||||||
|
name
|
||||||
|
);
|
||||||
|
logger.info() << "store model " << util::quote(name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
for (auto& [modelName, model] : modelVEC3->models) {
|
for (auto& [modelName, model] : modelVEC3->models) {
|
||||||
request_textures(loader, model.model);
|
request_textures(loader, model.model);
|
||||||
std::string fullName = name;
|
std::string fullName = name;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue