diff --git a/src/assets/AssetsLoader.cpp b/src/assets/AssetsLoader.cpp index fe837533..20e9af4a 100644 --- a/src/assets/AssetsLoader.cpp +++ b/src/assets/AssetsLoader.cpp @@ -80,6 +80,7 @@ void AssetsLoader::addDefaults(AssetsLoader& loader, const Content* content) { loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/misc/moon.png", "misc/moon"); loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/misc/sun.png", "misc/sun"); loader.add(ASSET_TEXTURE, TEXTURES_FOLDER"/gui/crosshair.png", "gui/crosshair"); + loader.add(ASSET_SOUND, SOUNDS_FOLDER"/steps/grass.ogg", "steps/grass"); addLayouts(0, "core", loader.getPaths()->getMainRoot()/fs::path("layouts"), loader); for (auto& entry : content->getPacks()) { diff --git a/src/frontend/screens.cpp b/src/frontend/screens.cpp index 8c12074e..fb057c5a 100644 --- a/src/frontend/screens.cpp +++ b/src/frontend/screens.cpp @@ -100,6 +100,25 @@ LevelScreen::LevelScreen(Engine* engine, Level* level) : Screen(engine) { worldRenderer = std::make_unique(engine, frontend.get(), controller->getPlayer()); hud = std::make_unique(engine, frontend.get(), controller->getPlayer()); + controller->getPlayerController()->listenBlockInteraction( + [=](Player*, glm::ivec3 pos, const Block* def, BlockInteraction type) { + if (type != BlockInteraction::step) { + return; + } + auto sound = assets->getSound("steps/grass"); + audio::play( + sound, + glm::vec3(), + true, + 1.0f, + 1.0f, + false, + audio::PRIORITY_LOW, + audio::get_channel_index("regular") + ); + } + ); + backlight = settings.graphics.backlight; animator = std::make_unique();