Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Button
- @export var content: Label
- @export var hover_scale: Vector2
- @export_range(0.0, 2.0, 0.02) var hover_anim_duration: float
- @export_range(0.0, 2.0, 0.02) var hover_anim_mult: float
- @export_range(0.0, 2.0, 0.02) var text_anim_duration: float
- var init_size: Vector2
- var init_pos: Vector2
- var final_pos: Vector2
- var pivot_movement: Vector2
- var cont_init_pos: Vector2
- var cont_init_color: Color
- func _ready() -> void:
- init_size = size
- init_pos = global_position
- cont_init_pos = content.global_position
- cont_init_color = content.label_settings.font_color
- mouse_entered.connect(button_entered)
- mouse_exited.connect(button_exited)
- # pressed.connect(button_pressed)
- func button_entered():
- var tween:= create_tween()
- tween.tween_property(self, "custom_minimum_size", init_size * hover_scale, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- ## Label Tweens ##
- tween.tween_property(content, "global_position", cont_init_pos, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- tween.tween_property(content.label_settings, "font_color", Color.hex(0xffffffff), text_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_LINEAR)
- func button_exited():
- var tween:= create_tween()
- tween.tween_property(self, "custom_minimum_size", init_size, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- ## Label Tweens ##
- tween.tween_property(content, "global_position", cont_init_pos, hover_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_EXPO)
- tween.parallel()
- tween.tween_property(content.label_settings, "font_color", cont_init_color, text_anim_duration).set_ease(Tween.EASE_IN_OUT).set_trans(Tween.TRANS_LINEAR)
- func button_pressed():
- pass
- func _process(delta: float) -> void:
- pivot_movement = (init_size * hover_scale) - init_size
- final_pos = init_pos - pivot_movement / 2.0
Advertisement
Add Comment
Please, Sign In to add comment