From 5f20f7dd1cb732f5cf6e0c5d22190bf08b76fbba Mon Sep 17 00:00:00 2001 From: Daniel Bross Date: Sun, 10 Nov 2024 22:13:17 +0100 Subject: [PATCH] Changes --- core/scene.jai | 5 +++++ editor/editor_ui.jai | 2 ++ metaprogram.jai | 2 +- module.jai | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/core/scene.jai b/core/scene.jai index 134c232..817a8e3 100644 --- a/core/scene.jai +++ b/core/scene.jai @@ -49,6 +49,11 @@ visitor :: (info : *File_Visit_Info, files: *[..] Entity_File_Info) { load_scene :: (name: string) -> *Scene { scene := create_scene(name, 1024); + + if engine.procs.on_scene_loaded != null { + engine.procs.on_pre_scene_loaded(scene, engine.mode); + } + path := tprint("../assets/scenes/%", name); files : [..] Entity_File_Info; diff --git a/editor/editor_ui.jai b/editor/editor_ui.jai index 11d3e2f..836eaa5 100644 --- a/editor/editor_ui.jai +++ b/editor/editor_ui.jai @@ -100,6 +100,8 @@ editor_ui :: () { if engine.current_scene != null { for engine.current_scene.entities { + if it.flags & .DELETED continue; + ui_set_next_padding(20); clicked := false; selected := array_find(engine.editor.selected_entities, it); diff --git a/metaprogram.jai b/metaprogram.jai index 986ec94..ea54f35 100644 --- a/metaprogram.jai +++ b/metaprogram.jai @@ -333,7 +333,7 @@ generate_code :: (w: Workspace) { builder: String_Builder; for entity_type_names { - print_to_builder(*builder, "\tcase \"%1\"; p, locator := find_and_occupy_empty_slot(*scene.by_type._%1); p._locator = locator; e = p; register_entity(scene, p, id); init_entity(p); deserialize_entity(scene, lines, cast(*%1)e); update_matrix(*e.transform);\n", it); + print_to_builder(*builder, "\tcase \"%1\"; p, locator := find_and_occupy_empty_slot(*scene.by_type._%1); p._locator = locator; e = p; register_entity(scene, p, id); deserialize_entity(scene, lines, cast(*%1)e); init_entity(p); update_matrix(*e.transform);\n", it); } build_string := sprint(DESERIALIZE_ENTITY, builder_to_string(*builder)); diff --git a/module.jai b/module.jai index 0f78b82..ff94880 100644 --- a/module.jai +++ b/module.jai @@ -35,6 +35,7 @@ Engine_Core :: struct { procs: struct { on_scene_loaded: (*Scene, Engine_Mode); + on_pre_scene_loaded: (*Scene, Engine_Mode); } paused: bool;