diff options
Diffstat (limited to 'platform/web')
-rw-r--r-- | platform/web/export/export_plugin.cpp | 8 | ||||
-rw-r--r-- | platform/web/js/libs/library_godot_audio.js | 38 |
2 files changed, 38 insertions, 8 deletions
diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp index 5faab74d7b..efe3c95496 100644 --- a/platform/web/export/export_plugin.cpp +++ b/platform/web/export/export_plugin.cpp @@ -214,6 +214,9 @@ Error EditorExportPlatformWeb::_add_manifest_icon(const String &p_path, const St } Error EditorExportPlatformWeb::_build_pwa(const Ref<EditorExportPreset> &p_preset, const String p_path, const Vector<SharedObject> &p_shared_objects) { + List<String> preset_features; + get_preset_features(p_preset, &preset_features); + String proj_name = GLOBAL_GET("application/config/name"); if (proj_name.is_empty()) { proj_name = "Godot Game"; @@ -239,7 +242,10 @@ Error EditorExportPlatformWeb::_build_pwa(const Ref<EditorExportPreset> &p_prese cache_files.push_back(name + ".icon.png"); cache_files.push_back(name + ".apple-touch-icon.png"); } - cache_files.push_back(name + ".worker.js"); + + if (preset_features.find("threads")) { + cache_files.push_back(name + ".worker.js"); + } cache_files.push_back(name + ".audio.worklet.js"); cache_files.push_back(name + ".audio.position.worklet.js"); replaces["___GODOT_CACHE___"] = Variant(cache_files).to_json_string(); diff --git a/platform/web/js/libs/library_godot_audio.js b/platform/web/js/libs/library_godot_audio.js index 40fb0c356c..aaf986b966 100644 --- a/platform/web/js/libs/library_godot_audio.js +++ b/platform/web/js/libs/library_godot_audio.js @@ -868,7 +868,10 @@ class Bus { * @returns {void} */ static move(fromIndex, toIndex) { - const movedBus = GodotAudio.Bus.getBus(fromIndex); + const movedBus = GodotAudio.Bus.getBusOrNull(fromIndex); + if (movedBus == null) { + return; + } const buses = GodotAudio.buses.filter((_, i) => i !== fromIndex); // Inserts at index. buses.splice(toIndex - 1, 0, movedBus); @@ -1424,7 +1427,10 @@ const _GodotAudio = { * @returns {void} */ remove_sample_bus: function (index) { - const bus = GodotAudio.Bus.getBus(index); + const bus = GodotAudio.Bus.getBusOrNull(index); + if (bus == null) { + return; + } bus.clear(); }, @@ -1454,8 +1460,17 @@ const _GodotAudio = { * @returns {void} */ set_sample_bus_send: function (busIndex, sendIndex) { - const bus = GodotAudio.Bus.getBus(busIndex); - bus.setSend(GodotAudio.Bus.getBus(sendIndex)); + const bus = GodotAudio.Bus.getBusOrNull(busIndex); + if (bus == null) { + // Cannot send from an invalid bus. + return; + } + let targetBus = GodotAudio.Bus.getBusOrNull(sendIndex); + if (targetBus == null) { + // Send to master. + targetBus = GodotAudio.Bus.getBus(0); + } + bus.setSend(targetBus); }, /** @@ -1465,7 +1480,10 @@ const _GodotAudio = { * @returns {void} */ set_sample_bus_volume_db: function (busIndex, volumeDb) { - const bus = GodotAudio.Bus.getBus(busIndex); + const bus = GodotAudio.Bus.getBusOrNull(busIndex); + if (bus == null) { + return; + } bus.setVolumeDb(volumeDb); }, @@ -1476,7 +1494,10 @@ const _GodotAudio = { * @returns {void} */ set_sample_bus_solo: function (busIndex, enable) { - const bus = GodotAudio.Bus.getBus(busIndex); + const bus = GodotAudio.Bus.getBusOrNull(busIndex); + if (bus == null) { + return; + } bus.solo(enable); }, @@ -1487,7 +1508,10 @@ const _GodotAudio = { * @returns {void} */ set_sample_bus_mute: function (busIndex, enable) { - const bus = GodotAudio.Bus.getBus(busIndex); + const bus = GodotAudio.Bus.getBusOrNull(busIndex); + if (bus == null) { + return; + } bus.mute(enable); }, }, |