Merge main into agent/896fbb97de1d

# Conflicts:
#	.godot/editor/filesystem_cache10
#	.godot/editor/project_metadata.cfg
#	.godot/global_script_class_cache.cfg
#	.godot/uid_cache.bin
#	project.godot
#	scenes/main.tscn
#	scenes/main_menu.tscn
#	scripts/main_menu.gd
#	scripts/main_menu.gd.uid
This commit is contained in:
2026-08-21 01:26:13 +00:00
117 changed files with 10156 additions and 145 deletions
View File
+10
View File
@@ -0,0 +1,10 @@
[gd_scene load_steps=3 format=3 uid="uid://game_scene_pc2"]
[ext_resource type="PackedScene" uid="uid://c49a36fc7db_test_level" path="res://scenes/worlds/test_level.tscn" id="1_level"]
[ext_resource type="PackedScene" uid="uid://player_scene_001" path="res://scenes/player.tscn" id="2_player"]
[node name="Game" type="Node3D"]
[node name="Level" parent="." instance=ExtResource("1_level")]
[node name="Player" parent="." instance=ExtResource("2_player")]
+4 -42
View File
@@ -1,44 +1,6 @@
[gd_scene load_steps=2 format=3]
[gd_scene load_steps=2 format=3 uid="uid://main_scene"]
[ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_menu"]
[ext_resource type="Script" path="res://scripts/chunk_stream_manager.gd" id="1_chunk_stream"]
[node name="MainMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource("1_menu")
[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
layout_mode = 1
theme_override_constants/separation = 16
alignment = 1
[node name="TitleLabel" type="Label" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
theme_override_font_sizes/font_size = 48
text = "AGP Game"
horizontal_alignment = 1
[node name="CustomizeButton" type="Button" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
size_flags_horizontal = 2
text = "Customize Avatar"
[node name="PlayButton" type="Button" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
size_flags_horizontal = 2
text = "Play"
[node name="QuitButton" type="Button" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
size_flags_horizontal = 2
text = "Quit"
[node name="Main" type="Node3D"]
script = ExtResource("1_chunk_stream")
+94 -12
View File
@@ -1,16 +1,17 @@
[gd_scene load_steps=2 format=3]
[gd_scene load_steps=2 format=3 uid="uid://main_menu_scene"]
[ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_menu"]
[ext_resource type="Script" path="res://scripts/main_menu.gd" id="1_main"]
[node name="MainMenu" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
script = ExtResource("1_menu")
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_main")
[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 1
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@@ -20,25 +21,106 @@ grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer"]
layout_mode = 1
theme_override_constants/separation = 16
alignment = 1
size_flags_horizontal = 4
[node name="TitleLabel" type="Label" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
theme_override_font_sizes/font_size = 48
text = "AGP Game"
horizontal_alignment = 1
theme_override_font_sizes/font_size = 72
[node name="CustomizeButton" type="Button" parent="CenterContainer/VBoxContainer"]
[node name="AuthButtonsRow" type="HBoxContainer" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
size_flags_horizontal = 2
text = "Customize Avatar"
theme_override_constants/separation = 16
alignment = 1
[node name="LoginButton" type="Button" parent="CenterContainer/VBoxContainer/AuthButtonsRow"]
layout_mode = 1
text = "Login"
size_flags_horizontal = 3
[node name="RegisterButton" type="Button" parent="CenterContainer/VBoxContainer/AuthButtonsRow"]
layout_mode = 1
text = "Register"
size_flags_horizontal = 3
[node name="AuthPanel" type="PanelContainer" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
visible = false
[node name="MarginContainer" type="MarginContainer" parent="CenterContainer/VBoxContainer/AuthPanel"]
layout_mode = 1
theme_override_constants/margin_left = 24
theme_override_constants/margin_top = 24
theme_override_constants/margin_right = 24
theme_override_constants/margin_bottom = 24
[node name="AuthVBox" type="VBoxContainer" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer"]
layout_mode = 1
theme_override_constants/separation = 8
size_flags_horizontal = 3
[node name="AuthModeLabel" type="Label" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
text = "Login"
horizontal_alignment = 1
theme_override_font_sizes/font_size = 24
[node name="UsernameEdit" type="LineEdit" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
placeholder_text = "Username"
size_flags_horizontal = 3
[node name="PasswordEdit" type="LineEdit" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
placeholder_text = "Password"
size_flags_horizontal = 3
echo_password = true
[node name="EmailEdit" type="LineEdit" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
visible = false
placeholder_text = "Email"
size_flags_horizontal = 3
[node name="Over18Check" type="CheckBox" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
visible = false
text = "I am 18 or older"
size_flags_horizontal = 3
[node name="AuthButton" type="Button" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
text = "Login"
size_flags_horizontal = 3
[node name="AuthStatusLabel" type="Label" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
text = ""
horizontal_alignment = 1
autowrap_mode = 2
visible = false
[node name="WelcomeLabel" type="Label" parent="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox"]
layout_mode = 1
visible = false
text = ""
horizontal_alignment = 1
[node name="PlayButton" type="Button" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
size_flags_horizontal = 2
text = "Play"
size_flags_horizontal = 4
[node name="QuitButton" type="Button" parent="CenterContainer/VBoxContainer"]
layout_mode = 1
size_flags_horizontal = 2
text = "Quit"
size_flags_horizontal = 4
[connection signal="pressed" from="CenterContainer/VBoxContainer/AuthButtonsRow/LoginButton" to="." method="_on_login_button_pressed"]
[connection signal="pressed" from="CenterContainer/VBoxContainer/AuthButtonsRow/RegisterButton" to="." method="_on_register_button_pressed"]
[connection signal="pressed" from="CenterContainer/VBoxContainer/PlayButton" to="." method="_on_play_button_pressed"]
[connection signal="pressed" from="CenterContainer/VBoxContainer/QuitButton" to="." method="_on_quit_button_pressed"]
[connection signal="pressed" from="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/AuthButton" to="." method="_on_auth_button_pressed"]
[connection signal="text_submitted" from="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/UsernameEdit" to="." method="_on_auth_button_pressed"]
[connection signal="text_submitted" from="CenterContainer/VBoxContainer/AuthPanel/MarginContainer/AuthVBox/PasswordEdit" to="." method="_on_auth_button_pressed"]
+24
View File
@@ -0,0 +1,24 @@
[gd_scene load_steps=3 format=3 uid="uid://player_scene_001"]
[ext_resource type="Script" path="res://scripts/player.gd" id="1_player"]
[sub_resource type="CapsuleMesh" id="CapsuleMesh1"]
radius = 0.35
height = 1.6
[sub_resource type="CapsuleShape3D" id="CapsuleShape1"]
radius = 0.35
height = 1.6
[node name="Player" type="CharacterBody3D"]
script = ExtResource("1_player")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("CapsuleShape1")
[node name="CapsuleMesh" type="MeshInstance3D" parent="."]
mesh = SubResource("CapsuleMesh1")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.6, 0)
current = true
+6
View File
@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://scripts/server.gd" id="1_server"]
[node name="Server" type="Node"]
script = ExtResource("1_server")
+6
View File
@@ -0,0 +1,6 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://scripts/player_spawner.gd" id="1"]
[node name="Player" type="CharacterBody3D"]
script = ExtResource("1")
+78
View File
@@ -0,0 +1,78 @@
[gd_scene load_steps=2 format=3]
[ext_resource type="Script" path="res://scripts/world_list.gd" id="1_wl"]
[node name="WorldList" type="Control"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_wl")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
theme_override_constants/separation = 8
[node name="HeaderHBox" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 3
size_flags_horizontal = 3
theme_override_constants/separation = 16
[node name="BackButton" type="Button" parent="VBoxContainer/HeaderHBox"]
layout_mode = 3
text = "< Back"
size_flags_horizontal = 0
[node name="TitleLabel" type="Label" parent="VBoxContainer/HeaderHBox"]
layout_mode = 3
text = "Browse Worlds"
horizontal_alignment = 1
size_flags_horizontal = 3
theme_override_font_sizes/font_size = 28
[node name="RefreshButton" type="Button" parent="VBoxContainer/HeaderHBox"]
layout_mode = 3
text = "Refresh"
size_flags_horizontal = 0
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
layout_mode = 3
size_flags_horizontal = 3
size_flags_vertical = 3
horizontal_mode = 2
vertical_mode = 2
[node name="WorldList" type="VBoxContainer" parent="VBoxContainer/ScrollContainer"]
layout_mode = 3
size_flags_horizontal = 3
theme_override_constants/separation = 8
[node name="LoadingLabel" type="Label" parent="VBoxContainer"]
layout_mode = 3
text = "Loading worlds..."
visible = false
horizontal_alignment = 1
theme_override_font_sizes/font_size = 18
[node name="ErrorLabel" type="Label" parent="VBoxContainer"]
layout_mode = 3
text = ""
visible = false
horizontal_alignment = 1
theme_override_font_sizes/font_size = 18
[node name="EmptyLabel" type="Label" parent="VBoxContainer"]
layout_mode = 3
text = ""
visible = false
horizontal_alignment = 1
theme_override_font_sizes/font_size = 18
[connection signal="pressed" from="VBoxContainer/HeaderHBox/BackButton" to="." method="_on_back_button_pressed"]
[connection signal="pressed" from="VBoxContainer/HeaderHBox/RefreshButton" to="." method="_on_refresh_button_pressed"]
+120
View File
@@ -0,0 +1,120 @@
[gd_scene load_steps=1 format=3 uid="uid://c49a36fc7db_test_level"]
[sub_resource type="BoxShape3D" id="BoxShape3D_ground"]
size = Vector3(40, 1, 40)
[sub_resource type="BoxMesh" id="BoxMesh_ground"]
size = Vector3(40, 1, 40)
[sub_resource type="BoxShape3D" id="BoxShape3D_prop1"]
size = Vector3(2, 3, 2)
[sub_resource type="BoxMesh" id="BoxMesh_prop1"]
size = Vector3(2, 3, 2)
[sub_resource type="BoxShape3D" id="BoxShape3D_prop2"]
size = Vector3(3, 1, 3)
[sub_resource type="BoxMesh" id="BoxMesh_prop2"]
size = Vector3(3, 1, 3)
[sub_resource type="CylinderShape3D" id="CylinderShape3D_prop3"]
top_radius = 1.0
height = 4.0
[sub_resource type="CylinderMesh" id="CylinderMesh_prop3"]
top_radius = 1.0
bottom_radius = 1.0
height = 4.0
subdivisions_top_radius = 8
[sub_resource type="SphereShape3D" id="SphereShape3D_prop4"]
radius = 1.0
[sub_resource type="SphereMesh" id="SphereMesh_prop4"]
radius = 1.0
subdivisions_ring = 12
subdivisions_height = 12
[sub_resource type="SphereShape3D" id="SphereShape3D_prop5"]
radius = 0.5
[sub_resource type="SphereMesh" id="SphereMesh_prop5"]
radius = 0.5
subdivisions_ring = 8
subdivisions_height = 8
[sub_resource type="Environment" id="WorldEnvironment_env"]
background_mode = 1
background_color = Color(0.4, 0.6, 0.8, 1)
ambient_light_source = 1
ambient_light_energy = 0.4
ambient_light_sky_energy = 1.0
[node name="TestLevel" type="Node3D"]
[node name="Ground" type="StaticBody3D" parent="."]
position = Vector3(0, -0.5, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground"]
shape = SubResource("BoxShape3D_ground")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Ground"]
mesh = SubResource("BoxMesh_ground")
[node name="Props" type="Node3D" parent="."]
[node name="Prop1_Box" type="StaticBody3D" parent="Props"]
position = Vector3(8, 1.5, 8)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/Prop1_Box"]
shape = SubResource("BoxShape3D_prop1")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/Prop1_Box"]
mesh = SubResource("BoxMesh_prop1")
[node name="Prop2_Pedestal" type="StaticBody3D" parent="Props"]
position = Vector3(-8, 0.5, 6)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/Prop2_Pedestal"]
shape = SubResource("BoxShape3D_prop2")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/Prop2_Pedestal"]
mesh = SubResource("BoxMesh_prop2")
[node name="Prop3_Column" type="StaticBody3D" parent="Props"]
position = Vector3(6, 2.0, -8)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/Prop3_Column"]
shape = SubResource("CylinderShape3D_prop3")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/Prop3_Column"]
mesh = SubResource("CylinderMesh_prop3")
[node name="Prop4_Sphere" type="StaticBody3D" parent="Props"]
position = Vector3(-6, 1.0, -6)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/Prop4_Sphere"]
shape = SubResource("SphereShape3D_prop4")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/Prop4_Sphere"]
mesh = SubResource("SphereMesh_prop4")
[node name="Prop5_SmallSphere" type="StaticBody3D" parent="Props"]
position = Vector3(0, 0.5, 12)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Props/Prop5_SmallSphere"]
shape = SubResource("SphereShape3D_prop5")
[node name="MeshInstance3D" type="MeshInstance3D" parent="Props/Prop5_SmallSphere"]
mesh = SubResource("SphereMesh_prop5")
[node name="Sun" type="DirectionalLight3D" parent="."]
rotation = Vector3(-0.785398, 0, 0)
shadow_enabled = true
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("WorldEnvironment_env")
[node name="PlayerSpawn" type="Marker3D" parent="."]
position = Vector3(0, 1.5, 0)