feat: implement core game scene, player logic, and modular manager architecture for Tekton Dash
This commit is contained in:
+10
-16
@@ -1171,7 +1171,7 @@ func _precalculate_static_positions():
|
||||
|
||||
# Calculate 3 spots and STORE them
|
||||
var points: Array[Vector2i] = []
|
||||
points = static_tekton_manager.calculate_spawn_points(3, enhanced_gridmap)
|
||||
points = static_tekton_manager.calculate_spawn_points(5, enhanced_gridmap)
|
||||
reserved_static_positions = points
|
||||
print("[Main] Pre-calculated Static Tekton Positions: %s" % str(reserved_static_positions))
|
||||
|
||||
@@ -1193,22 +1193,16 @@ func spawn_static_tektons():
|
||||
# Use pre-calculated points if available
|
||||
var spawn_points: Array[Vector2i] = []
|
||||
if not reserved_static_positions.is_empty():
|
||||
spawn_points = reserved_static_positions
|
||||
# Pick exactly 3 from the 5 reserved potential spots as requested
|
||||
var possible_points = reserved_static_positions.duplicate()
|
||||
possible_points.shuffle()
|
||||
spawn_points = possible_points.slice(0, 3)
|
||||
else:
|
||||
# If pre-calculation failed, we MUST check for player overlaps now
|
||||
var raw_points = static_tekton_manager.calculate_spawn_points(3, enhanced_gridmap)
|
||||
var all_players = get_tree().get_nodes_in_group("Players")
|
||||
|
||||
for p_spot in raw_points:
|
||||
var is_overlapping = false
|
||||
for player in all_players:
|
||||
if abs(p_spot.x - player.current_position.x) <= 2 and abs(p_spot.y - player.current_position.y) <= 2:
|
||||
is_overlapping = true
|
||||
break
|
||||
if not is_overlapping:
|
||||
spawn_points.append(p_spot)
|
||||
|
||||
reserved_static_positions = spawn_points # Save them
|
||||
# Fallback if not pre-calculated
|
||||
var raw_points = static_tekton_manager.calculate_spawn_points(5, enhanced_gridmap)
|
||||
raw_points.shuffle()
|
||||
spawn_points = raw_points.slice(0, 3)
|
||||
reserved_static_positions = raw_points # Save all 5 for player avoidance
|
||||
|
||||
print("[Main] Spawning Static Tektons at: %s" % str(spawn_points))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user