ed-april-game/scripts/scene_manager.gd

38 lines
974 B
GDScript3
Raw Normal View History

2026-04-28 01:06:17 +00:00
class_name SceneManager extends Node2D
@onready var game_node: Node2D = $".."
@onready var crates: Node2D = $"../crates"
2026-05-05 00:57:02 +00:00
var grenade = preload("res://scenes/grenade.tscn")
2026-04-28 01:06:17 +00:00
func _ready() -> void:
print("scene manager is ready")
game_node.destroy.connect(destroy)
build_level()
func _process(delta: float) -> void:
pass
func build_level() -> void:
update_crates()
2026-05-05 00:57:02 +00:00
func make_grenade(grenade_pos: Transform2D, grenade_dir: int) -> void:
print("scene manager making grenade")
var g:Grenade = grenade.instantiate()
g.transform = grenade_pos
owner.add_child(g)
g.apply_central_impulse(Vector2(grenade_dir, 1)*400)
2026-04-28 01:06:17 +00:00
func update_crates() -> void:
var crate_total:int = 0
if crates:
for obj in crates.get_children():
if obj is BrownBox:
if not obj.tree_exited.is_connected(update_crates):
obj.tree_exited.connect(update_crates)
crate_total += 1
game_node.set_crate_num(crate_total)
func destroy(body):
if body is BrownBox:
body.queue_free()