Finished migration to TypeScript, temporary disabled char creator

This commit is contained in:
hydrant
2019-03-11 22:17:49 +01:00
parent 715cf3c1e6
commit 8ce3fd6f52
71 changed files with 4800 additions and 4627 deletions

View File

@@ -0,0 +1,71 @@
export default class InputHelper {
title: string;
value: string;
created: boolean;
browser: BrowserMp;
constructor(title: string) {
this.title = title;
this.cefTitleCall = this.cefTitleCall.bind(this);
mp.events.add('cef_request_title', this.cefTitleCall);
this.cefCallback = this.cefCallback.bind(this);
mp.events.add('cef_inputhelper_sendvalue', this.cefCallback);
this.finish = this.finish.bind(this);
this.show = this.show.bind(this);
this.valueGetter = this.valueGetter.bind(this);
this.getValue = this.getValue.bind(this);
this.value = undefined;
mp.events.add('render', this.disableControls);
}
disableControls() {
for (var i = 0; i <= 33; i++) {
mp.game.controls.disableAllControlActions(i);
}
}
show() {
if (this.created) return;
this.created = true;
this.browser = mp.browsers.new('package://assets/html/inputhelper/index.html');
}
finish() {
if (this.browser) {
mp.events.remove('cef_inputhelper_sendvalue');
mp.events.remove('cef_request_title');
mp.events.remove('render', this.disableControls);
this.browser.destroy();
this.created = false;
}
}
cefTitleCall() {
this.browser.execute(`setTitle('${this.title}')`);
}
cefCallback(val) {
this.value = val;
this.finish();
}
valueGetter() {
return new Promise(resolve => {
setInterval(() => {
if (this.value !== undefined) resolve(this.value);
}, 50);
});
}
async getValue(callback: Function) {
var getVal = await this.valueGetter();
callback(getVal);
}
}
exports = InputHelper;