diff --git a/src/tunnels_player.cpp b/src/tunnels_player.cpp index e277114..a053525 100644 --- a/src/tunnels_player.cpp +++ b/src/tunnels_player.cpp @@ -115,6 +115,11 @@ Node *TunnelsPlayer::to_node() { return Object::cast_to(this); } +void TunnelsPlayer::spawn_at_position(Transform3D const &at) { + this->character->set_global_transform(at); + this->set_global_basis(at.get_basis()); +} + void TunnelsPlayer::horizontal_move_input(Ref event, float value) { this->move_input.x = value; } @@ -196,6 +201,7 @@ void TunnelsPlayer::initialize_character() { return; if(player_scene->get_state()->get_node_type(0) != StringName("CharacterActor")) return; + UtilityFunctions::print("initialize_character pos: ", this->get_global_position()); // instantiate and store the player character this->character = Object::cast_to(player_scene->instantiate()); this->get_parent()->add_child(this->character); diff --git a/src/tunnels_player.hpp b/src/tunnels_player.hpp index 415edd7..86c15f0 100644 --- a/src/tunnels_player.hpp +++ b/src/tunnels_player.hpp @@ -1,6 +1,7 @@ #ifndef TUNNELS_PLAYER_HPP #define TUNNELS_PLAYER_HPP +#include "godot_cpp/variant/transform3d.hpp" #include "utils/player.hpp" #include "utils/player_input.hpp" #include @@ -32,6 +33,7 @@ public: virtual void setup_player_input(PlayerInput *input) override; virtual Node *to_node() override; + virtual void spawn_at_position(Transform3D const &at) override; void horizontal_move_input(Ref event, float value); void vertical_move_input(Ref event, float value); diff --git a/src/utils b/src/utils index 78e6bb2..90d8d62 160000 --- a/src/utils +++ b/src/utils @@ -1 +1 @@ -Subproject commit 78e6bb2cf18aebf3edd72907f982c811caac9eea +Subproject commit 90d8d626a011b10560ec794ee0a06a802ffa940a