diff --git a/src/assets/AssetsLoader.cpp b/src/assets/AssetsLoader.cpp index 14d1298f..e068295b 100644 --- a/src/assets/AssetsLoader.cpp +++ b/src/assets/AssetsLoader.cpp @@ -226,6 +226,7 @@ void AssetsLoader::addDefaults(AssetsLoader& loader, const Content* content) { loader.tryAddSound(material.stepsSound); loader.tryAddSound(material.placeSound); loader.tryAddSound(material.breakSound); + loader.tryAddSound(material.hitSound); } for (auto& entry : content->getPacks()) { diff --git a/src/content/ContentLoader.cpp b/src/content/ContentLoader.cpp index 52f4ffa0..64d4f69b 100644 --- a/src/content/ContentLoader.cpp +++ b/src/content/ContentLoader.cpp @@ -573,6 +573,10 @@ void ContentLoader::loadBlockMaterial( root.at("steps-sound").get(def.stepsSound); root.at("place-sound").get(def.placeSound); root.at("break-sound").get(def.breakSound); + root.at("hit-sound").get(def.hitSound); + if (def.hitSound.empty()) { + def.hitSound = def.stepsSound; + } } void ContentLoader::loadContent(const dv::value& root) { diff --git a/src/voxels/Block.cpp b/src/voxels/Block.cpp index 300eb250..3aee8606 100644 --- a/src/voxels/Block.cpp +++ b/src/voxels/Block.cpp @@ -13,7 +13,8 @@ dv::value BlockMaterial::serialize() const { {"name", name}, {"stepsSound", stepsSound}, {"placeSound", placeSound}, - {"breakSound", breakSound} + {"breakSound", breakSound}, + {"hitSound", hitSound} }); } diff --git a/src/voxels/Block.hpp b/src/voxels/Block.hpp index f3fa2a0f..b127a48b 100644 --- a/src/voxels/Block.hpp +++ b/src/voxels/Block.hpp @@ -109,9 +109,10 @@ using BoxModel = AABB; /// @brief Common kit of block properties applied to groups of blocks struct BlockMaterial { std::string name; - std::string stepsSound {""}; - std::string placeSound {""}; - std::string breakSound {""}; + std::string stepsSound; + std::string placeSound; + std::string breakSound; + std::string hitSound; dv::value serialize() const; };