22 lines
819 B
GDScript
22 lines
819 B
GDScript
@tool
|
|
extends PelletSpread
|
|
|
|
class_name PelletSpreadRandom
|
|
|
|
const ASPECT = 1.7777777777777777
|
|
|
|
@export var random_amount: int
|
|
@export_range(0,89,0.1,"radians_as_degrees") var radius: float
|
|
@export var aspect_ratio: float = 1.7777777777777777
|
|
|
|
@export_tool_button("Randomize points") var randomize_button = randomize_points
|
|
|
|
func randomize_points() -> void:
|
|
curve.clear_points()
|
|
var viewport_aspect_trasformation = Vector2(ASPECT,1)
|
|
var custom_aspect_transformation = Vector2(aspect_ratio,1./aspect_ratio)
|
|
var transformation_vector = get_viewport_rect().size / viewport_aspect_trasformation /PI
|
|
for i in range(random_amount):
|
|
var unscaled_position = Vector2(randf_range(-radius,radius),randf_range(-radius,radius))
|
|
var scaled_position = unscaled_position*transformation_vector
|
|
curve.add_point(scaled_position)
|