sfx GunCock, ambient crickets, fire sound

This commit is contained in:
Will_Allen 2026-07-10 14:38:23 +01:00
parent 9723a3567c
commit 1284a9835a
2 changed files with 176 additions and 157 deletions

View file

@ -20,6 +20,7 @@ import net.halbear.Terrain4J.EngineCore.Threads.RenderThread;
import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.DynamicMesh.DynamicTerrainMesh;
import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.Projection.Project3D;
import net.halbear.Terrain4J.EngineCore.Main.Scene.Item;
import net.halbear.Terrain4J.EngineCore.Main.AudioInstance.AudioType;
import org.joml.Vector2f;
import org.joml.Vector3f;
import org.tinylog.Logger;
@ -70,6 +71,12 @@ public class Scene implements IScene {
public Item RevolverItem;
public Item CurrentItem;
public Item FlintLockItem;
public AudioInstance GunCockSFX;
public AudioInstance MusketFireSFX;
public AudioInstance CricketAmbience;
private long TimeSinceLastCricket = 0;
private static final long CRICKET_INTERVAL_NS = 2L * 60 * 1_000_000_000L;
public List<String> ActiveGUIs = new ArrayList<>();
public Map<String, GUIOverlay> GUIReg = new HashMap<>();
@ -160,6 +167,11 @@ public class Scene implements IScene {
TransitionCameraFrame = true;
}
}
TimeSinceLastCricket += FrameDiffNanoSeconds;
if (TimeSinceLastCricket >= CRICKET_INTERVAL_NS) {
CricketAmbience.Play();
TimeSinceLastCricket = 0;
}
}
public Map<String, CameraFrame> GetCameraFrameReg(){return CameraFrames;}
@ -183,6 +195,9 @@ public class Scene implements IScene {
AudioInstance newInstance = new AudioInstance("resources/EngineResources/audio/music/MENUMUSIC_RetroFutureClean.ogg","BGM",manager,true);
newInstance.Play();
audioInstances.put("BGM",newInstance);
GunCockSFX = new AudioInstance("resources/EngineResources/audio/sounds/GunCock.ogg", "GunCockSFX", manager, false).SetAudioType(AudioType.SFX);
MusketFireSFX = new AudioInstance("resources/EngineResources/audio/sounds/MusketFire.ogg", "MusketFireSFX", manager, false).SetAudioType(AudioType.SFX);
CricketAmbience = new AudioInstance("resources/EngineResources/audio/sounds/CricketAmbience.ogg", "CricketAmbience", manager, false).SetAudioType(AudioType.AMBIENT);
}
public Camera GetCamera(){return camera;}
public void AddActor(Actor NewActor){
@ -266,16 +281,19 @@ public class Scene implements IScene {
playerActor.SetModelID(MusketItem.ModelID());
UpdateEntityModelID(playerActor.ID, MusketItem.ModelID());
CurrentItem= MusketItem;
GunCockSFX.Play();
}
if (input.keySinglePress(GLFW_KEY_R)) {
playerActor.SetModelID(RevolverItem.ModelID());
UpdateEntityModelID(playerActor.ID, RevolverItem.ModelID());
CurrentItem= RevolverItem;
GunCockSFX.Play();
}
if (input.keySinglePress(GLFW_KEY_F)) {
playerActor.SetModelID(FlintLockItem.ModelID());
UpdateEntityModelID(playerActor.ID, FlintLockItem.ModelID());
CurrentItem= FlintLockItem;
GunCockSFX.Play();
}
}
if (input.keySinglePress(GLFW_KEY_ESCAPE)) {
@ -297,6 +315,7 @@ public class Scene implements IScene {
if (NewTime - LastGunFire > 1_000_000f * FireRate ){
LastGunFire = NewTime;
ClientConnectionThread.FireWeapon(playerActor.ID, CurrentItem.Damage());
MusketFireSFX.Play();
}
}
}