diff --git a/core/scene.jai b/core/scene.jai index 639711e..cc3bc69 100644 --- a/core/scene.jai +++ b/core/scene.jai @@ -1,14 +1,6 @@ #load "../renderer/directional_light.jai"; #load "particles.jai"; -#placeholder init_scene; -#placeholder Entity_Storage; -#placeholder delete_entity; -#placeholder serialize_entity; -#placeholder deserialize_entity; -#placeholder duplicate_entity; -#placeholder entity_ui; - MAX_CACHED_PILES :: 8; last_unnamed_scene_id := 0; diff --git a/metaprogram.jai b/metaprogram.jai index bfc543d..0b83c9f 100644 --- a/metaprogram.jai +++ b/metaprogram.jai @@ -207,9 +207,11 @@ generate_ui_procedure_for_entity :: (code_struct: *Code_Struct) { // Serialize ui : String_Builder; + print_to_builder(*ui, "#if EDITOR {"); print_to_builder(*ui, "entity_ui_proc :: (e: *%) {\n", name); generate_member_ui(code_struct.defined_type, *ui); print_to_builder(*ui, "}\n"); + print_to_builder(*ui, "}"); array_add(*entity_serialize_proc_string, builder_to_string(*ui)); } @@ -273,7 +275,7 @@ note_struct :: (code_struct: *Code_Struct) { } } -import: *Message_Import; +message: *Message_Import; message_loop :: () { while true { @@ -284,9 +286,7 @@ message_loop :: () { if message.kind == { case .IMPORT; { import := cast(*Message_Import)message; - if import.module_name == "Coven" { - message = import; - } + if import.module_name == "Coven" message = import; } case .TYPECHECKED; typechecked := cast(*Message_Typechecked) message; @@ -451,6 +451,7 @@ generate_code :: (w: Workspace) { // Add this string to the target program: add_build_string(build_string, w); + add_build_string(PLACEHOLDER, w); // We'll print out the added code just to show at compile-time what we are doing: //print("Adding build string:\n%\n", build_string); @@ -538,11 +539,13 @@ duplicate_entity :: (e: *Entity) -> *Entity { DONE ENTITY_UI :: #string DONE +#if EDITOR { entity_ui :: (e: *Entity) { if e.type == { %1 } } +} DONE INIT_SCENE :: #string DONE @@ -560,4 +563,18 @@ editor_ui_entity_creation :: () -> *Entity { return null; } } +DONE + +PLACEHOLDER :: #string DONE +#poke_name Coven init_scene; +#poke_name Coven Entity_Storage; +#poke_name Coven delete_entity; +#poke_name Coven deserialize_entity; +#poke_name Coven serialize_entity; + +#if EDITOR { + #poke_name Coven editor_ui_entity_creation; + #poke_name Coven entity_ui; + #poke_name Coven duplicate_entity; +} DONE \ No newline at end of file