extends Node2D
class_name dot
onready var dotcollider : CollisionShape2D = $dot_collisions/dotcollider
onready var dotcollisions : Area2D = $dot_collisions
onready var ray : RayCast2D = $dot_collisions/dotray
onready var dotsprite : Sprite = $dotsprite
var tween = Tween.new()
var initial = true
var prev_go_to
export(GlobalVars.type) var dot_type
func _ready():
add_child(tween)
func move(collision_only = false):
ray.force_raycast_update()
var go_to = Vector2(global_position.x, ray.get_collision_point().y - 35)
if collision_only:
dotcollisions.global_position = go_to
prev_go_to = go_to
return
else: # cuz the ray moves too you see
go_to = prev_go_to
tween_item_position(dotsprite, dotsprite.global_position, go_to, .25)
# log motion into entity tracker
for rows in EntityTracker.rows:
var i = rows.find(self)
if i != -1:
rows[i] = 0
yield(tween, "tween_all_completed")
Events.emit_signal("done_moving")
func tween_item_position(node, old, new, length):
tween.interpolate_property(node, "global_position",
old, new, length,
Tween.TRANS_LINEAR, Tween.EASE_IN_OUT)
tween.start()
func _initial_move(position):
var parameters = [self, Vector2(position.x, -200), position, 2]
# global_position = parameters[1]
tween_item_position(parameters[0], parameters[1], parameters[2], parameters[3])
yield(tween, "tween_all_completed")
Events.emit_signal("done_moving")
func turn_off_collision():
dotcollider.disabled = true
# warning-ignore-all:unused_argument
func _on_dot_input(viewport, event : InputEvent, shape_idx):
InputHandler._pressed(event, self)