summaryrefslogtreecommitdiffstats
path: root/src/AssetManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/AssetManager.cpp')
-rw-r--r--src/AssetManager.cpp41
1 files changed, 18 insertions, 23 deletions
diff --git a/src/AssetManager.cpp b/src/AssetManager.cpp
index 7bcfaae..63dc596 100644
--- a/src/AssetManager.cpp
+++ b/src/AssetManager.cpp
@@ -27,6 +27,8 @@ std::unique_ptr<AssetTreeNode> assetTree;
std::unique_ptr<TextureAtlas> atlas;
std::map<BlockId, BlockFaces> blockIdToBlockFaces;
+BlockFaces errorFaces;
+
void LoadIds();
void LoadAssets();
void LoadTextures();
@@ -68,6 +70,13 @@ void AssetManager::InitAssetManager()
void AssetManager::InitPostRml() {
LoadScripts();
+
+ errorFaces.transform = glm::mat4(1.0);
+ errorFaces.faces = GetAsset<AssetBlockModel>("/minecraft/models/block/error")->blockModel.parsedFaces;
+ errorFaces.isBlock = GetAsset<AssetBlockModel>("/minecraft/models/block/error")->blockModel.IsBlock;
+ for (int i = 0; i < FaceDirection::none; i++) {
+ errorFaces.faceDirectionVector[i] = FaceDirectionVector[i];
+ }
}
void LoadIds() {
@@ -606,35 +615,23 @@ BlockFaces &AssetManager::GetBlockModelByBlockId(BlockId block) {
if (it != blockIdToBlockFaces.end())
return it->second;
- if (block.id == 7788) {
- BlockFaces blockFaces;
- blockFaces.transform = glm::mat4(1.0);
- blockFaces.faces = GetAsset<AssetBlockModel>("/minecraft/models/block/error")->blockModel.parsedFaces;
- blockFaces.isBlock = GetAsset<AssetBlockModel>("/minecraft/models/block/error")->blockModel.IsBlock;
- for (int i = 0; i < FaceDirection::none; i++) {
- blockFaces.faceDirectionVector[i] = FaceDirectionVector[i];
- }
- blockIdToBlockFaces.insert(std::make_pair(block, blockFaces));
- return blockIdToBlockFaces.find(block)->second;
- }
-
- BlockInfo blockInfo = GetBlockInfo(block);
- AssetBlockState *asset = GetAsset<AssetBlockState>("/minecraft/blockstates/" + blockInfo.blockstate);
+ BlockInfo *blockInfo = GetBlockInfo(block);
+ AssetBlockState *asset = GetAsset<AssetBlockState>("/minecraft/blockstates/" + blockInfo->blockstate);
if (!asset)
- return GetBlockModelByBlockId(BlockId{ 7788,0 });
+ return errorFaces;
BlockState &blockState = asset->blockState;
- if (blockState.variants.find(blockInfo.variant) == blockState.variants.end())
- return GetBlockModelByBlockId(BlockId{ 7788,0 });
+ if (blockState.variants.find(blockInfo->variant) == blockState.variants.end())
+ return errorFaces;
- BlockStateVariant &variant = blockState.variants[blockInfo.variant];
+ BlockStateVariant &variant = blockState.variants[blockInfo->variant];
if (variant.models.empty())
- return GetBlockModelByBlockId(BlockId{ 7788,0 });
+ return errorFaces;
BlockStateVariant::Model &model = variant.models[0];
AssetBlockModel *assetModel = GetAsset<AssetBlockModel>("/minecraft/models/block/" + model.modelName);
if (!assetModel)
- return GetBlockModelByBlockId(BlockId{ 7788,0 });
+ return errorFaces;
BlockFaces blockFaces;
blockFaces.transform = glm::mat4(1.0);
@@ -661,9 +658,7 @@ BlockFaces &AssetManager::GetBlockModelByBlockId(BlockId block) {
blockFaces.faceDirectionVector[i] = Vector(roundf(vec.x), roundf(vec.y), roundf(vec.z));
}
- blockIdToBlockFaces.insert(std::make_pair(block, blockFaces));
-
- return blockIdToBlockFaces.find(block)->second;
+ return blockIdToBlockFaces.insert(std::make_pair(block, blockFaces)).first->second;
}
std::string AssetManager::GetAssetNameByBlockId(BlockId block) {