extends Node3D var update_timer = 0.1 @onready var player = $Player var procgen_map = [] func _procgen_add_next() -> void: var procgen_item = load("res://scenes/procgens/test1/item_" + str(randi_range(2, 3)) + ".tscn").instantiate() var entry = { "item": procgen_item, "enemies": [] } procgen_item.rotation.y = 0.7 add_child(procgen_item) if procgen_map.size() != 0: var last_end = procgen_map[procgen_map.size() - 1].item.get_node("ProceduralEnd") procgen_item.rotation = last_end.global_rotation var start_offset = procgen_item.get_node("ProceduralStart").global_position - procgen_item.global_position procgen_item.global_position = last_end.global_position - start_offset procgen_map.push_back(entry) entry.has_aggro_zone = procgen_item.has_node("AggroZone") if entry.has_aggro_zone: procgen_item.get_node("AggroZone").body_entered.connect(func (body): if body == player: for n in entry.enemies: n.awake = true ) if procgen_item.has_node("Spawns"): for n in procgen_item.get_node("Spawns").get_children(): var enemy = Global.enemies[n.spawn_enemy].instantiate() enemy.awake = false add_child(enemy) enemy.global_position = n.global_position entry.enemies.push_back(enemy) if procgen_item.has_node("CameraZones"): for n in procgen_item.get_node("CameraZones").get_children(): var pos = n.global_position var rot = n.global_rotation procgen_item.get_node("CameraZones").remove_child(n) $CameraZones.add_child(n) n.global_position = pos n.global_rotation = rot func _ready() -> void: _procgen_add_next() _procgen_add_next() #_procgen_add_next() #_procgen_add_next() #_procgen_add_next() #_procgen_add_next() # Called every frame. 'delta' is the elapsed time since the previous frame. func _process(delta: float) -> void: update_timer -= delta if update_timer <= 0: update_timer = 0.1 $UI/Hotbar/Bars/Health/Bar.value = player.health var item_buttons = $UI/Hotbar/Items.get_children() var i = 0 for n in player.slots: if item_buttons.size() <= i: var button = preload("res://scenes/ui/item_button.tscn").instantiate() button.weapon = player.slots[i] button.player = player $UI/Hotbar/Items.add_child(button) button.started = true elif item_buttons[i].weapon != player.slots[i]: item_buttons[i].weapon = player.slots[i] i += 1