diff --git a/assets/Audio/movement/action/Whoosh A.wav b/assets/Audio/movement/action/Whoosh A.wav new file mode 100644 index 00000000..2fc28294 Binary files /dev/null and b/assets/Audio/movement/action/Whoosh A.wav differ diff --git a/assets/Audio/movement/action/Whoosh B.wav b/assets/Audio/movement/action/Whoosh B.wav new file mode 100644 index 00000000..3088a082 Binary files /dev/null and b/assets/Audio/movement/action/Whoosh B.wav differ diff --git a/assets/Data/entity/creatures/human.json b/assets/Data/entity/creatures/human.json index 0787eeb7..584d1b6c 100644 --- a/assets/Data/entity/creatures/human.json +++ b/assets/Data/entity/creatures/human.json @@ -416,6 +416,9 @@ "nameFirstPerson" : "AttackUnarmed1", "nameThirdPerson" : "AttackUnarmed1", "priorityCategory" : "MOVEMENT_MODIFIER" + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh A.wav" } }, "activeBones" : [ @@ -436,6 +439,9 @@ "nameFirstPerson" : "AttackUnarmed2", "nameThirdPerson" : "AttackUnarmed2", "priorityCategory" : "MOVEMENT_MODIFIER" + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh B.wav" } }, "activeBones" : [ @@ -464,6 +470,9 @@ "nameThirdPerson" : "SwordRHSlash1", "priorityCategory" : "MOVEMENT_MODIFIER", "boneGroups" : ["armRight", "handRight"] + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh A.wav" } } }, @@ -487,6 +496,9 @@ "nameThirdPerson" : "SwordRHSlash2", "priorityCategory" : "MOVEMENT_MODIFIER", "boneGroups" : ["armRight", "handRight"] + }, + "audioData" : { + "audioPath" : "Audio/movement/action/Whoosh B.wav" } } }, diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index b05d64aa..e268c23e 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1484,6 +1484,8 @@ UI test data fixes (04/15/2025) Cull unused assets Update default texture +Sound effect on swinging fists/weapons +Queue loading audio file on creating virtual spatial source diff --git a/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java b/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java index b78fc0f9..735fbbc3 100644 --- a/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java +++ b/src/main/java/electrosphere/audio/VirtualAudioSourceManager.java @@ -64,6 +64,7 @@ public class VirtualAudioSourceManager { */ public VirtualAudioSource createVirtualAudioSource(String filePath, VirtualAudioSourceType type, boolean loops, Vector3d position){ VirtualAudioSource source = new VirtualAudioSource(filePath, type, loops, position); + Globals.assetManager.addAudioPathToQueue(filePath); LoggerInterface.loggerAudio.DEBUG("Create virtual audio source " + filePath); this.virtualSourceQueue.add(source); return source; @@ -77,6 +78,7 @@ public class VirtualAudioSourceManager { */ public VirtualAudioSource createVirtualAudioSource(String filePath, VirtualAudioSourceType type, boolean loops){ VirtualAudioSource source = new VirtualAudioSource(filePath, type, loops); + Globals.assetManager.addAudioPathToQueue(filePath); LoggerInterface.loggerAudio.DEBUG("Create virtual audio source " + filePath); this.virtualSourceQueue.add(source); return source; @@ -88,6 +90,7 @@ public class VirtualAudioSourceManager { */ public VirtualAudioSource createUI(String filePath){ VirtualAudioSource source = new VirtualAudioSource(filePath, VirtualAudioSourceType.UI, false); + Globals.assetManager.addAudioPathToQueue(filePath); LoggerInterface.loggerAudio.DEBUG("Create virtual audio source " + filePath); this.virtualSourceQueue.add(source); return source; @@ -154,7 +157,6 @@ public class VirtualAudioSourceManager { //add virtual source if necessary if(category.activeVirtualSources.size() < category.capacity && !category.activeVirtualSources.contains(source)){ //activate source here - category.activeVirtualSources.add(source); AudioSource realSource = null; LoggerInterface.loggerAudio.DEBUG("[VirtualAudioSourceManager] MAP Audio to real source! "); if(source.position == null){ @@ -167,6 +169,7 @@ public class VirtualAudioSourceManager { realSource.setGain(source.gain); realSource.setOffset(source.totalTimePlayed); virtualActiveMap.put(source, realSource); + category.activeVirtualSources.add(source); } } }