From 63565d1d319ee23615e57cc40cdbcb5caad1dce9 Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 6 May 2026 22:34:03 -0700 Subject: [PATCH] =?UTF-8?q?feat(city):=20=E2=9C=A8=20add=20merge=20buildin?= =?UTF-8?q?gs=20panel=20toggle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- src/game/engine/scenes/city/city_screen.gd | 2 +- src/game/engine/scenes/city/city_screen.tscn | 23 ++++++++++++++++++- .../engine/src/autoloads/theme_vocabulary.gd | 4 +++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/game/engine/scenes/city/city_screen.gd b/src/game/engine/scenes/city/city_screen.gd index c03bb561..a2c84a21 100644 --- a/src/game/engine/scenes/city/city_screen.gd +++ b/src/game/engine/scenes/city/city_screen.gd @@ -64,7 +64,7 @@ var _placement_building_id: String = "" @onready var _tiles_title: Label = %TilesTitle @onready var _building_panel: PanelContainer = %BuildingPanel @onready var _merge_btn: Button = %MergeBuildingsBtn -@onready var _merge_panel: PanelContainer = %MergePanel +@onready var _merge_panel: Node = %MergePanel func _apply_vocab() -> void: diff --git a/src/game/engine/scenes/city/city_screen.tscn b/src/game/engine/scenes/city/city_screen.tscn index d641fdd8..ce1a4d8f 100644 --- a/src/game/engine/scenes/city/city_screen.tscn +++ b/src/game/engine/scenes/city/city_screen.tscn @@ -1,8 +1,9 @@ -[gd_scene load_steps=4 format=3 uid="uid://cityscreen001"] +[gd_scene load_steps=5 format=3 uid="uid://cityscreen001"] [ext_resource type="Script" path="res://engine/scenes/city/city_screen.gd" id="1"] [ext_resource type="Theme" path="res://public/games/age-of-dwarves/ui_theme.tres" id="2_theme"] [ext_resource type="PackedScene" path="res://engine/scenes/city/building_panel.tscn" id="3_bpanel"] +[ext_resource type="PackedScene" path="res://engine/scenes/city/merge_panel.tscn" id="4_mpanel"] [node name="CityScreen" type="CanvasLayer"] layer = 5 @@ -571,7 +572,27 @@ layout_mode = 2 [node name="FooterRow" type="HBoxContainer" parent="Panel/Margin/VBox"] layout_mode = 2 +[node name="MergeBuildingsBtn" type="Button" parent="Panel/Margin/VBox/FooterRow"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 0 +visible = false +theme_override_colors/font_color = Color(0.9, 0.75, 0.3, 1) +text = "Merge Buildings" + [node name="CloseButton" type="Button" parent="Panel/Margin/VBox/FooterRow"] unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 0 + +[node name="MergePanel" parent="." instance=ExtResource("4_mpanel")] +unique_name_in_owner = true +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -200.0 +offset_top = -180.0 +offset_right = 200.0 +offset_bottom = 180.0 diff --git a/src/game/engine/src/autoloads/theme_vocabulary.gd b/src/game/engine/src/autoloads/theme_vocabulary.gd index e9fd7a5f..591d7271 100644 --- a/src/game/engine/src/autoloads/theme_vocabulary.gd +++ b/src/game/engine/src/autoloads/theme_vocabulary.gd @@ -44,9 +44,11 @@ func load_vocabulary(theme_id: String) -> void: _vocabulary = parsed -func lookup(engine_key: String) -> String: +func lookup(engine_key: String, fallback: String = "") -> String: if _vocabulary.has(engine_key): return _vocabulary[engine_key] + if fallback != "": + return fallback return _key_to_title_case(engine_key)