Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
92fb49191b
5 changed files with 967 additions and 1053 deletions
|
|
@ -69,7 +69,7 @@ public class GameCore implements GameLogic {
|
|||
private ModelData RevolverData;
|
||||
public ILight SkyLight;
|
||||
private LoadingScreen loadingScreen;
|
||||
private final StartMenu startMenu = new StartMenu();
|
||||
public final StartMenu startMenu = new StartMenu();
|
||||
public boolean StartMenuActive = true;
|
||||
public List<IMoveableActorComponent> ActorEditorComponents = new ArrayList<>();
|
||||
private Vector2f DeltaPos = new Vector2f(0,0);
|
||||
|
|
@ -279,14 +279,24 @@ public class GameCore implements GameLogic {
|
|||
ActorEditorComponents.add(new EditorActorComponent(Melona,new Vector3f(scene.GetCamera().GetPosition()),new Vector3f(1.0f,1.8f,1.0f)));
|
||||
}
|
||||
|
||||
private void InitiateAudio(EngineInstance engineInstance){
|
||||
if(RenderThread.Headless || PrimaryRuntime.Server) return;
|
||||
private void InitiateAudio(EngineInstance engineInstance) {
|
||||
if (RenderThread.Headless || PrimaryRuntime.Server) return;
|
||||
AudioManager audioManager = engineInstance.audioManager();
|
||||
Camera camera = engineInstance.scene().GetCamera();
|
||||
audioManager.SetAttenuationModel(AL11.AL_EXPONENT_DISTANCE);
|
||||
audioManager.SetListener(new SoundListener(camera.GetPosition()));
|
||||
engineInstance.scene().SetUpAudio(engineInstance,audioManager);
|
||||
engineInstance.scene().SetUpAudio(engineInstance, audioManager);
|
||||
}
|
||||
public void SwitchBGM(EngineInstance engineInstance, Scene scene, String path) {
|
||||
AudioInstance bgm = scene.audioInstances.get("BGM");
|
||||
if (bgm == null) {
|
||||
scene.SetUpAudio(engineInstance, engineInstance.audioManager());
|
||||
bgm = scene.audioInstances.get("BGM");
|
||||
}
|
||||
bgm.Pause();
|
||||
bgm.ChangePath(path, engineInstance.audioManager());
|
||||
bgm.Play();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void CameraInput(EngineInstance engineInstance, long FrameDiffNanoSeconds) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,16 @@ import org.tinylog.Logger;
|
|||
|
||||
public class StartMenu implements GUIOverlay {
|
||||
public boolean GameStarted = false;
|
||||
public boolean ShowSettings = false;
|
||||
public float Volume = 1.0f;
|
||||
|
||||
private void ApplyVolume(EngineInstance engineInstance) {
|
||||
Scene scene = (Scene) engineInstance.scene();
|
||||
AudioInstance bgm = scene.audioInstances.get("BGM");
|
||||
if (bgm != null) {
|
||||
bgm.SetVolume(Volume);
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void RenderGUI(EngineInstance engineInstance, long frameTimeNS, GameCore parent) {
|
||||
if (GameStarted) return;
|
||||
|
|
@ -61,20 +70,39 @@ public class StartMenu implements GUIOverlay {
|
|||
if (ImGui.button("Play", buttonWidth, buttonHeight)) {
|
||||
GameStarted = true;
|
||||
Scene scene = (Scene) engineInstance.scene();
|
||||
AudioInstance bgm = scene.audioInstances.get("BGM");
|
||||
|
||||
if (bgm == null) {
|
||||
scene.SetUpAudio(engineInstance, engineInstance.audioManager());
|
||||
bgm = scene.audioInstances.get("BGM");
|
||||
}
|
||||
bgm.Pause();
|
||||
bgm.ChangePath("resources/EngineResources/audio/music/theshiteventhefar.ogg", engineInstance.audioManager());
|
||||
bgm.Play();
|
||||
parent.SwitchBGM(engineInstance, scene, "resources/EngineResources/audio/music/theshiteventhefar.ogg");
|
||||
}
|
||||
ImGui.setCursorPosX(buttonX);
|
||||
if (ImGui.button("Settings", buttonWidth, buttonHeight)) {
|
||||
System.exit(0);
|
||||
ShowSettings = !ShowSettings;
|
||||
}
|
||||
if (ShowSettings) {
|
||||
ImGui.spacing();
|
||||
ImGui.setCursorPosX(buttonX);
|
||||
ImGui.text("Volume: " + Math.round(Volume * 100) + "%");
|
||||
|
||||
ImGui.setCursorPosX(buttonX);
|
||||
if (ImGui.button("-", 40f, 40f)) {
|
||||
Volume = Math.max(0f, Volume - 0.1f);
|
||||
ApplyVolume(engineInstance);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("+", 40f, 40f)) {
|
||||
Volume = Math.min(1f, Volume + 0.1f);
|
||||
ApplyVolume(engineInstance);
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("Mute", 100f, 40f)) {
|
||||
Scene scene = (Scene) engineInstance.scene();
|
||||
AudioInstance bgm = scene.audioInstances.get("BGM");
|
||||
bgm.Pause();
|
||||
}
|
||||
ImGui.sameLine();
|
||||
if (ImGui.button("Unmute", 130f, 40f)) {
|
||||
Scene scene = (Scene) engineInstance.scene();
|
||||
AudioInstance bgm = scene.audioInstances.get("BGM");
|
||||
bgm.Play();
|
||||
}
|
||||
}
|
||||
ImGui.setCursorPosX(buttonX);
|
||||
if (ImGui.button("Quit", buttonWidth, buttonHeight)) {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import net.halbear.Terrain4J.EngineCore.Main.GameCore;
|
|||
import net.halbear.Terrain4J.EngineCore.Main.PrimaryRuntime;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.Gimbal;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.PerformanceOverlay;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.StartMenu;
|
||||
import net.halbear.Terrain4J.EngineCore.Threads.ClientConnectionThread;
|
||||
import net.halbear.Terrain4J.EngineCore.Threads.RenderThread;
|
||||
import net.halbear.Terrain4J.EngineCore.Vulkan.Rendering.DynamicMesh.DynamicTerrainMesh;
|
||||
|
|
@ -61,6 +62,8 @@ public class Scene implements IScene {
|
|||
public PlayerActor CurrentWeapon;
|
||||
public PlayerActor Musket;
|
||||
public PlayerActor Revolver;
|
||||
private final StartMenu startMenu = new StartMenu();
|
||||
public boolean StartMenuActive = true;
|
||||
|
||||
public List<String> ActiveGUIs = new ArrayList<>();
|
||||
public Map<String, GUIOverlay> GUIReg = new HashMap<>();
|
||||
|
|
@ -276,7 +279,17 @@ public class Scene implements IScene {
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
if (input.keySinglePress(GLFW_KEY_ESCAPE)) {
|
||||
parent.StartMenuActive = true;
|
||||
parent.startMenu.GameStarted = false;
|
||||
parent.SwitchBGM(engineInstance, this, "resources/EngineResources/audio/music/MENUMUSIC_RetroFutureClean.ogg");
|
||||
}
|
||||
MouseListener mouseListener = window.getMouseInput();
|
||||
if (mouseListener.isRightButtonPressed()) {
|
||||
CurrentWeapon.SetPositionOffset(new Vector3f(0f,1.0f,-1.25f)); // centered = aiming
|
||||
} else {
|
||||
CurrentWeapon.SetPositionOffset(new Vector3f(0.5f,1.0f,-1.25f)); // hip-fire default
|
||||
}
|
||||
if(input.keyPressed(GLFW_KEY_1)) {
|
||||
Gimbal.universalType = Gimbal.GimbalType.Move;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue