Skip to content

Commit 74ca112

Browse files
authored
feat: emit client events FRAMES_LOADED and SET_GLUE_SCREEN (#59)
1 parent 0e22325 commit 74ca112

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

src/gfx/Screen.ts

-3
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@ class Screen {
1919

2020
this.render = this.render.bind(this);
2121

22-
// TODO: Continuously render screen, not on click
23-
document.addEventListener('click', this.render);
24-
2522
// Required for now to ensure the rendering program is loaded when needed
2623
this.debugLines();
2724
}

src/index.ts

+18-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import Client from './Client';
2+
import EventType from './ui/scripting/EventType';
23
import { ModelFFX } from './ui/components';
34
import * as glueScriptFunctions from './ui/scripting/globals/glue';
45

@@ -19,11 +20,25 @@ client.ui.factories.register('ModelFFX', ModelFFX);
1920
// await client.ui.load('Interface\\GlueXML\\GlueXML.toc');
2021
// await client.ui.load('Interface\\FrameXML\\FrameXML.toc');
2122

22-
console.timeLog('Client load time', client);
23+
console.timeLog('Client load time');
2324

2425
// TODO: Should be handled by GlueMgr
25-
// client.ui.scripting.execute('SetGlueScreen("login")');
26+
client.ui.scripting.signalEvent(EventType.FRAMES_LOADED);
27+
client.ui.scripting.signalEvent(EventType.SET_GLUE_SCREEN, '%s', 'login');
28+
29+
let last = new Date();
30+
const updateAndRender = () => {
31+
const now = new Date();
32+
const diff = +now - +last;
33+
34+
client.ui.root.onLayerUpdate(diff);
35+
client.screen.render();
36+
37+
last = now;
38+
};
2639

2740
// Postpone rendering to allow resources to load (for now)
28-
setTimeout(client.screen.render, 1000);
41+
setTimeout(updateAndRender, 1000);
42+
43+
document.addEventListener('click', updateAndRender);
2944
})();

0 commit comments

Comments
 (0)