mirror of
https://github.com/thegatesbrowser/thegates.git
synced 2025-08-23 08:17:34 -04:00
34 lines
966 B
GDScript
34 lines
966 B
GDScript
extends Button
|
|
|
|
@export var content: Control
|
|
@export var tween_duration: float
|
|
@export var normal_modulate: Color
|
|
@export var hover_scale: float
|
|
|
|
var tween: Tween
|
|
|
|
|
|
func _ready() -> void:
|
|
mouse_entered.connect(on_mouse_entered)
|
|
mouse_exited.connect(on_mouse_exited)
|
|
on_mouse_exited()
|
|
|
|
|
|
func on_mouse_entered() -> void:
|
|
if is_instance_valid(tween): tween.stop()
|
|
tween = create_tween()
|
|
tween.set_parallel(true)
|
|
|
|
tween.set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
|
|
tween.tween_property(content, "scale", Vector2.ONE * hover_scale, tween_duration)
|
|
tween.tween_property(content, "modulate", Color.WHITE, tween_duration)
|
|
|
|
|
|
func on_mouse_exited() -> void:
|
|
if is_instance_valid(tween): tween.stop()
|
|
tween = create_tween()
|
|
tween.set_parallel(true)
|
|
|
|
tween.set_trans(Tween.TRANS_QUAD).set_ease(Tween.EASE_OUT)
|
|
tween.tween_property(content, "scale", Vector2.ONE, tween_duration)
|
|
tween.tween_property(content, "modulate", normal_modulate, tween_duration)
|