Trying something that will probably never happen

Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
This commit is contained in:
Nikolai Rodionov 2025-05-31 23:39:45 +02:00
parent 77d37caeb2
commit f17726240d
Signed by: allanger
GPG Key ID: 09F8B434D0FDD99B
21 changed files with 16 additions and 10 deletions

2
.tool-versions Normal file
View File

@ -0,0 +1,2 @@
golang 1.24.1
rust 1.85.0

View File

@ -2,6 +2,7 @@
# -- of the models that are managed by the client and not by the server
class_name ClientSpace extends Node3D
@export var player_server_node: ServerSideCharacter = null
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.

View File

@ -3,6 +3,7 @@ class_name MapController extends Node3D
@onready var spawn_controller: SpawnController = $SpawnLocations
var player_space: Node3D = null
var player_controller: PlayerNode = null
var client_space: ClientSpace = null
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
@ -15,6 +16,7 @@ func _ready() -> void:
player_space.name = "PlayerSpace"
add_child(player_space)
spawn_controller.player_space = player_space
client_space.player_server_node = player_space.find_child(str(multiplayer.get_unique_id()))
if multiplayer.is_server():
pass
else:
@ -29,21 +31,20 @@ func request_state():
spawn_controller.spawn_player(player_casted.player_id, player_casted.global_transform)
func add_client_space() -> Error :
return load_scene("levels/base/client_space/client_space.tscn")
func load_scene(rel_path: String) -> Error :
var path := consts.SCENES_PATH + rel_path
var path := consts.SCENES_PATH + "levels/base/client_space/client_space.tscn"
logger.info("loading scene from " + path)
if not ResourceLoader.exists(path):
logger.error("scene " + path + " doesn't exist")
return ERR_DOES_NOT_EXIST
var scene: PackedScene = ResourceLoader.load(path)
if scene.can_instantiate():
# -- TODO: May we should case to a real type instead
var node: Variant = scene.instantiate()
player_controller = node as PlayerNode
var node: ClientSpace = scene.instantiate()
#node.player_server_id = multiplayer.get_unique_id()
logger.info("loading scene: " + path)
add_child(node)
client_space = node
else:
logger.error("can't initialize")
return ERR_CANT_OPEN

View File

@ -11,4 +11,5 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0)
shape = SubResource("CapsuleShape3D_g8geq")
[node name="CameraMountPoint" type="Node3D" parent="."]
editor_description = "It is used for rotating the real camera mount"
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.167045, 1.31595, 0)

View File

@ -19,6 +19,8 @@ var is_connected_to_server = false
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
set_multiplayer_authority(multiplayer.get_unique_id())
# -- We need to get the position of the controller node on the server
camera_mount.global_transform = camera_mount_point.global_transform
camera_gt_prev = camera_mount.global_transform
camera_gt_cur = camera_mount.global_transform
@ -81,8 +83,8 @@ func _physics_process(delta: float) -> void:
func _process(delta: float) -> void:
# -- TODO: Rewrite it
if not is_connected_to_server:
var map_controller: MapController = find_parent("Map")
#if not is_connected_to_server:
#var map_controller: MapController = find_parent("Map")
if update_camera:
update_camera_transform()
update_camera = false

View File

@ -8,8 +8,7 @@
script = ExtResource("1_v31xn")
[node name="CameraMount" parent="." instance=ExtResource("2_csswn")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.80384, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.47638, -0.25714)
camera_name = "PlayerCamera"
input_camera = true
[node name="Character" parent="." instance=ExtResource("1_1fx4c")]