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 {
|
||||
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;
|
||||
}
|
||||
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:
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user