diff --git a/godot/scenes/player/menu_player.tscn b/godot/scenes/player/menu_player.tscn index 38e1168..c875952 100644 --- a/godot/scenes/player/menu_player.tscn +++ b/godot/scenes/player/menu_player.tscn @@ -2,8 +2,14 @@ [ext_resource type="PackedScene" uid="uid://bod6b3befmyt5" path="res://scenes/player/soldier_m.tscn" id="1_pgypt"] -[node name="menu_player" type="MenuPlayer" unique_id=928718358 node_paths=PackedStringArray("mesh")] +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_1cgct"] + +[node name="menu_player" type="MenuPlayer" unique_id=724765640 node_paths=PackedStringArray("mesh")] mesh = NodePath("soldier_m") [node name="soldier_m" parent="." unique_id=281995630 instance=ExtResource("1_pgypt")] transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0) + +[node name="collision_shape_3d" type="CollisionShape3D" parent="." unique_id=1493078812] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.995473, 0) +shape = SubResource("CapsuleShape3D_1cgct") diff --git a/rust/src/ui/menu_player.rs b/rust/src/ui/menu_player.rs index 7a29d3b..3616b0a 100644 --- a/rust/src/ui/menu_player.rs +++ b/rust/src/ui/menu_player.rs @@ -1,21 +1,28 @@ -use godot::prelude::*; +use godot::{ + classes::{CharacterBody3D, ICharacterBody3D}, + prelude::*, +}; use crate::player::soldier_mesh::SoldierMesh; #[derive(GodotClass)] -#[class(base=Node3D, init)] +#[class(base=CharacterBody3D, init)] pub struct MenuPlayer { #[export] mesh: Option>, - base: Base, + base: Base, } #[godot_api] -impl INode3D for MenuPlayer { +impl ICharacterBody3D for MenuPlayer { fn ready(&mut self) { if let Some(mesh) = &mut self.mesh { mesh.bind_mut().spawn_raygun(); } } + + fn physics_process(&mut self, _: f64) { + self.base_mut().move_and_slide(); + } }