crack-in-reality/polyline_test.gd
2026-03-07 22:33:22 -05:00

44 lines
1.5 KiB
GDScript

extends Node2D
var number_of_points: int = 15: set = set_number_of_points
var displacement_range: float = 50.0: set = set_displacement_range
@onready var pseudo_random_line: Line2D = $PseudoRandomLine
@onready var generate_button: Button = %GenerateButton
@onready var points_slider: HSlider = %PointsSlider
@onready var points_number_value: Label = %PointsNumberValue
@onready var range_slider: HSlider = %RangeSlider
@onready var range_value: Label = %RangeValue
## OVERRIDES
func _ready() -> void:
generate_button.connect("pressed", on_generate_button_pressed)
points_slider.connect("value_changed", on_points_slider_value_changed)
range_slider.connect("value_changed", on_range_slider_value_changed)
## MAIN FUNCTIONALITY
func draw_new_line():
print_debug("Drawing a new line")
pseudo_random_line.draw_new_line(number_of_points, displacement_range)
## RECEIVERS
func on_generate_button_pressed() -> void:
draw_new_line()
func on_points_slider_value_changed(new_value: float) -> void:
number_of_points = int(new_value)
func on_range_slider_value_changed(new_value: float) -> void:
displacement_range = new_value
## SETTERS
func set_number_of_points(number: int) -> void:
number_of_points = number
print_debug("Number of points changed to %s" % number)
points_number_value.text = str(number_of_points)
func set_displacement_range(new_range: float) -> void:
displacement_range = new_range
print_debug("Range changed to %s" % new_range)
range_value.text = str(int(displacement_range))