Changed resource spawning

added interact functionality
temp added zoom with scroll wheel
This commit is contained in:
2024-02-27 10:21:28 -06:00
parent 5467e044a7
commit f87b1cfa9a
17 changed files with 163 additions and 41 deletions

34
scripts/spawn_pattern.gd Normal file
View File

@@ -0,0 +1,34 @@
extends Resource
class_name SpawnPattern
@export var min_distance: int
@export var max_distance: int
@export var min_spread: int
@export var quantity: int
@export var cluster_size: int
func get_spawn_locations() -> Array[Vector2i]:
var spawns: Array[Vector2i] = []
var clusters: Array[Vector2] = []
for cluster_i in range(quantity):
var cluster
var is_valid_cluster := false
while not is_valid_cluster:
is_valid_cluster = true
var dist = randf_range(min_distance, max_distance)
var angle = randf_range(0, 2*PI)
cluster = Vector2.RIGHT.rotated(angle)
cluster *= dist
for old_cluster: Vector2 in clusters:
is_valid_cluster = is_valid_cluster and old_cluster.distance_to(cluster) > min_spread
clusters.append(cluster)
var local_spawns = [Vector2i(cluster)]
for point in range(cluster_size - 1):
var next = local_spawns.pick_random()
while local_spawns.has(next):
var next_change = [Vector2i.LEFT, Vector2i.RIGHT, Vector2i.UP, Vector2i.DOWN].pick_random()
next = next + next_change
local_spawns.append(next)
spawns.append_array(local_spawns)
return spawns