diff options
Diffstat (limited to 'src/AssetManager.cpp')
-rw-r--r-- | src/AssetManager.cpp | 41 |
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) { |