One_Eleven_Android/scripts/CustomTooltipInGameForFullView.gd
2024-11-10 03:34:28 +03:00

63 lines
1.5 KiB
GDScript

extends Control
onready var tween = $Tween;
const time:float = 0.2;
var state:int = 0;
var controls:Array = [];
var mem = preload("res://CustomTooltipInGame.tscn")
var tooltip = null;
var tooltipHidden = null;
var hidden:bool = false;
func _make_custom_tooltip(for_text)->Control:
if hidden:
if is_instance_valid(tooltipHidden):
return tooltipHidden;
tooltipHidden = mem.instance();
tooltipHidden.get_node("Node2D").get_node("Label").text = "";
tooltipHidden.get_node("Node2D").position.x = - 1000;
return tooltipHidden;
if is_instance_valid(tooltip):
return tooltip;
tooltip = mem.instance()
tooltip.get_node("Node2D").get_node("Label").text = for_text
return tooltip;
func HoverOn(_controls:Array):
if is_instance_valid(tooltip):
tooltip.visible = false;
hidden = true;
Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
controls = _controls;
StartTween(1);
func HoverOff(_controls:Array):
if is_instance_valid(tooltip):
tooltip.visible = true;
hidden = false;
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
controls = _controls;
StartTween(2);
func StartTween(value):
if (state == 1 and value == 2) or (state == 2 and value == 1):
tween.remove_all();
state = value;
var modulateValue = Color(1, 1, 1, 1);
if state == 1:
modulateValue = Color(1, 1, 1, 0);
for i in controls:
tween.interpolate_property(i, "modulate", i.modulate, modulateValue, time, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT, 0)
tween.start()
func _on_Tween_tween_all_completed():
state = 0;