In the middle of it
This commit is contained in:
parent
4c64946609
commit
8b3b1a5884
43 changed files with 613 additions and 253 deletions
77
scripts/autoload/input_handler.gd
Normal file
77
scripts/autoload/input_handler.gd
Normal file
|
@ -0,0 +1,77 @@
|
|||
# Handles background inputs (inputs when unfocused)
|
||||
|
||||
extends Node
|
||||
|
||||
signal key_pressed(key: Key)
|
||||
signal key_released(key: Key)
|
||||
signal all_keys_released
|
||||
#background input capture
|
||||
signal emptiedCapture
|
||||
signal pressedKey
|
||||
var costumeKeys = ["1","2","3","4","5","6","7","8","9","0"]
|
||||
|
||||
var pressed_keys: Array[Key] = []
|
||||
|
||||
func should_fire_signal() -> bool:
|
||||
return get_viewport().gui_get_focus_owner() == null or not DisplayServer.window_is_focused()
|
||||
|
||||
func _process(_delta):
|
||||
# This is a Dictionary[Key, bool] but I can't return typed dicts nor cast them
|
||||
var keys = BackgroundInputCapture.get_keys()
|
||||
for key in keys:
|
||||
if keys[key]:
|
||||
pressed_keys.append(key)
|
||||
if should_fire_signal():
|
||||
key_pressed.emit(key)
|
||||
else:
|
||||
pressed_keys.erase(key)
|
||||
if should_fire_signal():
|
||||
key_released.emit(key)
|
||||
#process_key_presses(keys)
|
||||
#bgInputSprite(keys)
|
||||
#
|
||||
#func process_key_presses(keys_pressed: Dictionary[Key, bool]):
|
||||
#if Global.main.fileSystemOpen:
|
||||
#return
|
||||
#
|
||||
#var keyStrings = keys_pressed.map(
|
||||
#func(i) -> String: return OS.get_keycode_string(i) if !OS.get_keycode_string(i).strip_edges().is_empty() else "Keycode" + str(i)
|
||||
#)
|
||||
#
|
||||
#if keyStrings.size() <= 0:
|
||||
#emit_signal("emptiedCapture")
|
||||
#return
|
||||
#
|
||||
#if settingsMenu.awaitingCostumeInput >= 0:
|
||||
#
|
||||
#if keyStrings[0] == "Keycode1":
|
||||
#if !settingsMenu.hasMouse:
|
||||
#emit_signal("pressedKey")
|
||||
#return
|
||||
#
|
||||
#var currentButton = costumeKeys[settingsMenu.awaitingCostumeInput]
|
||||
#costumeKeys[settingsMenu.awaitingCostumeInput] = keyStrings[0]
|
||||
#Saving.settings["costumeKeys"] = costumeKeys
|
||||
#Global.pushUpdate("Changed costume " + str(settingsMenu.awaitingCostumeInput+1) + " hotkey from \"" + currentButton + "\" to \"" + keyStrings[0] + "\"")
|
||||
#emit_signal("pressedKey")
|
||||
#
|
||||
#for key in keyStrings:
|
||||
#var i = costumeKeys.find(key)
|
||||
#if i >= 0:
|
||||
#changeCostume(i+1)
|
||||
#
|
||||
#
|
||||
## Handles background input for sprites
|
||||
#func bgInputSprite(keys_pressed: Dictionary[Key, bool]):
|
||||
#if fileSystemOpen:
|
||||
#return
|
||||
#
|
||||
#if keys_pressed.size() <= 0:
|
||||
#emit_signal("all_keys_released")
|
||||
#return
|
||||
#
|
||||
#spriteVisToggles.emit(
|
||||
#keys_pressed.map(
|
||||
#func(i) -> String: return OS.get_keycode_string(i) if !OS.get_keycode_string(i).strip_edges().is_empty() else "Keycode" + str(i)
|
||||
#)
|
||||
#)
|
Loading…
Add table
Add a link
Reference in a new issue