export controls
This commit is contained in:
82
jsm/Settings.js
Normal file
82
jsm/Settings.js
Normal file
@ -0,0 +1,82 @@
|
||||
let jsKeyRenamer = new Proxy({
|
||||
["←"] : "ArrowLeft",
|
||||
["→"] : "ArrowRight",
|
||||
["↑"] : "ArrowUp",
|
||||
["↓"] : "ArrowDown",
|
||||
["Espace"] : " ",
|
||||
["Échap."] : "Escape",
|
||||
["Ret. arrière"]: "Backspace",
|
||||
["Entrée"] : "Enter",
|
||||
}, {
|
||||
get(obj, keyName) {
|
||||
return keyName in obj? obj[keyName] : keyName
|
||||
}
|
||||
})
|
||||
let friendyKeyRenamer = new Proxy({
|
||||
["ArrowLeft"] : "←",
|
||||
["ArrowRight"] : "→",
|
||||
["ArrowUp"] : "↑",
|
||||
["ArrowDown"] : "↓",
|
||||
[" "] : "Espace",
|
||||
["Escape"] : "Échap.",
|
||||
["Backspace"] : "Ret. arrière",
|
||||
["Enter"] : "Entrée",
|
||||
}, {
|
||||
get(obj, keyName) {
|
||||
return keyName in obj? obj[keyName] : keyName
|
||||
}
|
||||
})
|
||||
|
||||
class Settings {
|
||||
constructor() {
|
||||
this.startLevel = 1
|
||||
|
||||
let keyMaps = {
|
||||
key: {},
|
||||
action: {}
|
||||
}
|
||||
|
||||
this.key = new Proxy(keyMaps, {
|
||||
set(km, action, key) {
|
||||
km.action[key] = action
|
||||
return km.key[action] = jsKeyRenamer[key]
|
||||
},
|
||||
has(km, action) {
|
||||
return action in km.key
|
||||
},
|
||||
get(km, 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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export { Settings }
|
Reference in New Issue
Block a user