Fix players spawning on top of the ball

This commit is contained in:
Sofia 2026-08-03 20:05:01 +03:00
parent d28ba31d74
commit 72c74bbedb

View File

@ -57,21 +57,21 @@ impl Map {
if let Some(local_player) = &GameManager::singleton().bind().local_player {
let mut node = local_player.instantiate_as::<LocalPlayer>();
node.bind_mut().player_id = Some(player_id);
self.base_mut().add_child(&node);
if let Some(transform) = transform {
node.bind_mut()
.base_mut()
.set_global_position(transform.location.into());
.set_position(transform.location.into());
node.bind_mut()
.base_mut()
.set_global_rotation(transform.rotation.into());
.set_rotation(transform.rotation.into());
} else {
if let Some(spawner) = &self.spawners.get(team as usize) {
node.bind_mut()
.base_mut()
.set_global_position(spawner.get_global_position());
.set_position(spawner.get_position());
}
}
self.base_mut().add_child(&node);
Some(node.into_dyn::<dyn IPlayer>().upcast())
} else {
None
@ -92,21 +92,21 @@ impl Map {
});
}
self.base_mut().add_child(&node);
if let Some(transform) = transform {
node.bind_mut()
.base_mut()
.set_global_position(transform.location.into());
.set_position(transform.location.into());
node.bind_mut()
.base_mut()
.set_global_rotation(transform.rotation.into());
.set_rotation(transform.rotation.into());
} else {
if let Some(spawner) = &self.spawners.get(team as usize) {
node.bind_mut()
.base_mut()
.set_global_position(spawner.get_global_position());
.set_position(spawner.get_position());
}
}
self.base_mut().add_child(&node);
Some(node.into_dyn::<dyn IPlayer>().upcast())
} else {
None
@ -155,10 +155,10 @@ impl Map {
ball.bind_mut().dropper = player_id;
self.base_mut().add_child(&ball);
if let Some(transform) = transform {
ball.set_global_position(transform.location.into());
ball.set_global_rotation(transform.rotation.into());
ball.set_position(transform.location.into());
ball.set_rotation(transform.rotation.into());
} else {
ball.set_global_position(ball_spawner.get_global_position());
ball.set_position(ball_spawner.get_position());
}
if let Some(velocity) = velocity {
ball.set_linear_velocity(velocity.into());