@@ -258,6 +258,11 @@ void EditorSystem::drawDefaultUI(float deltaMilliseconds)
258258 {
259259 if (ImGui::BeginMenu (" Create Resource" ))
260260 {
261+ if (!OS::IsDirectory (" game/assets/materials" ))
262+ {
263+ OS::CreateDirectoryName (" game/assets/materials" );
264+ }
265+
261266 if (ImGui::BeginCombo (" Resource Type" , newFileTypeName.c_str ()))
262267 {
263268 for (auto & [type, typeName] : ResourceFile::s_TypeNames)
@@ -294,6 +299,11 @@ void EditorSystem::drawDefaultUI(float deltaMilliseconds)
294299 if (ImGui::BeginMenu (" Create Script" ))
295300 {
296301 ImGui::InputText (" Script Name" , &newScript);
302+
303+ if (!OS::IsDirectory (" game/assets/scripts" ))
304+ {
305+ OS::CreateDirectoryName (" game/assets/scripts" );
306+ }
297307
298308 String finalNewScriptName = " game/assets/scripts/" + newScript + " .lua" ;
299309 ImGui::Text (" File Name: %s" , finalNewScriptName.c_str ());
@@ -319,6 +329,10 @@ void EditorSystem::drawDefaultUI(float deltaMilliseconds)
319329 ImGui::Separator ();
320330 if (ImGui::BeginMenu (" Create Scene" ))
321331 {
332+ if (!OS::IsDirectory (" game/assets/scenes" ))
333+ {
334+ OS::CreateDirectoryName (" game/assets/scenes" );
335+ }
322336 ImGui::InputText (" Scene Name" , &newSceneName, ImGuiInputTextFlags_AlwaysInsertMode);
323337 if (!newSceneName.empty () && ImGui::Button (" Create" ))
324338 {
@@ -337,6 +351,10 @@ void EditorSystem::drawDefaultUI(float deltaMilliseconds)
337351 }
338352 if (ImGui::BeginMenu (" Open Scene" ))
339353 {
354+ if (!OS::IsDirectory (" game/assets/scenes" ))
355+ {
356+ OS::CreateDirectoryName (" game/assets/scenes" );
357+ }
340358 for (auto && levelName : OS::GetFilesInDirectory (" game/assets/scenes/" ))
341359 {
342360 if (ImGui::MenuItem (levelName.generic_string ().c_str ()))
0 commit comments