online multiplayer chess game (note server currently down)
Diffstat (limited to 'ui/chat/emojibutton.gd')
-rw-r--r--ui/chat/emojibutton.gd37
1 files changed, 24 insertions, 13 deletions
diff --git a/ui/chat/emojibutton.gd b/ui/chat/emojibutton.gd
index b63e418..5303da4 100644
--- a/ui/chat/emojibutton.gd
+++ b/ui/chat/emojibutton.gd
@@ -1,12 +1,12 @@
-extends TextureButton
+extends Button
export(float) var scale_normal := 0.8
export(float) var scale_hover := 1.0
-var cur_scale := 0.8
+var cur_scale := scale_normal
export(float) var saturation_normal := 0.0
export(float) var saturation_hover := 1.0
-var cur_saturation := 0.0
+var cur_saturation := saturation_normal
export(float) var weight := 0.35
@@ -20,15 +20,17 @@ signal emoji_selected(emoji)
onready var emojimenu: GridMenu = $Popup/EmojiMenu
onready var popup: PopupPanel = $Popup
+var font: DynamicFont = load("res://ui/chat/emoji_button_font.tres")
+onready var font_size = font.size
func change_icon():
if emojis:
- texture_normal = load(emojis.values()[randi() % len(emojis)])
+ text = emojis.values()[randi() % len(emojis)]
func _ready():
- material.set_shader_param("scale", scale_normal)
+ scale()
set_process(false)
@@ -36,14 +38,16 @@ func _setup(_emojis: Dictionary):
emojis = _emojis
change_icon()
for key in emojis.keys():
- emojimenu.add_item(load(emojis[key]), arr2tooltip(key), Vector2(30, 30))
+ emojimenu.add_text_item(emojis[key], arr2tooltip(key), Vector2(40, 40))
-func arr2tooltip(arr: Array) -> String:
- var string = ""
- for i in arr:
- string += i + " "
- return string
+func arr2tooltip(arr) -> String:
+ if typeof(arr) == TYPE_ARRAY:
+ var string = ""
+ for i in arr:
+ string += i + " "
+ return string
+ return arr
func _focused(q: bool):
@@ -63,10 +67,14 @@ func _process(_delta: float) -> void:
if is_equal_approx(cur_scale, scale_normal):
set_process(false)
- material.set_shader_param("scale", cur_scale)
+ scale()
material.set_shader_param("saturation", cur_saturation)
+func scale():
+ font.size = cur_scale * font_size
+
+
func _pressed() -> void:
popup.popup()
emojimenu.open()
@@ -75,5 +83,8 @@ func _pressed() -> void:
func _on_EmojiMenu_pressed(index: int):
- emit_signal("emoji_selected", emojis.keys()[index][0])
+ emit_signal(
+ "emoji_selected",
+ emojis.keys()[index] if typeof(emojis.keys()[index]) == TYPE_STRING else emojis.keys()[index][0]
+ )
popup.hide()