Merge remote-tracking branch 'origin/main'
# Conflicts: # LastSession.t4jlog
This commit is contained in:
commit
745d38fb09
5 changed files with 989 additions and 149 deletions
1033
LastSession.t4jlog
1033
LastSession.t4jlog
File diff suppressed because it is too large
Load diff
|
|
@ -25,6 +25,7 @@ import net.halbear.Terrain4J.EngineCore.Logic.Rendering.ModelLoader;
|
|||
import net.halbear.Terrain4J.EngineCore.Main.Scene.*;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.Gimbal;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.LoadingScreen;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs.StartMenu;
|
||||
import net.halbear.Terrain4J.EngineCore.Profiling.CPUMonitor;
|
||||
import net.halbear.Terrain4J.EngineCore.Profiling.GPUProfiler;
|
||||
import net.halbear.Terrain4J.EngineCore.Threads.ClientConnectionThread;
|
||||
|
|
@ -68,6 +69,8 @@ public class GameCore implements GameLogic {
|
|||
private ModelData RevolverData;
|
||||
public ILight SkyLight;
|
||||
private LoadingScreen loadingScreen;
|
||||
private final StartMenu startMenu = new StartMenu();
|
||||
public boolean StartMenuActive = true;
|
||||
public List<IMoveableActorComponent> ActorEditorComponents = new ArrayList<>();
|
||||
private Vector2f DeltaPos = new Vector2f(0,0);
|
||||
private String PlayerActorID = "NULL";
|
||||
|
|
@ -162,6 +165,10 @@ public class GameCore implements GameLogic {
|
|||
}
|
||||
}
|
||||
}
|
||||
scene.RemoveActor(Musket);
|
||||
scene.AddActor(Revolver);
|
||||
Musket.AttachedCameraID = "NULL";
|
||||
Revolver.AttachedCameraID = "DebugCamera";
|
||||
return new InitData(models,materials,guiTextures);
|
||||
}
|
||||
|
||||
|
|
@ -399,6 +406,11 @@ public class GameCore implements GameLogic {
|
|||
ImGui.newFrame();
|
||||
if(LoadingLevel){
|
||||
loadingScreen.RenderGUI(engineInstance, frameTimeNS, this);
|
||||
} else if (StartMenuActive) {
|
||||
startMenu.RenderGUI(engineInstance, frameTimeNS, this);
|
||||
if (startMenu.GameStarted) {
|
||||
StartMenuActive = false;
|
||||
}
|
||||
} else {
|
||||
engineInstance.scene().RenderGUIs(engineInstance, frameTimeNS, this);
|
||||
if (ChangeGraphicsSettings) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs;
|
||||
|
||||
import imgui.ImDrawList;
|
||||
import imgui.ImGui;
|
||||
import imgui.ImGuiViewport;
|
||||
import imgui.flag.ImGuiCol;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,87 @@
|
|||
package net.halbear.Terrain4J.EngineCore.Main.Scene.GUIs;
|
||||
|
||||
import imgui.ImDrawList;
|
||||
import imgui.ImGui;
|
||||
import imgui.ImGuiViewport;
|
||||
import imgui.flag.ImGuiCol;
|
||||
import imgui.flag.ImGuiCond;
|
||||
import imgui.flag.ImGuiStyleVar;
|
||||
import imgui.flag.ImGuiWindowFlags;
|
||||
import imgui.type.ImFloat;
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.EngineConfig;
|
||||
import net.halbear.Terrain4J.EngineCore.Logic.EngineInstance;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.GameCore;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.PrimaryRuntime;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.GUIOverlay;
|
||||
import net.halbear.Terrain4J.EngineCore.Vulkan.GUI.GuiTexture;
|
||||
import net.halbear.Terrain4J.EngineCore.Vulkan.Structure.DisplayToScreen.DeferredSceneRender;
|
||||
import net.halbear.Terrain4J.EngineCore.Vulkan.Structure.DisplayToScreen.ForwardSceneRender;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.AudioInstance;
|
||||
import net.halbear.Terrain4J.EngineCore.Main.Scene.Scene;
|
||||
import org.joml.Vector3f;
|
||||
import org.tinylog.Logger;
|
||||
|
||||
public class StartMenu implements GUIOverlay {
|
||||
public boolean GameStarted = false;
|
||||
|
||||
@Override
|
||||
public void RenderGUI(EngineInstance engineInstance, long frameTimeNS, GameCore parent) {
|
||||
if (GameStarted) return;
|
||||
ImGuiViewport viewport = ImGui.getMainViewport();
|
||||
int menuFlags = ImGuiWindowFlags.NoDecoration
|
||||
| ImGuiWindowFlags.AlwaysAutoResize
|
||||
| ImGuiWindowFlags.NoSavedSettings
|
||||
| ImGuiWindowFlags.NoFocusOnAppearing
|
||||
| ImGuiWindowFlags.NoNav
|
||||
| ImGuiWindowFlags.NoMove;
|
||||
|
||||
float CenterX = viewport.getWorkPosX() + viewport.getWorkSizeX() / 2.0f;
|
||||
float CenterY = viewport.getWorkPosY() + viewport.getWorkSizeY() / 2.0f;
|
||||
ImGui.setNextWindowPos(viewport.getWorkPosX(), viewport.getWorkPosY(), ImGuiCond.Always);
|
||||
ImGui.setNextWindowSize(viewport.getWorkSizeX(), viewport.getWorkSizeY());
|
||||
ImGui.pushStyleColor(ImGuiCol.WindowBg, 0.08f, 0.08f, 0.1f, 1.0f);
|
||||
ImGui.pushStyleVar(ImGuiStyleVar.WindowPadding, 40f, 30f);
|
||||
ImGui.pushStyleVar(ImGuiStyleVar.ItemSpacing, 10f, 16f);
|
||||
ImGui.pushStyleVar(ImGuiStyleVar.WindowRounding, 8f);
|
||||
|
||||
ImGui.begin("Start Menu", menuFlags);
|
||||
ImGui.setWindowFontScale(8.0f);
|
||||
float titleX = (viewport.getWorkSizeX() - ImGui.calcTextSize("Shooter Game").x) / 2.0f;
|
||||
float titleY = viewport.getWorkSizeY() * 0.25f;
|
||||
ImGui.setCursorPos(titleX, titleY);
|
||||
ImGui.text("Shooter Game");
|
||||
ImGui.setWindowFontScale(3.0f);
|
||||
ImGui.spacing();
|
||||
ImGui.spacing();
|
||||
float buttonWidth = 450f;
|
||||
float buttonHeight = 90f;
|
||||
float buttonX = (viewport.getWorkSizeX() - buttonWidth) / 2.0f;
|
||||
|
||||
ImGui.setCursorPosX(buttonX);
|
||||
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();
|
||||
}
|
||||
ImGui.setCursorPosX(buttonX);
|
||||
if (ImGui.button("Settings", buttonWidth, buttonHeight)) {
|
||||
System.exit(0);
|
||||
|
||||
}
|
||||
ImGui.setCursorPosX(buttonX);
|
||||
if (ImGui.button("Quit", buttonWidth, buttonHeight)) {
|
||||
System.exit(0);
|
||||
}
|
||||
ImGui.end();
|
||||
ImGui.popStyleVar(3);
|
||||
ImGui.popStyleColor();
|
||||
}
|
||||
}
|
||||
|
|
@ -50,7 +50,7 @@ public class Scene implements IScene {
|
|||
private Vector2f LastMousePos = new Vector2f(0,0);
|
||||
private final ISceneLightingManager lightingManager;
|
||||
private SkyBox skyBox;
|
||||
private Map<String,AudioInstance> audioInstances;
|
||||
public Map<String,AudioInstance> audioInstances;
|
||||
private DynamicTerrainMesh terrainMesh;
|
||||
public IPlayerController playerController;
|
||||
|
||||
|
|
@ -175,7 +175,6 @@ public class Scene implements IScene {
|
|||
newInstance.Play();
|
||||
audioInstances.put("BGM",newInstance);
|
||||
}
|
||||
|
||||
public Camera GetCamera(){return camera;}
|
||||
public void AddActor(Actor NewActor){
|
||||
if(NewActor == null) return;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue