Add collaborative surface drawing

This commit is contained in:
Alexander Sellite 2026-08-01 22:55:39 -04:00
parent 6b7ef4c11b
commit b92c55562d
28 changed files with 3504 additions and 2 deletions

View file

@ -58,6 +58,9 @@ const NetworkItemUseServiceType = preload(
const NetworkFishShowcaseServiceType = preload(
"res://network/network_fish_showcase_service.gd"
)
const NetworkSurfaceDrawingServiceType = preload(
"res://network/network_surface_drawing_service.gd"
)
const NetworkChatServiceType = preload(
"res://network/network_chat_service.gd"
)
@ -130,6 +133,9 @@ const SHOP_PATTERN_SCALE: float = 1.75
@onready var _network_fish_showcase: NetworkFishShowcaseServiceType = (
%NetworkFishShowcaseService
)
@onready var _network_surface_drawing: NetworkSurfaceDrawingServiceType = (
%NetworkSurfaceDrawingService
)
@onready var _network_chat: NetworkChatServiceType = %NetworkChatService
@onready var _network_mail: NetworkMailServiceType = %NetworkMailService
@onready var _network_player_list: NetworkPlayerListService = %NetworkPlayerListService
@ -141,6 +147,7 @@ const SHOP_PATTERN_SCALE: float = 1.75
%NetworkProfileService
)
@onready var _players_root: Node3D = $Players
@onready var _surface_drawings_root: Node3D = $SurfaceDrawings
@onready var _title_background: ColorRect = %TitleBackground
@onready var _player_menu_backdrop: ColorRect = %PlayerMenuBackdrop
@onready var _shop_backdrop: ColorRect = %ShopBackdrop
@ -351,6 +358,16 @@ func _initialize_after_data_root() -> void:
_player.inventory,
_player.hotbar,
)
_network_surface_drawing.setup(
_network_session,
_player_spawn_service,
_relationships,
_player,
_surface_drawings_root,
)
_network_player_list.set_surface_drawing_service(
_network_surface_drawing
)
_network_chat.setup(_network_session)
_network_fishing.setup(
_network_session,
@ -436,6 +453,7 @@ func _initialize_after_data_root() -> void:
_network_profile_service,
_network_player_list,
_settings_manager,
_network_surface_drawing,
)
_game_ui.setup_data_and_identity(
_data_root,

View file

@ -45,6 +45,7 @@
[ext_resource type="Texture2D" uid="uid://b6xws1d2dnbnn" path="res://art/patterns/pattern_moneyfish.png" id="43_shop_pattern"]
[ext_resource type="PackedScene" uid="uid://w7n4gjqq1juc" path="res://art/exported/characters/base/netfishing_base_character.glb" id="44_4pcu1"]
[ext_resource type="Script" path="res://network/network_fish_showcase_service.gd" id="45_fish_showcase"]
[ext_resource type="Script" path="res://network/network_surface_drawing_service.gd" id="46_surface_drawing"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_title_water_native"]
shader = ExtResource("40_title_water")
@ -188,6 +189,10 @@ script = ExtResource("24_network_item")
unique_name_in_owner = true
script = ExtResource("45_fish_showcase")
[node name="NetworkSurfaceDrawingService" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource("46_surface_drawing")
[node name="NetworkChatService" type="Node" parent="." unique_id=1956959711]
unique_name_in_owner = true
script = ExtResource("25_network_chat")
@ -209,6 +214,8 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0024132729, 0, -0.00093126
[node name="Players" type="Node3D" parent="." unique_id=550630144]
[node name="SurfaceDrawings" type="Node3D" parent="."]
[node name="Player" parent="Players" unique_id=485429332 instance=ExtResource("2_player")]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 16)