add entity 'on_render' event

This commit is contained in:
MihailRis
2024-07-07 22:59:15 +03:00
parent d099b294a2
commit 0d230f2449
5 changed files with 32 additions and 8 deletions
+7
View File
@@ -422,6 +422,13 @@ void scripting::on_entities_update() {
lua::pop(L);
}
void scripting::on_entities_render() {
auto L = lua::get_main_thread();
lua::get_from(L, STDCOMP, "render", true);
lua::call_nothrow(L, 0, 0);
lua::pop(L);
}
void scripting::on_ui_open(
UiDocument* layout,
std::vector<dynamic::Value> args
+1
View File
@@ -89,6 +89,7 @@ namespace scripting {
bool on_entity_fall(const Entity& entity);
bool on_entity_save(const Entity& entity);
void on_entities_update();
void on_entities_render();
void on_trigger_enter(const Entity& entity, size_t index, entityid_t oid);
void on_trigger_exit(const Entity& entity, size_t index, entityid_t oid);
+5 -6
View File
@@ -311,12 +311,6 @@ void Entities::updatePhysics(float delta) {
void Entities::update() {
scripting::on_entities_update();
auto view = registry.view<Transform>();
for (auto [entity, transform] : view.each()) {
if (transform.dirty) {
transform.refresh();
}
}
}
void Entities::renderDebug(LineBatch& batch, const Frustum& frustum) {
@@ -343,8 +337,13 @@ void Entities::renderDebug(LineBatch& batch, const Frustum& frustum) {
}
void Entities::render(Assets* assets, ModelBatch& batch, const Frustum& frustum) {
scripting::on_entities_render();
auto view = registry.view<Transform, rigging::Rig>();
for (auto [entity, transform, rig] : view.each()) {
if (transform.dirty) {
transform.refresh();
}
const auto& pos = transform.pos;
const auto& size = transform.size;
if (frustum.isBoxVisible(pos-size, pos+size)) {