authority/modules/authority/player_character.cpp
2026-01-18 23:26:41 +01:00

36 lines
907 B
C++

#include "player_character.h"
#include "authority/nav_marker.h"
void PlayerCharacter::_bind_methods() {}
void PlayerCharacter::_notification(int what) {
if (Engine::get_singleton()->is_editor_hint()) {
return;
}
switch (what) {
default:
return;
case NOTIFICATION_ENTER_TREE:
instance = this;
return;
case NOTIFICATION_READY:
for (Variant var : find_children("*", "NavMarker")) {
if (NavMarker * marker{ cast_to<NavMarker>(var) }) {
this->party_follow_markers.push_back(marker);
}
}
ERR_FAIL_COND_EDMSG(this->party_follow_markers.size() < 4, "PlayerCharacter should have at least 4 follow NavMarkers for party members");
return;
case NOTIFICATION_EXIT_TREE:
if (instance == this) {
instance = nullptr;
}
return;
}
}
PlayerCharacter *PlayerCharacter::instance{ nullptr };
PlayerCharacter *PlayerCharacter::get_singleton() {
return instance;
}