50 lines
1 KiB
GDScript
50 lines
1 KiB
GDScript
extends GL_Node
|
|
|
|
var key_to_value = {
|
|
KEY_1: 1.0 / 10,
|
|
KEY_2: 2.0 / 10,
|
|
KEY_3: 3.0 / 10,
|
|
KEY_4: 4.0 / 10,
|
|
KEY_5: 5.0 / 10,
|
|
KEY_6: 6.0 / 10,
|
|
KEY_7: 7.0 / 10,
|
|
KEY_8: 8.0 / 10,
|
|
KEY_9: 9.0 / 10,
|
|
KEY_0: 1.0,
|
|
}
|
|
|
|
var toggle_to_value = {
|
|
KEY_1: 0,
|
|
KEY_2: 1.0 / 9,
|
|
KEY_3: 2.0 / 9,
|
|
KEY_4: 3.0 / 9,
|
|
KEY_5: 4.0 / 9,
|
|
KEY_6: 5.0 / 9,
|
|
KEY_7: 6.0 / 9,
|
|
KEY_8: 7.0 / 9,
|
|
KEY_9: 8.0 / 9,
|
|
KEY_0: 1.0,
|
|
}
|
|
|
|
func _ready():
|
|
_set_title("Keystroke Ramp")
|
|
_create_row("Output", null, 0.0, false, 0.0, 0)
|
|
_create_row("Toggle", null, null, true, false, 0)
|
|
|
|
func _process(delta):
|
|
super._process(delta)
|
|
|
|
if rows["Toggle"]["pickValue"]:
|
|
for key in toggle_to_value.keys():
|
|
if Input.is_key_pressed(key) or Input.is_key_pressed(key + (KEY_KP_0 - KEY_0)):
|
|
rows["Output"]["output"] = toggle_to_value[key]
|
|
break
|
|
else:
|
|
var output_value := 0.0
|
|
for key in key_to_value.keys():
|
|
if Input.is_key_pressed(key) or Input.is_key_pressed(key + (KEY_KP_0 - KEY_0)):
|
|
output_value = key_to_value[key]
|
|
break
|
|
rows["Output"]["output"] = output_value
|
|
|
|
_send_input("Output")
|