feat: add ui labels to display village state
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
[gd_scene load_steps=14 format=3 uid="uid://rs3hv73svbpa"]
|
||||
[gd_scene load_steps=15 format=3 uid="uid://rs3hv73svbpa"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://4mg67crlim53" path="res://player/player.gd" id="1_h2yge"]
|
||||
[ext_resource type="Script" uid="uid://ii8ai801jur2" path="res://player/camera_rig.gd" id="2_1bvp3"]
|
||||
[ext_resource type="Script" uid="uid://dbb25ttlyogqr" path="res://simulation/SimulationManager.gd" id="3_lquwl"]
|
||||
[ext_resource type="Script" uid="uid://c1f3b26n4yntf" path="res://world/world_view_manager.gd" id="4_1bvp3"]
|
||||
[ext_resource type="PackedScene" uid="uid://dhxxyprqflotq" path="res://player/npc/NpcVisual.tscn" id="5_lquwl"]
|
||||
[ext_resource type="Script" uid="uid://cjvbgqx8rao0t" path="res://world/ui/ui.gd" id="6_7mycd"]
|
||||
|
||||
[sub_resource type="NavigationMesh" id="NavigationMesh_lquwl"]
|
||||
vertices = PackedVector3Array(-14.5, 0.5, 0, -1, 0.5, 0, -1, 0.5, -0.75, 0, 0.5, -1, 0, 0.5, -14.5, -14.5, 0.5, -14.5, 0.75, 0.5, -1, 0.75, 0.75, -0.5, 14.5, 0.5, -0.5, 14.5, 0.5, -14.5, 0.75, 0.75, 0, 0, 1, 0, 0, 0.75, 0.75, -0.5, 0.75, 0.75, -0.5, 0.5, 14.5, 14.5, 0.5, 14.5, -1, 0.5, 0.75, -14.5, 0.5, 14.5)
|
||||
@@ -126,3 +127,23 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4, 0, 5)
|
||||
|
||||
[node name="FoodZone" type="Marker3D" parent="TaskZone"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8)
|
||||
|
||||
[node name="UI" type="CanvasLayer" parent="." node_paths=PackedStringArray("simulation_manager")]
|
||||
script = ExtResource("6_7mycd")
|
||||
simulation_manager = NodePath("../SimulationManager")
|
||||
|
||||
[node name="VillagePanel" type="PanelContainer" parent="UI"]
|
||||
offset_left = 20.0
|
||||
offset_top = 20.0
|
||||
offset_right = 280.0
|
||||
offset_bottom = 140.0
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="UI/VillagePanel"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_left = 12
|
||||
theme_override_constants/margin_top = 12
|
||||
theme_override_constants/margin_right = 12
|
||||
theme_override_constants/margin_bottom = 12
|
||||
|
||||
[node name="VillageStatsLabel" type="Label" parent="UI/VillagePanel/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
extends CanvasLayer
|
||||
|
||||
const DEBUG_LOGS := false
|
||||
|
||||
@export var simulation_manager: Node
|
||||
|
||||
@onready var village_stats_label: Label = $VillagePanel/MarginContainer/VillageStatsLabel
|
||||
|
||||
func _ready() -> void:
|
||||
if simulation_manager == null:
|
||||
push_error("VillageUI: simulation_manager missing")
|
||||
return
|
||||
|
||||
if simulation_manager.has_signal("village_changed"):
|
||||
simulation_manager.village_changed.connect(_on_village_changed)
|
||||
else:
|
||||
push_error("VillageUI: SimulationManager has no village_changed signal")
|
||||
|
||||
if "village" in simulation_manager:
|
||||
_on_village_changed(simulation_manager.village)
|
||||
|
||||
func _on_village_changed(village: SimVillage) -> void:
|
||||
village_stats_label.text = """
|
||||
Village
|
||||
|
||||
Food: %s
|
||||
Wood: %s
|
||||
Safety: %s
|
||||
Knowledge: %s
|
||||
""" % [
|
||||
round(village.food),
|
||||
round(village.wood),
|
||||
round(village.safety),
|
||||
round(village.knowledge)
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
uid://cjvbgqx8rao0t
|
||||
Reference in New Issue
Block a user