Added aura added, and removed signals.

This commit is contained in:
Relintai 2019-04-28 12:26:14 +02:00
parent 5e476306a2
commit d8c40b6b04
2 changed files with 31 additions and 0 deletions

View File

@ -1804,13 +1804,37 @@ void Entity::just_remove_aura(int auraId) {
*/
}
void Entity::remove_aura(Ref<AuraData> data) {
for (int i = 0; i < _s_auras->size(); i++) {
if (_s_auras->get(i) == data) {
_s_auras->remove(i);
break;
}
}
for (int i = 0; i < _c_auras->size(); i++) {
if (_c_auras->get(i) == data) {
_c_auras->remove(i);
break;
}
}
emit_signal("saura_removed", data);
emit_signal("caura_removed", data);
}
void Entity::add_aura(Ref<AuraData> data) {
son_before_aura_applied(data);
data->set_owner(this);
_s_auras->push_back(data);
_c_auras->push_back(data);
son_after_aura_applied(data);
emit_signal("saura_added", data);
emit_signal("caura_added", data);
}
void Entity::remove_auras_with_group(int auraGroup) {
@ -3444,6 +3468,12 @@ void Entity::_bind_methods() {
ADD_SIGNAL(MethodInfo("scharacter_class_changed", PropertyInfo(Variant::OBJECT, "Entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ADD_SIGNAL(MethodInfo("ccharacter_class_changed", PropertyInfo(Variant::OBJECT, "Entity", PROPERTY_HINT_RESOURCE_TYPE, "Entity")));
ADD_SIGNAL(MethodInfo("saura_added", PropertyInfo(Variant::OBJECT, "aura_data", PROPERTY_HINT_RESOURCE_TYPE, "AuraData")));
ADD_SIGNAL(MethodInfo("caura_added", PropertyInfo(Variant::OBJECT, "aura_data", PROPERTY_HINT_RESOURCE_TYPE, "AuraData")));
ADD_SIGNAL(MethodInfo("saura_removed", PropertyInfo(Variant::OBJECT, "aura_data", PROPERTY_HINT_RESOURCE_TYPE, "AuraData")));
ADD_SIGNAL(MethodInfo("caura_removed", PropertyInfo(Variant::OBJECT, "aura_data", PROPERTY_HINT_RESOURCE_TYPE, "AuraData")));
//// SpellCastSignals ////
ADD_SIGNAL(MethodInfo("scast_started", PropertyInfo(Variant::OBJECT, "spell_cast_info", PROPERTY_HINT_RESOURCE_TYPE, "SpellCastInfo")));

View File

@ -326,6 +326,7 @@ public:
//rename to remove_aura()
virtual void just_remove_aura(int auraId);
virtual void remove_aura(Ref<AuraData> data);
virtual void add_aura(Ref<AuraData> data);
virtual void remove_auras_with_group(int auraGroup);
virtual void refresh_aura(int auraId, float time);