44 lines
1.5 KiB
GDScript3
44 lines
1.5 KiB
GDScript3
|
|
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))
|