From 36874a535a3d5f7f2955f33e34aa1a4768b6fec1 Mon Sep 17 00:00:00 2001
From: David Luevano Alvarado <david@luevano.xyz>
Date: Sat, 4 Jun 2022 03:17:22 -0600
Subject: added hud for snake size and grow progress

---
 src/entities/actors/snake/scripts/snake.gd | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

(limited to 'src/entities/actors')

diff --git a/src/entities/actors/snake/scripts/snake.gd b/src/entities/actors/snake/scripts/snake.gd
index 01e09da..91e4e39 100644
--- a/src/entities/actors/snake/scripts/snake.gd
+++ b/src/entities/actors/snake/scripts/snake.gd
@@ -6,8 +6,8 @@ export(PackedScene) var TAIL_SEGMENT_NP: PackedScene
 
 onready var path: Path2D = $Path
 
+var finished_adding_initial_segments: bool = false
 var current_body_segments: int = 0
-var max_body_initial_segments: int = 1
 var body_segment_stack: Array
 var tail_segment: PathFollow2D
 # didn't konw how to name this, basically holds the current path lenght
@@ -20,16 +20,17 @@ func _ready():
 	set_physics_process(false)
 	set_process_input(false)
 	Event.connect("snake_path_new_point", self, "_on_snake_path_new_point")
+	Event.connect("snake_add_new_segment", self, "_on_snake_add_new_segment")
 	Event.connect("snake_added_new_segment", self, "_on_snake_added_new_segment")
 	Event.connect("snake_added_initial_segments", self, "_on_snake_added_initial_segments")
 
-	Event.connect("food_eaten", self, "_on_food_eaten")
+	# Event.connect("food_eaten", self, "_on_food_eaten")
 	# need to always set a new curve when ready, so when restarting it's af resh curve
 	path.curve = Curve2D.new()
 
 
 func _physics_process(delta: float) -> void:
-	if body_segment_queue.size() != 0 and current_body_segments > max_body_initial_segments:
+	if body_segment_queue.size() != 0 and current_body_segments >= Global.SNAKE_INITIAL_SEGMENTS:
 		_add_new_segment()
 
 	# if body_segment_stack.size() > 0:
@@ -75,6 +76,7 @@ func _add_initial_segment(type: PackedScene) -> void:
 			tail_segment = _temp_body_segment
 		path.add_child(_temp_body_segment)
 
+		# just to keep things going, tail shouldn't count as body segment
 		current_body_segments += 1
 		Event.emit_signal("snake_added_new_segment", _temp_body_segment.TYPE)
 
@@ -93,14 +95,17 @@ func _on_snake_path_new_point(coordinates: Vector2) -> void:
 	# update call is to draw curve as there are new points to the path's curve
 	# update()
 
-	if current_body_segments < max_body_initial_segments:
-		_add_initial_segment(BODY_SEGMENT_NP)
-	elif current_body_segments == max_body_initial_segments:
-		_add_initial_segment(TAIL_SEGMENT_NP)
+	if not finished_adding_initial_segments:
+		if current_body_segments < Global.SNAKE_INITIAL_SEGMENTS:
+			_add_initial_segment(BODY_SEGMENT_NP)
+		elif current_body_segments == Global.SNAKE_INITIAL_SEGMENTS:
+			_add_initial_segment(TAIL_SEGMENT_NP)
 
 
 func _on_snake_added_new_segment(type: String) -> void:
 	if type == "tail":
+		current_body_segments -= 1
+		finished_adding_initial_segments = true
 		Event.emit_signal("snake_added_initial_segments")
 
 
@@ -109,5 +114,6 @@ func _on_snake_added_initial_segments() -> void:
 	set_process_input(true)
 
 
-func _on_food_eaten(type: int, location: Vector2) -> void:
-	_add_segment_to_queue()
+func _on_snake_add_new_segment(amount: int) -> void:
+	for i in amount:
+		_add_segment_to_queue()
-- 
cgit v1.2.3-70-g09d2