#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(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()); }