feat: added get_default_entrance
parent
4312d6f934
commit
2fedbb07b3
|
@ -1,20 +1,30 @@
|
|||
#include "level.hpp"
|
||||
#include "entrance.hpp"
|
||||
#include "godot_cpp/variant/transform3d.hpp"
|
||||
#include "godot_cpp/variant/utility_functions.hpp"
|
||||
|
||||
namespace godot {
|
||||
void Level::_bind_methods() {}
|
||||
|
||||
Transform3D Level::get_entrance(String const &entranceName) {
|
||||
if (entrances.has(entranceName)) {
|
||||
Transform3D Level::get_entrance(String const& entranceName) const {
|
||||
if (entranceName.is_empty()) {
|
||||
return this->get_global_transform();
|
||||
} else if (entrances.has(entranceName)) {
|
||||
Node3D* entrance =
|
||||
Object::cast_to<Node3D>(this->entrances[entranceName]);
|
||||
return entrance->get_global_transform();
|
||||
} else {
|
||||
return this->get_global_transform();
|
||||
return Transform3D();
|
||||
}
|
||||
}
|
||||
|
||||
String Level::get_default_entrance() const {
|
||||
if (entrances.is_empty())
|
||||
return "";
|
||||
else
|
||||
return entrances.keys()[0];
|
||||
}
|
||||
|
||||
void Level::add_entrance(Entrance* entrance) {
|
||||
String key = entrance->get_name();
|
||||
if (this->entrances.has(key))
|
||||
|
|
|
@ -12,13 +12,16 @@ class Entrance;
|
|||
class Level : public Node3D {
|
||||
GDCLASS(Level, Node3D)
|
||||
static void _bind_methods();
|
||||
|
||||
protected:
|
||||
Dictionary entrances{};
|
||||
|
||||
public:
|
||||
Transform3D get_entrance(String const &entranceName);
|
||||
Transform3D get_entrance(String const& entranceName) const;
|
||||
String get_default_entrance() const;
|
||||
void add_entrance(Entrance* entrance);
|
||||
void remove_entrance(Entrance* entrance);
|
||||
};
|
||||
}
|
||||
} // namespace godot
|
||||
|
||||
#endif // !LEVEL_HPP
|
||||
|
|
Loading…
Reference in New Issue