Chelimbalo/weapons/gun/pellet_spread/pellet_spread_random.gd

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)