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) {