a game about throwing hammers made for the github game off
Diffstat (limited to 'fx/trail.gd')
| -rw-r--r-- | fx/trail.gd | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/fx/trail.gd b/fx/trail.gd index c2edb76..a2d3577 100644 --- a/fx/trail.gd +++ b/fx/trail.gd @@ -6,15 +6,15 @@ extends Line2D ## Enable or disable the trail @export var emitting := true: - set(p_emitting): - emitting = p_emitting - if not is_inside_tree(): - await ready + set(p_emitting): + emitting = p_emitting + if not is_inside_tree(): + await ready - if emitting: - clear_points() - _points_creation_time.clear() - _last_point = to_local(target.global_position) + if emitting: + clear_points() + _points_creation_time.clear() + _last_point = to_local(target.global_position) ## Resolution. Smaller = more points @export var resolution := 2.0 @@ -33,53 +33,53 @@ var _last_point := Vector2.ZERO var _clock := 0.0 func _ready() -> void: - if not target: - target = get_parent() as Node2D + if not target: + target = get_parent() as Node2D - joint_mode = Line2D.LINE_JOINT_BEVEL - top_level = true - clear_points() - position = Vector2.ZERO - _last_point = to_local(target.global_position) + joint_mode = Line2D.LINE_JOINT_BEVEL + top_level = true + clear_points() + position = Vector2.ZERO + _last_point = to_local(target.global_position) func _process(delta: float) -> void: - _clock += delta - remove_older() + _clock += delta + remove_older() - if not emitting: - return + if not emitting: + return - # Adding new points if necessary. - var desired_point := (target.global_position) - var distance: float = _last_point.distance_to(desired_point) - if distance > resolution: - add_timed_point(desired_point, _clock) + # Adding new points if necessary. + var desired_point := (target.global_position) + var distance: float = _last_point.distance_to(desired_point) + if distance > resolution: + add_timed_point(desired_point, _clock) ## Creates a new point and stores its creation time. func add_timed_point(point: Vector2, time: float) -> void: - add_point(point) - _points_creation_time.append(time) - _last_point = point - if get_point_count() > max_points: - remove_first_point() + add_point(point) + _points_creation_time.append(time) + _last_point = point + if get_point_count() > max_points: + remove_first_point() ## Removes the first point in the line and the corresponding time. func remove_first_point() -> void: - if get_point_count() > 1: - remove_point(0) - _points_creation_time.remove_at(0) + if get_point_count() > 1: + remove_point(0) + _points_creation_time.remove_at(0) ## Remove points older than [code]lifetime[/code]. func remove_older() -> void: - for creation_time in _points_creation_time: - var delta := _clock - creation_time - if delta > lifetime: - remove_first_point() - # Points in `_points_creation_time` are ordered from oldest to newest so as soon as a point - # isn't older than `lifetime`, we know all remaining points should stay as well. - else: - break + for creation_time in _points_creation_time: + var delta := _clock - creation_time + if delta > lifetime: + remove_first_point() + # Points in `_points_creation_time` are ordered from oldest to newest so as soon as a point + # isn't older than `lifetime`, we know all remaining points should stay as well. + else: + break |