logger toggle debug window
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
b729208fc3
commit
277b9b6ee3
@ -1,3 +1,3 @@
|
||||
#maven.buildNumber.plugin properties file
|
||||
#Fri Aug 16 18:09:29 EDT 2024
|
||||
buildNumber=257
|
||||
#Fri Aug 16 19:38:51 EDT 2024
|
||||
buildNumber=258
|
||||
|
||||
@ -601,6 +601,7 @@ Fix ui alignment for item panels in inventory menus (ie dont have to place in co
|
||||
Netconfig file support
|
||||
Fix rotation not sending correctly on initialization of creatures on client
|
||||
Fix F2 menu not regaining controls when Xing menu instead of hitting F2 to close
|
||||
Logger toggle debug window
|
||||
|
||||
|
||||
# TODO
|
||||
|
||||
@ -21,11 +21,16 @@ public class Logger {
|
||||
//the level of this log
|
||||
LogLevel level;
|
||||
|
||||
//The name of the logger
|
||||
String name;
|
||||
|
||||
/**
|
||||
* Creates a logger channel
|
||||
* @param name The name of the logger
|
||||
* @param level The level of message to report on this channel
|
||||
*/
|
||||
public Logger(LogLevel level){
|
||||
public Logger(String name, LogLevel level){
|
||||
this.name = name;
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
@ -118,7 +123,39 @@ public class Logger {
|
||||
* @param message The message
|
||||
*/
|
||||
public void PRINT(LogLevel level, String message){
|
||||
switch(level){
|
||||
case ERROR:{
|
||||
this.ERROR(new Exception(message));
|
||||
} break;
|
||||
case WARNING:{
|
||||
this.WARNING(message);
|
||||
} break;
|
||||
case INFO:{
|
||||
this.INFO(message);
|
||||
} break;
|
||||
case DEBUG:{
|
||||
this.DEBUG(message);
|
||||
} break;
|
||||
case LOOP_DEBUG:{
|
||||
this.DEBUG_LOOP(message);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the level of the logger
|
||||
* @return The level
|
||||
*/
|
||||
public LogLevel getLevel(){
|
||||
return this.level;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of the logger
|
||||
* @return the name
|
||||
*/
|
||||
public String getName(){
|
||||
return this.name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
package electrosphere.logger;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import electrosphere.logger.Logger.LogLevel;
|
||||
|
||||
/**
|
||||
@ -26,18 +29,41 @@ public class LoggerInterface {
|
||||
* Initializes all logic objects
|
||||
*/
|
||||
public static void initLoggers(){
|
||||
loggerStartup = new Logger(LogLevel.WARNING);
|
||||
loggerNetworking = new Logger(LogLevel.WARNING);
|
||||
loggerFileIO = new Logger(LogLevel.WARNING);
|
||||
loggerGameLogic = new Logger(LogLevel.WARNING);
|
||||
loggerRenderer = new Logger(LogLevel.WARNING);
|
||||
loggerEngine = new Logger(LogLevel.WARNING);
|
||||
loggerAuth = new Logger(LogLevel.WARNING);
|
||||
loggerDB = new Logger(LogLevel.WARNING);
|
||||
loggerAudio = new Logger(LogLevel.WARNING);
|
||||
loggerUI = new Logger(LogLevel.WARNING);
|
||||
loggerScripts = new Logger(LogLevel.WARNING);
|
||||
loggerAI = new Logger(LogLevel.LOOP_DEBUG);
|
||||
loggerStartup = new Logger("Startup", LogLevel.WARNING);
|
||||
loggerNetworking = new Logger("Networking", LogLevel.WARNING);
|
||||
loggerFileIO = new Logger("File IO", LogLevel.WARNING);
|
||||
loggerGameLogic = new Logger("Game Logic", LogLevel.WARNING);
|
||||
loggerRenderer = new Logger("Renderer", LogLevel.WARNING);
|
||||
loggerEngine = new Logger("Engine", LogLevel.WARNING);
|
||||
loggerAuth = new Logger("Auth", LogLevel.WARNING);
|
||||
loggerDB = new Logger("DB", LogLevel.WARNING);
|
||||
loggerAudio = new Logger("Audio", LogLevel.WARNING);
|
||||
loggerUI = new Logger("UI", LogLevel.WARNING);
|
||||
loggerScripts = new Logger("Scripts", LogLevel.WARNING);
|
||||
loggerAI = new Logger("AI", LogLevel.WARNING);
|
||||
loggerStartup.INFO("Initialized loggers");
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the list of all loggers
|
||||
* @return The list of all loggers
|
||||
*/
|
||||
public static List<Logger> getLoggers(){
|
||||
Logger[] loggerList = new Logger[]{
|
||||
loggerAI,
|
||||
loggerAudio,
|
||||
loggerAuth,
|
||||
loggerNetworking,
|
||||
loggerFileIO,
|
||||
loggerGameLogic,
|
||||
loggerRenderer,
|
||||
loggerEngine,
|
||||
loggerStartup,
|
||||
loggerDB,
|
||||
loggerUI,
|
||||
loggerScripts,
|
||||
};
|
||||
return Arrays.asList(loggerList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
111
src/main/java/electrosphere/menu/debug/ImGuiLogger.java
Normal file
111
src/main/java/electrosphere/menu/debug/ImGuiLogger.java
Normal file
@ -0,0 +1,111 @@
|
||||
package electrosphere.menu.debug;
|
||||
|
||||
import electrosphere.engine.Globals;
|
||||
import electrosphere.logger.Logger;
|
||||
import electrosphere.logger.LoggerInterface;
|
||||
import electrosphere.logger.Logger.LogLevel;
|
||||
import electrosphere.renderer.ui.imgui.ImGuiWindow;
|
||||
import electrosphere.renderer.ui.imgui.ImGuiWindow.ImGuiWindowCallback;
|
||||
import imgui.ImGui;
|
||||
|
||||
/**
|
||||
* Windows for dealing with loggers
|
||||
*/
|
||||
public class ImGuiLogger {
|
||||
|
||||
//window for viewing information about loggers
|
||||
protected static ImGuiWindow loggersWindow;
|
||||
|
||||
|
||||
/**
|
||||
* Creates the windows in this file
|
||||
*/
|
||||
protected static void createLoggersWindows(){
|
||||
createLoggersWindow();
|
||||
}
|
||||
|
||||
/**
|
||||
* loggers view
|
||||
*/
|
||||
protected static void createLoggersWindow(){
|
||||
loggersWindow = new ImGuiWindow("Loggers");
|
||||
loggersWindow.setCallback(new ImGuiWindowCallback() {
|
||||
@Override
|
||||
public void exec() {
|
||||
//ui framework text
|
||||
ImGui.text("Loggers");
|
||||
|
||||
|
||||
ImGui.beginTable("Loggers", 6);
|
||||
for(Logger logger : LoggerInterface.getLoggers()){
|
||||
ImGui.tableNextRow();
|
||||
|
||||
ImGui.tableNextColumn();
|
||||
ImGui.text(logger.getName() + ": ");
|
||||
|
||||
ImGui.tableNextColumn();
|
||||
if(logger.getLevel() == LogLevel.ERROR){
|
||||
ImGui.text("Error");
|
||||
} else {
|
||||
ImGui.pushID(logger.getName() + "error");
|
||||
if(ImGui.button("Error")){
|
||||
logger.setLevel(LogLevel.ERROR);
|
||||
}
|
||||
ImGui.popID();
|
||||
}
|
||||
|
||||
ImGui.tableNextColumn();
|
||||
if(logger.getLevel() == LogLevel.WARNING){
|
||||
ImGui.text("Warning");
|
||||
} else {
|
||||
ImGui.pushID(logger.getName() + "warning");
|
||||
if(ImGui.button("Warning")){
|
||||
logger.setLevel(LogLevel.WARNING);
|
||||
}
|
||||
ImGui.popID();
|
||||
}
|
||||
|
||||
ImGui.tableNextColumn();
|
||||
if(logger.getLevel() == LogLevel.INFO){
|
||||
ImGui.text("Info");
|
||||
} else {
|
||||
ImGui.pushID(logger.getName() + "info");
|
||||
if(ImGui.button("Info")){
|
||||
logger.setLevel(LogLevel.INFO);
|
||||
}
|
||||
ImGui.popID();
|
||||
}
|
||||
|
||||
ImGui.tableNextColumn();
|
||||
if(logger.getLevel() == LogLevel.DEBUG){
|
||||
ImGui.text("Debug");
|
||||
} else {
|
||||
ImGui.pushID(logger.getName() + "debug");
|
||||
if(ImGui.button("Debug")){
|
||||
logger.setLevel(LogLevel.DEBUG);
|
||||
}
|
||||
ImGui.popID();
|
||||
}
|
||||
|
||||
ImGui.tableNextColumn();
|
||||
if(logger.getLevel() == LogLevel.LOOP_DEBUG){
|
||||
ImGui.text("Debug_Loop");
|
||||
} else {
|
||||
ImGui.pushID(logger.getName() + "debug_loop");
|
||||
if(ImGui.button("Debug_Loop")){
|
||||
logger.setLevel(LogLevel.LOOP_DEBUG);
|
||||
}
|
||||
ImGui.popID();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ImGui.endTable();
|
||||
|
||||
}
|
||||
});
|
||||
loggersWindow.setOpen(false);
|
||||
Globals.renderingEngine.getImGuiPipeline().addImGuiWindow(loggersWindow);
|
||||
}
|
||||
|
||||
}
|
||||
@ -46,6 +46,7 @@ public class ImGuiWindowMacros {
|
||||
ImGuiControls.createControlsWindows();
|
||||
ImGuiAI.createAIDebugWindow();
|
||||
ImGuiAudio.createAudioDebugMenu();
|
||||
ImGuiLogger.createLoggersWindows();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -156,6 +157,10 @@ public class ImGuiWindowMacros {
|
||||
if(ImGui.button("AI State Debug")){
|
||||
ImGuiAI.aiWindow.setOpen(true);
|
||||
}
|
||||
//logger state control
|
||||
if(ImGui.button("Loggers")){
|
||||
ImGuiLogger.loggersWindow.setOpen(true);
|
||||
}
|
||||
//close button
|
||||
if(ImGui.button("Close")){
|
||||
mainDebugWindow.setOpen(false);
|
||||
|
||||
@ -34,7 +34,7 @@ public class MeleeTargetingNode implements AITreeNode {
|
||||
|
||||
@Override
|
||||
public AITreeNodeResult evaluate(Entity entity, Blackboard blackboard){
|
||||
if(MeleeTargetingNode.hasTarget(blackboard)){
|
||||
if(MeleeTargetingNode.hasTarget(blackboard) && this.targetIsValid(entity)){
|
||||
return AITreeNodeResult.SUCCESS;
|
||||
}
|
||||
|
||||
@ -65,6 +65,15 @@ public class MeleeTargetingNode implements AITreeNode {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes sure the target is valid
|
||||
* @param entity The target entity
|
||||
* @return true if valid, false otherwise
|
||||
*/
|
||||
private boolean targetIsValid(Entity entity){
|
||||
return Globals.realmManager.getEntityRealm(entity) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
* checks if the blackboard contains a melee target
|
||||
* @param blackboard The blackboard
|
||||
|
||||
Loading…
Reference in New Issue
Block a user