summaryrefslogtreecommitdiff
path: root/src/entities/food/scripts/food_manager.gd
blob: 20772dbf79fceb391d9f9687164d73931ef94ce8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class_name FoodManager
extends Node2D

export(PackedScene) var FOOD: PackedScene

var max_apples: int = 10
var current_apples: int = 0


func _ready():
	Event.connect("food_eaten", self, "_on_food_eaten")
	randomize()


func _process(delta) -> void:
	if current_apples < max_apples:
		_place_new_food()
		current_apples += 1


func _place_new_food() -> void:
	var food: Area2D = FOOD.instance()
	Event.emit_signal("food_placing_new_food", food.TYPE)
	var position: Vector2 = _get_random_pos()
	food.global_position = position
	add_child(food)
	Event.emit_signal("food_placed_new_food", food.TYPE)


func _get_random_pos() -> Vector2:
	var screen_size: Vector2 = get_viewport().get_visible_rect().size
	var temp_x: float = randf() * screen_size.x - screen_size.x / 2.0
	var temp_y: float = randf() * screen_size.y - screen_size.y / 2.0

	return Vector2(temp_x, temp_y)


func _on_food_eaten(type: int) -> void:
	current_apples -= 1