diff --git a/godot/scenes/player.tscn b/godot/scenes/local_player.tscn similarity index 100% rename from godot/scenes/player.tscn rename to godot/scenes/local_player.tscn diff --git a/godot/scenes/map0.tscn b/godot/scenes/map0.tscn index 973ead1..172b2e9 100644 --- a/godot/scenes/map0.tscn +++ b/godot/scenes/map0.tscn @@ -1,6 +1,6 @@ [gd_scene format=3 uid="uid://7iooamjot1tg"] -[ext_resource type="PackedScene" uid="uid://ct70bpbca8one" path="res://scenes/player.tscn" id="1_y4ph1"] +[ext_resource type="PackedScene" uid="uid://ct70bpbca8one" path="res://scenes/local_player.tscn" id="1_y4ph1"] [sub_resource type="ImageTexture" id="ImageTexture_3vyb7"] diff --git a/godot/scenes/remote_player.tscn b/godot/scenes/remote_player.tscn new file mode 100644 index 0000000..5abe115 --- /dev/null +++ b/godot/scenes/remote_player.tscn @@ -0,0 +1,18 @@ +[gd_scene format=3 uid="uid://kfxc0migw80o"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_1cgct"] + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1cgct"] + +[node name="player" type="RemotePlayer" unique_id=845968872] +move_speed = 5.0 + +[node name="mesh_instance_3d" type="MeshInstance3D" parent="." unique_id=700336478] +mesh = SubResource("CapsuleMesh_1cgct") + +[node name="collision_shape_3d" type="CollisionShape3D" parent="." unique_id=1110995513] +shape = SubResource("CapsuleShape3D_1cgct") + +[node name="camera_3d" type="Camera3D" parent="." unique_id=1773137418] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5391109, 0) +current = true diff --git a/rust/src/player.rs b/rust/src/player.rs index 47ba893..ae60bdb 100644 --- a/rust/src/player.rs +++ b/rust/src/player.rs @@ -152,3 +152,36 @@ impl LocalPlayer { } } } + +#[derive(GodotClass)] +#[class(base=CharacterBody3D, init)] +pub struct RemotePlayer { + #[export] + move_speed: f32, + + movement_dir: Vector3, + y_speed: f32, + + base: Base, +} + +impl Player for RemotePlayer { + fn get_y_speed(&self) -> f32 { + self.y_speed + } + + fn set_y_speed(&mut self, speed: f32) { + self.y_speed = speed; + } + + fn get_movement_dir(&self) -> Vector3 { + self.movement_dir + } + + fn get_move_speed(&self) -> f32 { + self.move_speed + } +} + +#[godot_api] +impl ICharacterBody3D for RemotePlayer {}