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
|
#maven.buildNumber.plugin properties file
|
||||||
#Fri Aug 16 18:09:29 EDT 2024
|
#Fri Aug 16 19:38:51 EDT 2024
|
||||||
buildNumber=257
|
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
|
Netconfig file support
|
||||||
Fix rotation not sending correctly on initialization of creatures on client
|
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
|
Fix F2 menu not regaining controls when Xing menu instead of hitting F2 to close
|
||||||
|
Logger toggle debug window
|
||||||
|
|
||||||
|
|
||||||
# TODO
|
# TODO
|
||||||
|
|||||||
@ -20,12 +20,17 @@ public class Logger {
|
|||||||
|
|
||||||
//the level of this log
|
//the level of this log
|
||||||
LogLevel level;
|
LogLevel level;
|
||||||
|
|
||||||
|
//The name of the logger
|
||||||
|
String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a logger channel
|
* Creates a logger channel
|
||||||
|
* @param name The name of the logger
|
||||||
* @param level The level of message to report on this channel
|
* @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;
|
this.level = level;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +123,39 @@ public class Logger {
|
|||||||
* @param message The message
|
* @param message The message
|
||||||
*/
|
*/
|
||||||
public void PRINT(LogLevel level, String 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;
|
package electrosphere.logger;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import electrosphere.logger.Logger.LogLevel;
|
import electrosphere.logger.Logger.LogLevel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -26,18 +29,41 @@ public class LoggerInterface {
|
|||||||
* Initializes all logic objects
|
* Initializes all logic objects
|
||||||
*/
|
*/
|
||||||
public static void initLoggers(){
|
public static void initLoggers(){
|
||||||
loggerStartup = new Logger(LogLevel.WARNING);
|
loggerStartup = new Logger("Startup", LogLevel.WARNING);
|
||||||
loggerNetworking = new Logger(LogLevel.WARNING);
|
loggerNetworking = new Logger("Networking", LogLevel.WARNING);
|
||||||
loggerFileIO = new Logger(LogLevel.WARNING);
|
loggerFileIO = new Logger("File IO", LogLevel.WARNING);
|
||||||
loggerGameLogic = new Logger(LogLevel.WARNING);
|
loggerGameLogic = new Logger("Game Logic", LogLevel.WARNING);
|
||||||
loggerRenderer = new Logger(LogLevel.WARNING);
|
loggerRenderer = new Logger("Renderer", LogLevel.WARNING);
|
||||||
loggerEngine = new Logger(LogLevel.WARNING);
|
loggerEngine = new Logger("Engine", LogLevel.WARNING);
|
||||||
loggerAuth = new Logger(LogLevel.WARNING);
|
loggerAuth = new Logger("Auth", LogLevel.WARNING);
|
||||||
loggerDB = new Logger(LogLevel.WARNING);
|
loggerDB = new Logger("DB", LogLevel.WARNING);
|
||||||
loggerAudio = new Logger(LogLevel.WARNING);
|
loggerAudio = new Logger("Audio", LogLevel.WARNING);
|
||||||
loggerUI = new Logger(LogLevel.WARNING);
|
loggerUI = new Logger("UI", LogLevel.WARNING);
|
||||||
loggerScripts = new Logger(LogLevel.WARNING);
|
loggerScripts = new Logger("Scripts", LogLevel.WARNING);
|
||||||
loggerAI = new Logger(LogLevel.LOOP_DEBUG);
|
loggerAI = new Logger("AI", LogLevel.WARNING);
|
||||||
loggerStartup.INFO("Initialized loggers");
|
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();
|
ImGuiControls.createControlsWindows();
|
||||||
ImGuiAI.createAIDebugWindow();
|
ImGuiAI.createAIDebugWindow();
|
||||||
ImGuiAudio.createAudioDebugMenu();
|
ImGuiAudio.createAudioDebugMenu();
|
||||||
|
ImGuiLogger.createLoggersWindows();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -156,6 +157,10 @@ public class ImGuiWindowMacros {
|
|||||||
if(ImGui.button("AI State Debug")){
|
if(ImGui.button("AI State Debug")){
|
||||||
ImGuiAI.aiWindow.setOpen(true);
|
ImGuiAI.aiWindow.setOpen(true);
|
||||||
}
|
}
|
||||||
|
//logger state control
|
||||||
|
if(ImGui.button("Loggers")){
|
||||||
|
ImGuiLogger.loggersWindow.setOpen(true);
|
||||||
|
}
|
||||||
//close button
|
//close button
|
||||||
if(ImGui.button("Close")){
|
if(ImGui.button("Close")){
|
||||||
mainDebugWindow.setOpen(false);
|
mainDebugWindow.setOpen(false);
|
||||||
|
|||||||
@ -34,7 +34,7 @@ public class MeleeTargetingNode implements AITreeNode {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AITreeNodeResult evaluate(Entity entity, Blackboard blackboard){
|
public AITreeNodeResult evaluate(Entity entity, Blackboard blackboard){
|
||||||
if(MeleeTargetingNode.hasTarget(blackboard)){
|
if(MeleeTargetingNode.hasTarget(blackboard) && this.targetIsValid(entity)){
|
||||||
return AITreeNodeResult.SUCCESS;
|
return AITreeNodeResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,6 +65,15 @@ public class MeleeTargetingNode implements AITreeNode {
|
|||||||
return null;
|
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
|
* checks if the blackboard contains a melee target
|
||||||
* @param blackboard The blackboard
|
* @param blackboard The blackboard
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user