This commit is contained in:
Adrien MALINGREY 2023-07-17 19:18:53 +02:00
parent 3a657e4c38
commit dd25b0a891

View File

@ -1,81 +1,81 @@
let jsKeyRenamer = new Proxy({ let jsKeyRenamer = new Proxy({
["←"] : "ArrowLeft", ["←"]: "ArrowLeft",
["→"] : "ArrowRight", ["→"]: "ArrowRight",
["↑"] : "ArrowUp", ["↑"]: "ArrowUp",
["↓"] : "ArrowDown", ["↓"]: "ArrowDown",
["Espace"] : " ", ["Espace"]: " ",
["Échap."] : "Escape", ["Échap."]: "Escape",
["Ret. arrière"]: "Backspace", ["Ret. arrière"]: "Backspace",
["Entrée"] : "Enter", ["Entrée"]: "Enter",
}, { }, {
get(obj, keyName) { get(obj, keyName) {
return keyName in obj? obj[keyName] : keyName return keyName in obj ? obj[keyName] : keyName
} }
}) })
let friendyKeyRenamer = new Proxy({ let friendyKeyRenamer = new Proxy({
["ArrowLeft"] : "←", ["ArrowLeft"]: "←",
["ArrowRight"] : "→", ["ArrowRight"]: "→",
["ArrowUp"] : "↑", ["ArrowUp"]: "↑",
["ArrowDown"] : "↓", ["ArrowDown"]: "↓",
[" "] : "Espace", [" "]: "Espace",
["Escape"] : "Échap.", ["Escape"]: "Échap.",
["Backspace"] : "Ret. arrière", ["Backspace"]: "Ret. arrière",
["Enter"] : "Entrée", ["Enter"]: "Entrée",
}, { }, {
get(obj, keyName) { get(obj, keyName) {
return keyName in obj? obj[keyName] : keyName return keyName in obj ? obj[keyName] : keyName
} }
}) })
class Settings { class Settings {
constructor() { constructor() {
this.startLevel = 1 this.startLevel = 1
let keyMaps = { let keyMaps = {
key: {}, key: {},
action: {} action: {}
} }
this.key = new Proxy(keyMaps, { this.key = new Proxy(keyMaps, {
set(km, action, key) { set(km, action, key) {
km.action[key] = action km.action[key] = action
return km.key[action] = jsKeyRenamer[key] return km.key[action] = jsKeyRenamer[key]
}, },
has(km, action) { has(km, action) {
return action in km.key return action in km.key
}, },
get(km, action) { get(km, action) {
return friendyKeyRenamer[km.key[action]] return friendyKeyRenamer[km.key[action]]
}
})
this.action = new Proxy(keyMaps, {
set(km, key, action) {
km.key[action] = key
return km.action[key] = action
},
has(km, key) {
return key in km.action
},
get(km, key) {
return km.action[key]
}
})
this.key.moveLeft = "ArrowLeft"
this.key.moveRight = "ArrowRight"
this.key.rotateCCW = "w"
this.key.rotateCW = "ArrowUp"
this.key.softDrop = "ArrowDown"
this.key.hardDrop = " "
this.key.hold = "c"
this.key.pause = "Escape"
this.arrDelay = 50
this.dasDelay = 300
this.musicVolume = 50
this.sfxVolume = 50
} }
})
this.action = new Proxy(keyMaps, {
set(km, key, action) {
km.key[action] = key
return km.action[key] = action
},
has(km, key) {
return key in km.action
},
get(km, key) {
return km.action[key]
}
})
this.key.moveLeft = "ArrowLeft"
this.key.moveRight = "ArrowRight"
this.key.rotateCCW = "w"
this.key.rotateCW = "ArrowUp"
this.key.softDrop = "ArrowDown"
this.key.hardDrop = " "
this.key.hold = "c"
this.key.pause = "Escape"
this.arrDelay = 50
this.dasDelay = 300
this.musicVolume = 50
this.sfxVolume = 50
}
} }