Add player profile and appearance foundation

This commit is contained in:
Alexander Sellite 2026-07-29 21:31:42 -04:00
parent e53ad1ac38
commit 0b5b78a553
25 changed files with 1424 additions and 76 deletions

View file

@ -64,6 +64,12 @@ const NetworkMailServiceType = preload(
const PlayerAssetReservationServiceType = preload(
"res://progression/player_asset_reservation_service.gd"
)
const PlayerAppearanceStoreType = preload(
"res://progression/player_appearance_store.gd"
)
const NetworkProfileServiceType = preload(
"res://network/network_profile_service.gd"
)
const TITLE_MUSIC_SILENCE_DB: float = -80.0
@ -111,6 +117,10 @@ const TITLE_MUSIC_SILENCE_DB: float = -80.0
@onready var _asset_reservations: PlayerAssetReservationServiceType = (
%PlayerAssetReservationService
)
@onready var _appearance_store: PlayerAppearanceStoreType = %PlayerAppearanceStore
@onready var _network_profile_service: NetworkProfileServiceType = (
%NetworkProfileService
)
@onready var _players_root: Node3D = $Players
var _gameplay_started: bool = false
@ -137,6 +147,15 @@ func _ready() -> void:
_saved_servers,
_player_spawn_service
)
_network_profile_service.setup(
_network_session,
_network_profile,
_appearance_store,
_player_spawn_service,
)
_network_session.set_local_appearance_snapshot(
_appearance_store.get_snapshot()
)
_network_session.join_authenticated.connect(
_on_network_join_authenticated
)
@ -271,7 +290,8 @@ func _ready() -> void:
_network_profile,
_player_spawn_service,
_network_mail,
_asset_reservations
_asset_reservations,
_network_profile_service
)
_water_recovery.setup(
_player,

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=28 format=3]
[gd_scene load_steps=30 format=3]
[ext_resource type="PackedScene" path="res://world/test_world.tscn" id="1_world"]
[ext_resource type="PackedScene" path="res://player/player.tscn" id="2_player"]
@ -27,6 +27,8 @@
[ext_resource type="Script" path="res://network/network_chat_service.gd" id="25_network_chat"]
[ext_resource type="Script" path="res://network/network_mail_service.gd" id="26_network_mail"]
[ext_resource type="Script" path="res://progression/player_asset_reservation_service.gd" id="27_reservations"]
[ext_resource type="Script" path="res://progression/player_appearance_store.gd" id="28_appearance"]
[ext_resource type="Script" path="res://network/network_profile_service.gd" id="29_profile_service"]
[node name="Main" type="Node3D"]
script = ExtResource("3_main")
@ -43,6 +45,14 @@ script = ExtResource("17_network_session")
unique_name_in_owner = true
script = ExtResource("18_network_profile")
[node name="PlayerAppearanceStore" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("28_appearance")
[node name="NetworkProfileService" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("29_profile_service")
[node name="SavedServerStore" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("19_saved_servers")