1 module unecht.core.components.editor.ui.assetInspector; 2 3 version(UEIncludeEditor): 4 5 import unecht; 6 7 import unecht.core.object; 8 import unecht.core.component; 9 import unecht.core.components._editor; 10 import unecht.core.components.sceneNode; 11 import unecht.core.assetDatabase; 12 13 import derelict.imgui.imgui; 14 15 /// 16 final class UEEditorAssetInspector : UEComponent 17 { 18 mixin(UERegisterObject!()); 19 20 static UEAsset asset; 21 22 static void reset() { asset = UEAsset.init; } 23 24 //TODO: #127 25 void render(float left, float top) 26 { 27 auto object = asset.obj; 28 29 if(!object) 30 return; 31 32 igSetNextWindowPos(ImVec2(left,top), ImGuiSetCond_Always); 33 34 bool closed; 35 igBegin("asset inspector",&closed, 36 //ImGuiWindowFlags_AlwaysAutoResize| 37 ImGuiWindowFlags_NoCollapse| 38 ImGuiWindowFlags_NoMove 39 //ImGuiWindowFlags_NoResize 40 ); 41 42 scope(exit)igEnd(); 43 44 if(closed) 45 { 46 reset(); 47 return; 48 } 49 50 import unecht.core.componentManager; 51 if(auto renderer = asset.obj.typename in UEComponentsManager.editors) 52 { 53 auto changed = renderer.render(asset.obj); 54 55 if(changed) 56 UEAssetDatabase.updateAssetMetafile(asset.obj); 57 } 58 else 59 { 60 import unecht.core.logger; 61 log.errorf("asset editor not found: %s",asset.obj.typename); 62 } 63 } 64 }