Files
kicking-high/proto3/godot/ui/quest_indicator.gd
2020-04-16 09:50:31 +03:00

36 lines
861 B
GDScript3

extends Node2D
# Declare member variables here. Examples:
# var a = 2
# var b = "text"
# Called when the node enters the scene tree for the first time.
var target: = Vector3()
var rect: = Rect2()
func _ready():
pass
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
var pos = get_viewport().get_camera().unproject_position(target)
rect = get_viewport_rect()
rect = rect.grow(-8.0)
if get_viewport().get_camera().is_position_behind(target):
if visible:
hide()
else:
if rect.has_point(pos):
if !visible:
show()
else:
pos.x = clamp(pos.x, rect.position.x, rect.position.x + rect.size.x)
pos.y = clamp(pos.y, rect.position.y, rect.position.y + rect.size.y)
if position.distance_squared_to(pos) < 480.0:
position = position.linear_interpolate(pos, delta)
else:
position = pos