1
0
mirror of https://github.com/tobspr/shapez.io.git synced 2026-03-02 03:39:21 +00:00

Add customizable keybindings & watermark

This commit is contained in:
tobspr
2020-05-19 09:14:40 +02:00
parent 2968fe3788
commit 3714a59fca
30 changed files with 581 additions and 129 deletions

View File

@@ -130,6 +130,11 @@ class SettingsStorage {
this.musicMuted = false;
this.theme = "light";
this.refreshRate = "60";
/**
* @type {Object.<string, number>}
*/
this.keybindingOverrides = {};
}
}
@@ -201,6 +206,10 @@ export class ApplicationSettings extends ReadWriteProxy {
return this.getAllSettings().fullscreen;
}
getKeybindingOverrides() {
return this.getAllSettings().keybindingOverrides;
}
// Setters
/**
@@ -224,6 +233,33 @@ export class ApplicationSettings extends ReadWriteProxy {
assertAlways(false, "Unknown setting: " + key);
}
/**
* Sets a new keybinding override
* @param {string} keybindingId
* @param {number} keyCode
*/
updateKeybindingOverride(keybindingId, keyCode) {
assert(Number.isInteger(keyCode), "Not a valid key code: " + keyCode);
this.getAllSettings().keybindingOverrides[keybindingId] = keyCode;
return this.writeAsync();
}
/**
* Resets a given keybinding override
* @param {string} id
*/
resetKeybindingOverride(id) {
delete this.getAllSettings().keybindingOverrides[id];
return this.writeAsync();
}
/**
* Resets all keybinding overrides
*/
resetKeybindingOverrides() {
this.getAllSettings().keybindingOverrides = {};
return this.writeAsync();
}
// RW Proxy impl
verify(data) {
if (!data.settings) {
@@ -252,7 +288,7 @@ export class ApplicationSettings extends ReadWriteProxy {
}
getCurrentVersion() {
return 4;
return 5;
}
migrate(data) {