extends Node2D @export var segements_holder : Node2D var segements : Array[snake_segment] @export var SNAKE_SPEED : float = 0.2 @export var snake_line : Line2D @export var player : Node2D # Called when the node enters the scene tree for the first time. func _ready() -> void: Router.activate_seg.connect(activate_segment) #segements = get_children() as Array[snake_segment] segements.assign(segements_holder.get_children()) for i in segements.size(): if i == 0: segements[i].is_head = true else: segements[i].next_segment = segements[i-1] if i < segements.size()-1: segements[i].door.prev_seg = segements[i+1] segements[i].snake_speed = SNAKE_SPEED segements[i].seg_id = i #segements[i].z_index = 100-i activate_segment(0) # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: redraw_line() pass func activate_segment(act_segment : int): Router.current_seg = segements[act_segment] Router.cur_id = act_segment player.reparent(Router.current_seg) for i in segements.size(): if act_segment == i: segements[i].become_real() else: segements[i].become_fake() func redraw_line(): snake_line.clear_points() for segment in segements: snake_line.add_point(segment.global_position)