def METHOD_NAME(self):
    self.path_progress = self._get_time()
    next_node = self.get_next_node(self.path_progress)
    prev_node = self.get_previous_node(self.path_progress)
    if not next_node or not prev_node:
        return int(self.path_progress)
    self.current_segment = prev_node.TimeIndex
    prev_pos = Vector(prev_node.X, prev_node.Y, prev_node.Z)
    next_pos = Vector(next_node.X, next_node.Y, next_node.Z)
    if prev_pos == next_pos:
        location = prev_pos.copy()
    else:
        time_elapsed = self.path_progress - prev_node.TimeIndex
        time_diff = next_node.TimeIndex - prev_node.TimeIndex
        segment_diff = next_pos - prev_pos
        velocity_x = segment_diff.x / time_diff
        velocity_y = segment_diff.y / time_diff
        velocity_z = segment_diff.z / time_diff
        location = Vector(time_elapsed * velocity_x, time_elapsed * velocity_y, time_elapsed * velocity_z)
        location += prev_pos
    self.current_anim_position = self.owner.location + location
    if config.Server.Settings.debug_transport:
        self._debug_position(self.current_anim_position)
    # Update passengers Z.
    self._update_passengers()
    return int(self.path_progress)