1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-18 17:19:50 +00:00
Pixelorama/addons/keychain/ShortcutProfile.gd
Emmanouil Papadeas 9135caabbe Update Keychain
2022-05-29 12:51:56 +03:00

39 lines
941 B
GDScript

class_name ShortcutProfile
extends Resource
export(String) var name := ""
export(bool) var customizable := true
export(Dictionary) var bindings := {}
func _init() -> void:
bindings = bindings.duplicate(true)
func fill_bindings() -> void:
var unnecessary_actions = bindings.duplicate() # Checks if the profile has any unused actions
for action in InputMap.get_actions():
if not action in bindings:
bindings[action] = InputMap.get_action_list(action)
unnecessary_actions.erase(action)
for action in unnecessary_actions:
bindings.erase(action)
save()
func change_action(action: String) -> void:
if not customizable:
return
bindings[action] = InputMap.get_action_list(action)
save()
func save() -> bool:
if !customizable:
return false
var err := ResourceSaver.save(resource_path, self)
if err != OK:
print("Error saving shortcut profile %s. Error code: %s" % [resource_path, err])
return false
return true