Implement keybindings.
8
game/InputMapEditor.tscn
Normal file
@ -0,0 +1,8 @@
|
||||
[gd_scene format=2]
|
||||
|
||||
[node name="InputMapEditor" type="InputMapEditor"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
__meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
@ -345,6 +345,266 @@ move_right={
|
||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":68,"unicode":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
actionbar_2_0={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_3={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_4={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_5={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_6={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_7={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_8={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_9={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_10={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_11={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_2_12={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_0={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_3={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_4={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_5={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_6={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_7={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_8={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_9={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_10={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_11={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_3_12={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_0={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_3={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_4={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_5={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_6={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_7={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_8={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_9={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_10={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_11={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_4_12={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_0={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_3={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_4={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_5={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_6={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_7={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_8={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_9={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_10={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_11={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_5_12={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_0={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_1={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_2={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_3={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_4={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_5={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_6={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_7={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_8={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_9={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_10={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_11={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
actionbar_6_12={
|
||||
"deadzone": 0.5,
|
||||
"events": [ ]
|
||||
}
|
||||
|
||||
[layer_names]
|
||||
|
||||
|
@ -54,6 +54,8 @@ func _ready() -> void:
|
||||
|
||||
button.connect("pressed", self, "_on_button_pressed")
|
||||
|
||||
ProfileManager.connect("keybinds_changed", self, "on_keybinds_changed")
|
||||
|
||||
func _exit_tree():
|
||||
if icon_rect.texture != null:
|
||||
ThemeAtlas.unref_texture(icon_rect.texture)
|
||||
@ -116,8 +118,28 @@ func set_button_entry(action_bar_button_entry: ActionBarButtonEntry, p_player: E
|
||||
if not InputMap.has_action(action_name):
|
||||
InputMap.add_action(action_name)
|
||||
|
||||
on_keybinds_changed()
|
||||
|
||||
iea.action = action_name
|
||||
iea.pressed = true
|
||||
var sc : ShortCut = ShortCut.new()
|
||||
sc.shortcut = iea
|
||||
shortcut = sc
|
||||
|
||||
setup_icon()
|
||||
|
||||
func on_keybinds_changed():
|
||||
var action_name : String = "actionbar_" + str(button_entry.action_bar_id) + "_" + str(button_entry.slot_id)
|
||||
|
||||
keybind_text.text = ""
|
||||
|
||||
if not InputMap.has_action(action_name):
|
||||
return
|
||||
|
||||
var action_list : Array = InputMap.get_action_list(action_name)
|
||||
|
||||
keybind_text.text = ""
|
||||
|
||||
for action in action_list:
|
||||
if action is InputEventKey:
|
||||
var s : String = ""
|
||||
@ -141,14 +163,6 @@ func set_button_entry(action_bar_button_entry: ActionBarButtonEntry, p_player: E
|
||||
|
||||
keybind_text.text = s
|
||||
|
||||
iea.action = action_name
|
||||
iea.pressed = true
|
||||
var sc : ShortCut = ShortCut.new()
|
||||
sc.shortcut = iea
|
||||
shortcut = sc
|
||||
|
||||
setup_icon()
|
||||
|
||||
func setup_icon() -> void:
|
||||
if (button_entry.type == ActionBarButtonEntry.ACTION_BAR_BUTTON_ENTRY_TYPE_NONE):
|
||||
if icon_rect.texture != null:
|
||||
|
1
game/ui/icons/icon_add.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m7 1v6h-6v2h6v6h2v-6h6v-2h-6v-6z" fill="#e0e0e0"/></svg>
|
After Width: | Height: | Size: 149 B |
34
game/ui/icons/icon_add.svg.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon_add.svg-8d234c23ab44bacb67bdfe3f0ee81a47.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/icons/icon_add.svg"
|
||||
dest_files=[ "res://.import/icon_add.svg-8d234c23ab44bacb67bdfe3f0ee81a47.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
1
game/ui/icons/icon_edit.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m7 1c-.554 0-1 .446-1 1v2h4v-2c0-.554-.446-1-1-1zm-1 4v7l2 3 2-3v-7zm1 1h1v5h-1z" fill="#e0e0e0"/></svg>
|
After Width: | Height: | Size: 197 B |
34
game/ui/icons/icon_edit.svg.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon_edit.svg-1aba0748a13b323d6887f1edfd72e194.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/icons/icon_edit.svg"
|
||||
dest_files=[ "res://.import/icon_edit.svg-1aba0748a13b323d6887f1edfd72e194.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
1
game/ui/icons/icon_joy_axis.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g transform="translate(0 -1036.4)"><path d="m27 1038.4h7v14h-7z" fill="#fff" fill-opacity=".99608"/><g fill="#e0e0e0"><path d="m3 1a2 2 0 0 0 -2 2v10a2 2 0 0 0 2 2h12v-14zm4 2h2a1 1 0 0 1 1 1v2h2a1 1 0 0 1 1 1v2a1 1 0 0 1 -1 1h-2v2a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1-1v-2h-2a1 1 0 0 1 -1-1v-2a1 1 0 0 1 1-1h2v-2a1 1 0 0 1 1-1z" fill-opacity=".99608" transform="translate(0 1036.4)"/><circle cx="8" cy="1044.4" r="1"/></g></g></svg>
|
After Width: | Height: | Size: 512 B |
34
game/ui/icons/icon_joy_axis.svg.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon_joy_axis.svg-df8e548a1140e7ce99b04939b395b138.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/icons/icon_joy_axis.svg"
|
||||
dest_files=[ "res://.import/icon_joy_axis.svg-df8e548a1140e7ce99b04939b395b138.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
1
game/ui/icons/icon_joy_button.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill-opacity=".99608" transform="translate(0 -1036.4)"><path d="m27 1038.4h7v14h-7z" fill="#fff"/><path d="m1 1v14h12c1.1046 0 2-.8954 2-2v-10c0-1.1046-.89543-2-2-2zm7 1a2 2 0 0 1 2 2 2 2 0 0 1 -2 2 2 2 0 0 1 -2-2 2 2 0 0 1 2-2zm-4 4a2 2 0 0 1 2 2 2 2 0 0 1 -2 2 2 2 0 0 1 -2-2 2 2 0 0 1 2-2zm8 0a2 2 0 0 1 2 2 2 2 0 0 1 -2 2 2 2 0 0 1 -2-2 2 2 0 0 1 2-2zm-4 4a2 2 0 0 1 2 2 2 2 0 0 1 -2 2 2 2 0 0 1 -2-2 2 2 0 0 1 2-2z" fill="#e0e0e0" transform="translate(0 1036.4)"/></g></svg>
|
After Width: | Height: | Size: 566 B |
34
game/ui/icons/icon_joy_button.svg.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon_joy_button.svg-90efe2841da127b700c9fe4f1211a539.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/icons/icon_joy_button.svg"
|
||||
dest_files=[ "res://.import/icon_joy_button.svg-90efe2841da127b700c9fe4f1211a539.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
1
game/ui/icons/icon_keyboard.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><g fill-opacity=".99608" transform="translate(0 -1036.4)"><path d="m4 2a1 1 0 0 0 -1 1v9.084a1 .91667 0 0 0 1 .91602h8a1 .91667 0 0 0 1-.91602v-9.084a1 1 0 0 0 -1-1zm-3 2v9a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-9h-1v9a.99998.99998 0 0 1 -1 1h-10a1 1 0 0 1 -1-1v-9zm4 0h2v3l2-3h2l-2 3 2 4h-2l-2-4v4h-2z" fill="#e0e0e0" transform="translate(0 1036.4)"/><path d="m27 1038.4h7v14h-7z" fill="#fff"/></g></svg>
|
After Width: | Height: | Size: 482 B |
34
game/ui/icons/icon_keyboard.svg.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon_keyboard.svg-48afc1010696d26403af4139c2b28ebf.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/icons/icon_keyboard.svg"
|
||||
dest_files=[ "res://.import/icon_keyboard.svg-48afc1010696d26403af4139c2b28ebf.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
1
game/ui/icons/icon_mouse.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m7 1.1016a5 5 0 0 0 -4 4.8984h4zm2 .0039063v4.8945h4a5 5 0 0 0 -4-4.8945zm-6 6.8945v2a5 5 0 0 0 5 5 5 5 0 0 0 5-5v-2z" fill="#e0e0e0"/></svg>
|
After Width: | Height: | Size: 234 B |
34
game/ui/icons/icon_mouse.svg.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon_mouse.svg-92245f2e2690694f01e281113add7d2d.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/icons/icon_mouse.svg"
|
||||
dest_files=[ "res://.import/icon_mouse.svg-92245f2e2690694f01e281113add7d2d.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
1
game/ui/icons/icon_remove.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg height="16" viewBox="0 0 16 16" width="16" xmlns="http://www.w3.org/2000/svg"><path d="m5 1v1h-4v2h14v-2h-4v-1zm-3 4v8a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-8zm1 2h2v6h-2zm4 0h2v6h-2zm4 0h2v6h-2z" fill="#e0e0e0" fill-opacity=".99608"/></svg>
|
After Width: | Height: | Size: 240 B |
34
game/ui/icons/icon_remove.svg.import
Normal file
@ -0,0 +1,34 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon_remove.svg-997114201fcc93bffd099fce5ecc1ae7.stex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://ui/icons/icon_remove.svg"
|
||||
dest_files=[ "res://.import/icon_remove.svg-997114201fcc93bffd099fce5ecc1ae7.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=1
|
||||
flags/filter=false
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
process/fix_alpha_border=false
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=false
|
||||
svg/scale=1.0
|
@ -24,6 +24,24 @@ export(PackedScene) var keybind_category_scene : PackedScene
|
||||
|
||||
export(NodePath) var content_container_path : NodePath
|
||||
|
||||
var _player : Entity
|
||||
|
||||
func set_player(player : Entity):
|
||||
if _player:
|
||||
_player.disconnect("centity_data_changed", self, "on_data_changed")
|
||||
|
||||
_player = player
|
||||
|
||||
on_data_changed(_player.getc_entity_data())
|
||||
|
||||
_player.connect("centity_data_changed", self, "on_data_changed")
|
||||
|
||||
|
||||
func on_data_changed(data):
|
||||
if data:
|
||||
ProfileManager.on_keybinds_changed(data.get_path())
|
||||
InputMap.load_from_globals()
|
||||
|
||||
|
||||
# Note for the reader:
|
||||
#
|
||||
@ -127,3 +145,12 @@ func a_ready():
|
||||
|
||||
# Do not start processing input until a button is pressed
|
||||
set_process_input(false)
|
||||
|
||||
func close():
|
||||
InputMap.load_from_globals()
|
||||
|
||||
if _player:
|
||||
ProfileManager.on_keybinds_changed(_player.getc_entity_data().get_path())
|
||||
|
||||
hide()
|
||||
|
||||
|
@ -1,8 +1,15 @@
|
||||
[gd_scene load_steps=4 format=2]
|
||||
[gd_scene load_steps=11 format=2]
|
||||
|
||||
[ext_resource path="res://ui/keybinds/Keybinds.gd" type="Script" id=1]
|
||||
[ext_resource path="res://ui/theme/ui_theme.tres" type="Theme" id=2]
|
||||
[ext_resource path="res://ui/keybinds/KeybindCategory.tscn" type="PackedScene" id=3]
|
||||
[ext_resource path="res://ui/icons/icon_mouse.svg" type="Texture" id=4]
|
||||
[ext_resource path="res://ui/icons/icon_joy_axis.svg" type="Texture" id=5]
|
||||
[ext_resource path="res://ui/icons/icon_keyboard.svg" type="Texture" id=6]
|
||||
[ext_resource path="res://ui/icons/icon_edit.svg" type="Texture" id=7]
|
||||
[ext_resource path="res://ui/icons/icon_add.svg" type="Texture" id=8]
|
||||
[ext_resource path="res://ui/icons/icon_remove.svg" type="Texture" id=9]
|
||||
[ext_resource path="res://ui/icons/icon_joy_button.svg" type="Texture" id=10]
|
||||
|
||||
[node name="KeybindWindow" type="PanelContainer"]
|
||||
anchor_right = 1.0
|
||||
@ -13,7 +20,6 @@ __meta__ = {
|
||||
"_edit_use_anchors_": false
|
||||
}
|
||||
keybind_category_scene = ExtResource( 3 )
|
||||
content_container_path = NodePath("VBoxContainer/ScrollContainer/Content")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
margin_left = 4.0
|
||||
@ -27,7 +33,7 @@ margin_bottom = 30.0
|
||||
|
||||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer"]
|
||||
margin_top = 7.0
|
||||
margin_right = 968.0
|
||||
margin_right = 972.0
|
||||
margin_bottom = 22.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Keybinds"
|
||||
@ -39,17 +45,19 @@ margin_bottom = 30.0
|
||||
rect_min_size = Vector2( 40, 30 )
|
||||
text = "X"
|
||||
|
||||
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
|
||||
[node name="InputMapEditor" type="InputMapEditor" parent="VBoxContainer"]
|
||||
margin_top = 38.0
|
||||
margin_right = 1016.0
|
||||
margin_bottom = 554.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
scroll_horizontal_enabled = false
|
||||
|
||||
[node name="Content" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
|
||||
margin_right = 1016.0
|
||||
size_flags_horizontal = 3
|
||||
add_texture = ExtResource( 8 )
|
||||
remove_texture = ExtResource( 9 )
|
||||
edit_texture = ExtResource( 7 )
|
||||
keyboard_texture = ExtResource( 6 )
|
||||
joybutton_texture = ExtResource( 10 )
|
||||
joyaxis_texture = ExtResource( 5 )
|
||||
mouse_texture = ExtResource( 4 )
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="VBoxContainer"]
|
||||
margin_top = 562.0
|
||||
@ -58,8 +66,8 @@ margin_bottom = 592.0
|
||||
alignment = 2
|
||||
|
||||
[node name="Button" type="Button" parent="VBoxContainer/HBoxContainer2"]
|
||||
margin_left = 848.0
|
||||
margin_right = 928.0
|
||||
margin_left = 852.0
|
||||
margin_right = 932.0
|
||||
margin_bottom = 30.0
|
||||
rect_min_size = Vector2( 80, 30 )
|
||||
text = "Cancel"
|
||||
@ -71,3 +79,6 @@ margin_bottom = 30.0
|
||||
rect_min_size = Vector2( 80, 30 )
|
||||
text = "OK"
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer/Button" to="." method="hide"]
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Button" to="." method="hide"]
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Button2" to="." method="close"]
|
||||
[connection signal="pressed" from="VBoxContainer/HBoxContainer2/Button2" to="VBoxContainer/InputMapEditor" method="queue_save"]
|
||||
|
@ -44,7 +44,7 @@ script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
child_controls = [ NodePath("Unitframes"), NodePath("Actionbars"), NodePath("Windows/SpellBookWindow"), NodePath("Buttons"), NodePath("Castbar"), NodePath("AuraFrame"), NodePath("Windows/Inventory"), NodePath("Windows/LootWindow"), NodePath("Windows/TalentWindow"), NodePath("Windows/CraftingWindow") ]
|
||||
child_controls = [ NodePath("Unitframes"), NodePath("Actionbars"), NodePath("Windows/SpellBookWindow"), NodePath("Buttons"), NodePath("Castbar"), NodePath("AuraFrame"), NodePath("Windows/Inventory"), NodePath("Windows/LootWindow"), NodePath("Windows/TalentWindow"), NodePath("Windows/CraftingWindow"), NodePath("IngameMenu/KeybindWindow") ]
|
||||
|
||||
[node name="TouchTargetControls" type="MarginContainer" parent="GUI"]
|
||||
visible = false
|
||||
@ -460,3 +460,5 @@ visible = false
|
||||
[connection signal="toggled" from="GUI/Buttons/TalentButton" to="GUI/Windows/TalentWindow" method="_on_TalentButton_toggled"]
|
||||
[connection signal="toggled" from="GUI/Buttons/CraftingButton" to="GUI/Windows/CraftingWindow" method="_on_CraftingButton_toggled"]
|
||||
[connection signal="pressed" from="GUI/Buttons/Menu" to="GUI/IngameMenu" method="show"]
|
||||
|
||||
[editable path="GUI/IngameMenu"]
|
||||
|