36 lines
907 B
C++
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;
|
|
}
|