aka gravity ninja golf
1class_name Connhost extends Control
2
3var hover: bool = false
4var oof: Vector2
5var text: String = ""
6signal clicked
7signal connect_to_server(address: String, port: int)
8signal host_server(port: int)
9
10func _process(_delta: float):
11 if hover && Input.is_action_just_released("click"):
12 clicked.emit()
13 connect_to_server.emit("localhost", 1111)
14 host_server.emit(1111)
15
16func initialize(p: Vector2, t: String):
17 position = p
18 size = font.italics.get_string_size(t, HORIZONTAL_ALIGNMENT_LEFT, -1, 48)
19 text = t
20 queue_redraw()
21
22func _draw():
23 var os = Vector2.ZERO
24 if hover:
25 var wa = Color.WHITE
26 wa.a = 0.5
27 draw_rect(Rect2(Vector2.ZERO, size), wa)
28 os = oof
29 draw_string(font.italics, Vector2(0, size.y) + os, text, HORIZONTAL_ALIGNMENT_LEFT, -1, 48, Color.WHITE)
30
31func _on_mouse_entered() -> void:
32 hover = true
33 queue_redraw()
34
35func _on_mouse_exited() -> void:
36 hover = false
37 queue_redraw()