feat: death message event
This commit is contained in:
@@ -133,4 +133,12 @@ void Export_Compatibility_API() {
|
|||||||
RemoteCall::exportAs("GMLIB_API", "getVersion_GMLIB", []() -> std::string {
|
RemoteCall::exportAs("GMLIB_API", "getVersion_GMLIB", []() -> std::string {
|
||||||
return GMLIB::Version::getLibVersionString();
|
return GMLIB::Version::getLibVersionString();
|
||||||
});
|
});
|
||||||
|
RemoteCall::exportAs(
|
||||||
|
"GMLIB_API",
|
||||||
|
"resourcePackTranslate",
|
||||||
|
[](std::string key, std::vector<std::string> params) -> std::string { return I18n::get(key, params); }
|
||||||
|
);
|
||||||
|
RemoteCall::exportAs("GMLIB_API", "chooseResourcePackI18nLanguage", [](std::string code) -> void {
|
||||||
|
I18n::chooseLanguage(code);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
@@ -132,6 +132,26 @@ void Export_Event_API() {
|
|||||||
);
|
);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
case do_hash("onDeathMessage"): {
|
||||||
|
auto Call = RemoteCall::importAs<
|
||||||
|
bool(std::string message, std::vector<std::string>, Actor * dead, Actor * killer, int cause)>(
|
||||||
|
eventName,
|
||||||
|
eventId
|
||||||
|
);
|
||||||
|
eventBus->emplaceListener<GMLIB::Event::EntityEvent::DeathMessageAfterEvent>(
|
||||||
|
[Call](GMLIB::Event::EntityEvent::DeathMessageAfterEvent& ev) {
|
||||||
|
auto msg = ev.getDeathMessage();
|
||||||
|
auto source = ev.getDamageSource();
|
||||||
|
Actor* entity = nullptr;
|
||||||
|
entity = GMLIB_Level::getLevel()->fetchEntity(source.getDamagingEntityUniqueID());
|
||||||
|
if (entity->getOwner()) {
|
||||||
|
entity = entity->getOwner();
|
||||||
|
}
|
||||||
|
Call(msg.first, msg.second, &ev.self(), entity, (int)source.getCause());
|
||||||
|
}
|
||||||
|
);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user