diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..78e054a --- /dev/null +++ b/.tool-versions @@ -0,0 +1,2 @@ +golang 1.24.1 +rust 1.85.0 diff --git a/godot/src/scenes/player/aiming_modifier.gd b/bak/aiming_modifier.gd similarity index 100% rename from godot/src/scenes/player/aiming_modifier.gd rename to bak/aiming_modifier.gd diff --git a/godot/src/scenes/player/aiming_modifier.gd.uid b/bak/aiming_modifier.gd.uid similarity index 100% rename from godot/src/scenes/player/aiming_modifier.gd.uid rename to bak/aiming_modifier.gd.uid diff --git a/godot/src/scenes/player/body_follows_head_modifier.gd b/bak/body_follows_head_modifier.gd similarity index 100% rename from godot/src/scenes/player/body_follows_head_modifier.gd rename to bak/body_follows_head_modifier.gd diff --git a/godot/src/scenes/player/body_follows_head_modifier.gd.uid b/bak/body_follows_head_modifier.gd.uid similarity index 100% rename from godot/src/scenes/player/body_follows_head_modifier.gd.uid rename to bak/body_follows_head_modifier.gd.uid diff --git a/godot/src/scenes/player/look_forward_modifier.gd b/bak/look_forward_modifier.gd similarity index 100% rename from godot/src/scenes/player/look_forward_modifier.gd rename to bak/look_forward_modifier.gd diff --git a/godot/src/scenes/player/look_forward_modifier.gd.uid b/bak/look_forward_modifier.gd.uid similarity index 100% rename from godot/src/scenes/player/look_forward_modifier.gd.uid rename to bak/look_forward_modifier.gd.uid diff --git a/godot/src/scenes/player/player.gd b/bak/player.gd similarity index 100% rename from godot/src/scenes/player/player.gd rename to bak/player.gd diff --git a/godot/src/scenes/player/player.gd.uid b/bak/player.gd.uid similarity index 100% rename from godot/src/scenes/player/player.gd.uid rename to bak/player.gd.uid diff --git a/godot/src/scenes/player/player.tscn b/bak/player.tscn similarity index 100% rename from godot/src/scenes/player/player.tscn rename to bak/player.tscn diff --git a/godot/src/scenes/player/player_movement.gd b/bak/player_movement.gd similarity index 100% rename from godot/src/scenes/player/player_movement.gd rename to bak/player_movement.gd diff --git a/godot/src/scenes/player/player_movement.gd.uid b/bak/player_movement.gd.uid similarity index 100% rename from godot/src/scenes/player/player_movement.gd.uid rename to bak/player_movement.gd.uid diff --git a/godot/src/scenes/player/shooting_modifier.gd b/bak/shooting_modifier.gd similarity index 100% rename from godot/src/scenes/player/shooting_modifier.gd rename to bak/shooting_modifier.gd diff --git a/godot/src/scenes/player/shooting_modifier.gd.uid b/bak/shooting_modifier.gd.uid similarity index 100% rename from godot/src/scenes/player/shooting_modifier.gd.uid rename to bak/shooting_modifier.gd.uid diff --git a/godot/src/scenes/player/visuals_controller.gd b/bak/visuals_controller.gd similarity index 100% rename from godot/src/scenes/player/visuals_controller.gd rename to bak/visuals_controller.gd diff --git a/godot/src/scenes/player/visuals_controller.gd.uid b/bak/visuals_controller.gd.uid similarity index 100% rename from godot/src/scenes/player/visuals_controller.gd.uid rename to bak/visuals_controller.gd.uid diff --git a/godot/src/scenes/levels/base/client_space/client_space.gd b/godot/src/scenes/levels/base/client_space/client_space.gd index 52ecb8a..8a6ea2e 100644 --- a/godot/src/scenes/levels/base/client_space/client_space.gd +++ b/godot/src/scenes/levels/base/client_space/client_space.gd @@ -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. diff --git a/godot/src/scenes/levels/base/map_controller.gd b/godot/src/scenes/levels/base/map_controller.gd index a8017d1..bfebe94 100644 --- a/godot/src/scenes/levels/base/map_controller.gd +++ b/godot/src/scenes/levels/base/map_controller.gd @@ -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 diff --git a/godot/src/scenes/player/character/character.tscn b/godot/src/scenes/player/character/character.tscn index 508f526..a2cb183 100644 --- a/godot/src/scenes/player/character/character.tscn +++ b/godot/src/scenes/player/character/character.tscn @@ -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) diff --git a/godot/src/scenes/player/player_controller/player_controller.gd b/godot/src/scenes/player/player_controller/player_controller.gd index 4bf3ddb..f079696 100644 --- a/godot/src/scenes/player/player_controller/player_controller.gd +++ b/godot/src/scenes/player/player_controller/player_controller.gd @@ -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 diff --git a/godot/src/scenes/player/player_controller/player_controller.tscn b/godot/src/scenes/player/player_controller/player_controller.tscn index c788be7..4c2aa04 100644 --- a/godot/src/scenes/player/player_controller/player_controller.tscn +++ b/godot/src/scenes/player/player_controller/player_controller.tscn @@ -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")]