diff options
| author | Anson Bridges <bridges.anson@gmail.com> | 2022-09-25 06:39:12 -0400 |
|---|---|---|
| committer | Anson Bridges <bridges.anson@gmail.com> | 2022-09-25 06:39:12 -0400 |
| commit | 7a1d857de96174dfa5a0fa40f8c14acbd2f651c2 (patch) | |
| tree | d52acaa4e89b0f8375326ea1aefd0105bb91cfc7 /src/player_controller/playercam.cpp | |
| parent | 62039380a67b6da396d1c8d745d2e2625ba988fc (diff) | |
weapons, viewmodels, some performance fixes
Diffstat (limited to 'src/player_controller/playercam.cpp')
| -rw-r--r-- | src/player_controller/playercam.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/player_controller/playercam.cpp b/src/player_controller/playercam.cpp index f321c09..dd78834 100644 --- a/src/player_controller/playercam.cpp +++ b/src/player_controller/playercam.cpp @@ -47,12 +47,17 @@ void PlayerCam::_input(const Ref<InputEvent> event) { } void PlayerCam::attach(Node* new_parent, String c_mode, String extra_path) { - if(get_parent() != nullptr) - get_parent()->remove_child(this); + if(get_parent() != nullptr) { + get_parent()->call_deferred("remove_child",this);} if(c_mode == "FIRSTPERSON") { head = (Spatial*)new_parent->find_node("Head", true, false); neck = (Spatial*)new_parent->find_node("Neck", true, false); arm = nullptr; mode = c_mode; } + else if (c_mode == "STATIC") { + head = nullptr; neck = nullptr; arm = nullptr; + mode = c_mode; + + } else if (c_mode == "THIRDPERSON") { head = (Spatial*)new_parent->find_node("Head", true, false); neck = (Spatial*)new_parent->find_node("Neck", true, false); arm = (SpringArm*)new_parent->find_node("SpringArm", true, false); mode = c_mode; @@ -64,7 +69,8 @@ void PlayerCam::attach(Node* new_parent, String c_mode, String extra_path) { else { head = nullptr; neck = nullptr; arm = nullptr; } - new_parent->get_node(NodePath(extra_path))->add_child(this); + add_exception(new_parent); + new_parent->get_node(NodePath(extra_path))->call_deferred("add_child",this); set_transform(Transform::IDENTITY); } |
