online multiplayer chess game (note server currently down)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
extends Button
class_name KeyUtils

var is_pressed = false


func simulate_key_input_event(scancode: int, unicode := 0, pressed := true):
	var i = InputEventKey.new()
	i.pressed = pressed
	i.scancode = scancode
	i.unicode = unicode
	Input.parse_input_event(i)


func is_mouse(event) -> bool:
	return event is InputEventMouseButton and event.button_index == BUTTON_LEFT


func _input(event: InputEvent) -> void:
	if is_mouse(event):
		if !event.pressed and is_pressed:
			_release()
	elif event is InputEventMouseMotion:
		if !get_global_rect().has_point(event.position):
			_release()


func _release():
	if is_pressed != false:
		is_pressed = false
		released()


func _pressed():
	is_pressed = true
	pressed()


func pressed() -> void:
	pass


func released() -> void:
	pass