diff --git a/assets/Data/menu/room/roomToolConfig.html b/assets/Data/menu/room/roomToolConfig.html
index 9945be1f..422ce626 100644
--- a/assets/Data/menu/room/roomToolConfig.html
+++ b/assets/Data/menu/room/roomToolConfig.html
@@ -16,5 +16,5 @@ mainPanel {
-
+
\ No newline at end of file
diff --git a/assets/Scripts/client/clienthooks.ts b/assets/Scripts/client/clienthooks.ts
index 5c5e6a7c..24b618a5 100644
--- a/assets/Scripts/client/clienthooks.ts
+++ b/assets/Scripts/client/clienthooks.ts
@@ -69,15 +69,17 @@ export const clientHooks: Hook[] = [
{
signal: "ROOM_TOOL_TOGGLE",
callback: (engine: Engine) => {
- engine.singletons.loggerScripts.WARNING('asdf')
- engine.singletons.loggerScripts.WARNING(JSON.stringify(globalThis))
+ // engine.singletons.loggerScripts.WARNING('asdf')
+ // engine.singletons.loggerScripts.WARNING(JSON.stringify(globalThis))
}
},
{
signal: "ROOM_TOOL_MENU",
callback: (engine: Engine) => {
- engine.singletons.loggerScripts.WARNING('asdf')
- engine.singletons.loggerScripts.WARNING(JSON.stringify(globalThis))
+ console.log(JSON.stringify({}))
+ console.log(Object.keys(globalThis))
+ // engine.singletons.loggerScripts.WARNING('asdf')
+ // engine.singletons.loggerScripts.WARNING(JSON.stringify(globalThis))
engine.classes.menuUtils.static.openDialog('Data/menu/room/roomToolConfig.html')
}
},
diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md
index fe2530c5..f2bc149c 100644
--- a/docs/src/progress/renderertodo.md
+++ b/docs/src/progress/renderertodo.md
@@ -1844,6 +1844,7 @@ Out-of-context typescript compilation that falls back to in-context compilation
Fix opengl bug
Fix typescript out-of-context compilation caching
Script recompilation work
+HTML-defined buttons now directly eval in the js context instead of going through hook manager
diff --git a/src/main/java/electrosphere/client/script/ClientScriptUtils.java b/src/main/java/electrosphere/client/script/ClientScriptUtils.java
index 83885ef3..ac66bc8e 100644
--- a/src/main/java/electrosphere/client/script/ClientScriptUtils.java
+++ b/src/main/java/electrosphere/client/script/ClientScriptUtils.java
@@ -20,5 +20,17 @@ public class ClientScriptUtils {
}
});
}
+
+ /**
+ * Evaluates a string
+ * @param evalCode The string to evaluate
+ */
+ public static void eval(String evalCode){
+ Globals.engineState.scriptEngine.getScriptContext().executeSynchronously(() -> {
+ if(Globals.engineState.scriptEngine != null && Globals.engineState.scriptEngine.isInitialized()){
+ Globals.engineState.scriptEngine.getScriptContext().eval(evalCode);
+ }
+ });
+ }
}
diff --git a/src/main/java/electrosphere/client/ui/parsing/HtmlParser.java b/src/main/java/electrosphere/client/ui/parsing/HtmlParser.java
index 1513cb2a..37bbe57b 100644
--- a/src/main/java/electrosphere/client/ui/parsing/HtmlParser.java
+++ b/src/main/java/electrosphere/client/ui/parsing/HtmlParser.java
@@ -80,7 +80,7 @@ public class HtmlParser {
callback = () -> {};
} else {
callback = () -> {
- ClientScriptUtils.fireSignal("uiButton", onClick);
+ ClientScriptUtils.eval(onClick);
};
}
rVal = Button.createEmptyButton(callback);
diff --git a/src/main/java/electrosphere/script/ScriptContext.java b/src/main/java/electrosphere/script/ScriptContext.java
index 2e603552..2e66b57b 100644
--- a/src/main/java/electrosphere/script/ScriptContext.java
+++ b/src/main/java/electrosphere/script/ScriptContext.java
@@ -517,4 +517,13 @@ public class ScriptContext {
fireSignal.execute(sceneInstanceId,signal,args);
}
+ /**
+ * Evaluates a string
+ * @param evalString The string
+ */
+ public void eval(String evalString){
+ Source source = Source.create("js",evalString);
+ context.eval(source);
+ }
+
}