From b50ba66cd8dede4a715872cc5a8b8bd2161aca65 Mon Sep 17 00:00:00 2001 From: austin Date: Tue, 3 Sep 2024 23:28:34 -0400 Subject: [PATCH] hitbox audio service bugfixes --- .../audio/collision/HitboxAudioService.java | 7 +++-- .../HitboxAudioServiceUnitTests.java | 29 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/test/java/electrosphere/audio/collision/HitboxAudioServiceUnitTests.java diff --git a/src/main/java/electrosphere/audio/collision/HitboxAudioService.java b/src/main/java/electrosphere/audio/collision/HitboxAudioService.java index df410636..b910c043 100644 --- a/src/main/java/electrosphere/audio/collision/HitboxAudioService.java +++ b/src/main/java/electrosphere/audio/collision/HitboxAudioService.java @@ -63,7 +63,7 @@ public class HitboxAudioService { */ public void playAudioPositional(Entity senderEntity, Entity receiverEntity, String hitboxType, String hurtboxType, Vector3d position){ String audioPath = this.getAudioPath(senderEntity, receiverEntity, hitboxType, hurtboxType); - if(audioPath != null){ + if(audioPath != null && Globals.virtualAudioSourceManager != null){ Globals.virtualAudioSourceManager.createVirtualAudioSource(audioPath, VirtualAudioSourceType.CREATURE, false, position); } } @@ -76,9 +76,12 @@ public class HitboxAudioService { * @param hurtboxType The hurthox type * @return The audio file to play */ - private String getAudioPath(Entity senderEntity, Entity receiverEntity, String hitboxType, String hurtboxType){ + protected String getAudioPath(Entity senderEntity, Entity receiverEntity, String hitboxType, String hurtboxType){ boolean isBlockSound = false; boolean isDamageSound = false; + if(hitboxType == null){ + return null; + } switch(hitboxType){ case HitboxData.HITBOX_TYPE_HIT: case HitboxData.HITBOX_TYPE_HIT_CONNECTED: { diff --git a/src/test/java/electrosphere/audio/collision/HitboxAudioServiceUnitTests.java b/src/test/java/electrosphere/audio/collision/HitboxAudioServiceUnitTests.java new file mode 100644 index 00000000..51792949 --- /dev/null +++ b/src/test/java/electrosphere/audio/collision/HitboxAudioServiceUnitTests.java @@ -0,0 +1,29 @@ +package electrosphere.audio.collision; + +import org.junit.jupiter.api.Assertions; + +import annotations.FastTest; +import annotations.UnitTest; + +/** + * Unit tests for hitbox audio service + */ +public class HitboxAudioServiceUnitTests { + + @UnitTest + @FastTest + public void playAudioPositional_WithNull_NoThrow(){ + HitboxAudioService hitboxAudioService = new HitboxAudioService(); + Assertions.assertDoesNotThrow(() -> { + hitboxAudioService.playAudioPositional(null, null, null, null, null); + }); + } + + @UnitTest + @FastTest + public void getAudioPath_WithNullHitboxType_ReturnsNull(){ + HitboxAudioService hitboxAudioService = new HitboxAudioService(); + Assertions.assertEquals(null, hitboxAudioService.getAudioPath(null, null, null, null)); + } + +}