Set up the complete Godot 4.6 client foundation as a pure renderer (D-020): - project.godot with 2D rendering, autoloads, input actions - Main scene: Game > World (TileMapLayer, Entities, FogOverlay) + Camera2D + UILayer - Autoloads: SimBridge (connection state machine + test mode), GameState, InputMapper - Rendering stubs: WorldRenderer, EntityRenderer, FogRenderer - UI stubs: HUD (health/perception/time), Minimap, MonologueDisplay - Input mapping: WASD/arrows, E (interact), Tab (perception), Esc (menu), Space (pause) - gdUnit4 smoke tests: scene loads, autoloads registered (2/2 passing) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
39 lines
1.0 KiB
Plaintext
39 lines
1.0 KiB
Plaintext
[gd_scene load_steps=2 format=3 uid="uid://cq1y5w3hmxr8b"]
|
|
|
|
[ext_resource type="Script" path="res://ui/hud.gd" id="1_hud"]
|
|
|
|
[node name="HUD" type="Control"]
|
|
layout_mode = 3
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
mouse_filter = 2
|
|
script = ExtResource("1_hud")
|
|
|
|
[node name="MarginContainer" type="MarginContainer" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 10
|
|
anchor_right = 1.0
|
|
offset_bottom = 100.0
|
|
grow_horizontal = 2
|
|
theme_override_constants/margin_left = 16
|
|
theme_override_constants/margin_top = 16
|
|
theme_override_constants/margin_right = 16
|
|
|
|
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer"]
|
|
layout_mode = 2
|
|
|
|
[node name="HealthLabel" type="Label" parent="MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
text = "Health: 100"
|
|
|
|
[node name="PerceptionLabel" type="Label" parent="MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
text = "Mode: Baseline"
|
|
|
|
[node name="TimeLabel" type="Label" parent="MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
text = "Time: 08:00"
|