20 lines
745 B
C++
20 lines
745 B
C++
#include "destructable_object.h"
|
|
#include "break_utopia/level_status.h"
|
|
#include "break_utopia/macros.h"
|
|
#include "core/object/object.h"
|
|
#include "scene/resources/packed_scene.h"
|
|
|
|
void DestructableObject::_bind_methods() {
|
|
BIND_HPROPERTY(Variant::OBJECT, destroyed_object, PROPERTY_HINT_RESOURCE_TYPE, "PackedScene");
|
|
}
|
|
|
|
void DestructableObject::damaged(int level) {
|
|
if (this->destroyed_object.is_valid()) {
|
|
Node3D *instance{ cast_to<Node3D>(this->destroyed_object->instantiate()) };
|
|
instance->set_position(get_global_position());
|
|
instance->set_rotation(get_global_rotation());
|
|
get_tree()->get_current_scene()->add_child(instance);
|
|
}
|
|
get_owner()->queue_free();
|
|
LevelStatus::get_instance()->notify_object_destroyed(get_defense());
|
|
}
|