Add session mail and player gifts

This commit is contained in:
Alexander Sellite 2026-07-29 20:10:44 -04:00
parent 5dda74c9e4
commit e53ad1ac38
19 changed files with 1929 additions and 22 deletions

View file

@ -58,6 +58,12 @@ const NetworkItemUseServiceType = preload(
const NetworkChatServiceType = preload(
"res://network/network_chat_service.gd"
)
const NetworkMailServiceType = preload(
"res://network/network_mail_service.gd"
)
const PlayerAssetReservationServiceType = preload(
"res://progression/player_asset_reservation_service.gd"
)
const TITLE_MUSIC_SILENCE_DB: float = -80.0
@ -101,6 +107,10 @@ const TITLE_MUSIC_SILENCE_DB: float = -80.0
%NetworkItemUseService
)
@onready var _network_chat: NetworkChatServiceType = %NetworkChatService
@onready var _network_mail: NetworkMailServiceType = %NetworkMailService
@onready var _asset_reservations: PlayerAssetReservationServiceType = (
%PlayerAssetReservationService
)
@onready var _players_root: Node3D = $Players
var _gameplay_started: bool = false
@ -160,13 +170,29 @@ func _ready() -> void:
_player.cooler_capacity
)
_save_manager.set_autosave_enabled(false)
_asset_reservations.setup(
_player.wallet, _player.inventory, _player.bag, item_catalog
)
_network_mail.setup(
_network_session,
_asset_reservations,
_player.wallet,
_player.inventory,
_player.bag,
_player.collection_log,
_player.cooler_capacity,
item_catalog,
fish_catalog,
_save_manager
)
_network_item_use.setup(
_network_session,
_player_spawn_service,
item_catalog,
_player.bag,
_player.item_effects,
_save_manager
_save_manager,
_asset_reservations
)
_network_chat.setup(_network_session)
_network_fishing.setup(
@ -191,7 +217,8 @@ func _ready() -> void:
_save_manager,
fish_catalog,
pelican_buyer_profile,
_test_world.get_pelican_convenience_landmark()
_test_world.get_pelican_convenience_landmark(),
_asset_reservations
)
_network_shop.setup(
_network_session,
@ -203,7 +230,8 @@ func _ready() -> void:
item_catalog,
_player.fishing_upgrades,
_player.cooler_capacity,
_save_manager
_save_manager,
_asset_reservations
)
_fishing_spot.setup(
_player,
@ -241,7 +269,9 @@ func _ready() -> void:
_network_shop,
_network_chat,
_network_profile,
_player_spawn_service
_player_spawn_service,
_network_mail,
_asset_reservations
)
_water_recovery.setup(
_player,

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=26 format=3]
[gd_scene load_steps=28 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"]
@ -25,6 +25,8 @@
[ext_resource type="Script" path="res://network/network_shop_service.gd" id="23_network_shop"]
[ext_resource type="Script" path="res://network/network_item_use_service.gd" id="24_network_item"]
[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"]
[node name="Main" type="Node3D"]
script = ExtResource("3_main")
@ -69,6 +71,14 @@ script = ExtResource("24_network_item")
unique_name_in_owner = true
script = ExtResource("25_network_chat")
[node name="PlayerAssetReservationService" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("27_reservations")
[node name="NetworkMailService" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("26_network_mail")
[node name="TestWorld" parent="." instance=ExtResource("1_world")]
[node name="Players" type="Node3D" parent="."]