diff --git a/assets/Data/menu/room/roomToolConfig.html b/assets/Data/menu/room/roomToolConfig.html
index 422ce626..baf0640f 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 24b618a5..51c7ae07 100644
--- a/assets/Scripts/client/clienthooks.ts
+++ b/assets/Scripts/client/clienthooks.ts
@@ -66,20 +66,9 @@ export const clientHooks: Hook[] = [
engine.classes.areaUtils.static.selectAreaRectangular()
}
},
- {
- signal: "ROOM_TOOL_TOGGLE",
- callback: (engine: Engine) => {
- // engine.singletons.loggerScripts.WARNING('asdf')
- // engine.singletons.loggerScripts.WARNING(JSON.stringify(globalThis))
- }
- },
{
signal: "ROOM_TOOL_MENU",
callback: (engine: Engine) => {
- 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/assets/Scripts/client/player/player.ts b/assets/Scripts/client/player/player.ts
index 9c2cfc93..28382f3d 100644
--- a/assets/Scripts/client/player/player.ts
+++ b/assets/Scripts/client/player/player.ts
@@ -3,21 +3,30 @@
/**
* Overall state of the player's controls
*/
-export interface PlayerControlState {
+export class PlayerControlState {
/**
* State of the room tool
*/
- roomTool: RoomToolState,
+ roomTool: RoomToolState = new RoomToolState()
+
}
/**
* State for the room tool
*/
-export interface RoomToolState {
+export class RoomToolState {
/**
* The currently selected functionality of the room tool
*/
- currentState: number,
+ currentState: number = 0
+
+ /**
+ * Updates the state of the room tool
+ * @param value The new value
+ */
+ updateState(value: string){
+ console.log(value)
+ }
}
/**
@@ -34,9 +43,5 @@ export interface ClientPlayer {
* Actual player control state
*/
export const defaultPlayerState: ClientPlayer = {
- controlState: {
- roomTool: {
- currentState: 0
- }
- }
+ controlState: new PlayerControlState()
}
\ No newline at end of file
diff --git a/assets/Scripts/client/player/playercontrols.ts b/assets/Scripts/client/player/playercontrols.ts
deleted file mode 100644
index 854a7f36..00000000
--- a/assets/Scripts/client/player/playercontrols.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-/**
- * Overall state of the player's controls
- */
-interface PlayerControlState {
- /**
- * State of the room tool
- */
- roomTool: RoomToolState,
-}
-
-/**
- * State for the room tool
- */
-interface RoomToolState {
- /**
- * The currently selected functionality of the room tool
- */
- currentState: number,
-}
-
-/**
- * Actual player control state
- */
-export let playerControlState: PlayerControlState = {
- roomTool: {
- currentState: 0
- }
-}
\ No newline at end of file
diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md
index f2bc149c..c097290d 100644
--- a/docs/src/progress/renderertodo.md
+++ b/docs/src/progress/renderertodo.md
@@ -1845,6 +1845,8 @@ 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
+Fix caching with deleted source files
+Proof of concept of ui button calling engine code
diff --git a/src/main/java/electrosphere/script/ScriptContext.java b/src/main/java/electrosphere/script/ScriptContext.java
index 2e66b57b..3dbd98e5 100644
--- a/src/main/java/electrosphere/script/ScriptContext.java
+++ b/src/main/java/electrosphere/script/ScriptContext.java
@@ -339,6 +339,11 @@ public class ScriptContext {
long lastModified = 0;
try {
File correspondingSourceFile = new File(pathRaw.replace(".cache\\tscache\\src\\", "./assets/").replace(".js",".ts"));
+ if(!correspondingSourceFile.exists()){
+ checksumMap.getFileLastModifyMap().remove(cacheKey);
+ //skip non-existant file
+ return;
+ }
FileTime time = Files.getLastModifiedTime(correspondingSourceFile.toPath());
lastModified = time.toMillis();
} catch (IOException e) {
diff --git a/src/main/java/electrosphere/script/ScriptEngine.java b/src/main/java/electrosphere/script/ScriptEngine.java
index a7f90f87..018b53f8 100644
--- a/src/main/java/electrosphere/script/ScriptEngine.java
+++ b/src/main/java/electrosphere/script/ScriptEngine.java
@@ -323,6 +323,9 @@ public class ScriptEngine extends SignalServiceImpl {
timeMatch = fileLastModifyMap.get(normalizedPath).contains(lastModified + "");
}
LoggerInterface.loggerScripts.DEBUG("Skipping Preload: " + normalizedPath + " " + inMap + " " + timeMatch + " " + correspondingSourceFile.exists() + " " + lastModified + " " + correspondingSourceFile.toString());
+ if(!inMap){
+ continue;
+ }
rVal = false;
}
} catch (IOException e) {