add entity 'on_render' event
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
Reference in New Issue
Block a user