31 lines
963 B
C++
31 lines
963 B
C++
|
#include "level.hpp"
|
||
|
#include "entrance.hpp"
|
||
|
#include "godot_cpp/variant/utility_functions.hpp"
|
||
|
|
||
|
namespace godot {
|
||
|
void Level::_bind_methods() {}
|
||
|
|
||
|
Transform3D Level::get_entrance(String entranceName) {
|
||
|
if(entrances.has(entranceName)) {
|
||
|
Node3D *entrance = Object::cast_to<Node3D>(this->entrances[entranceName]);
|
||
|
return entrance->get_global_transform();
|
||
|
} else {
|
||
|
return this->get_global_transform();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void Level::add_entrance(Entrance *entrance) {
|
||
|
String key = entrance->get_name();
|
||
|
if(this->entrances.has(key))
|
||
|
UtilityFunctions::push_error("Attempt to register entrance ", key, " with duplicate key");
|
||
|
this->entrances[key] = entrance;
|
||
|
}
|
||
|
|
||
|
void Level::remove_entrance(Entrance *entrance) {
|
||
|
String key = entrance->get_name();
|
||
|
if(!this->entrances.has(key))
|
||
|
UtilityFunctions::push_error("Attempt to deregister entrance ", key, " without registering it");
|
||
|
this->entrances.erase(key);
|
||
|
}
|
||
|
}
|