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