diff --git a/Editor/src/Windows/EditorSelectionPanel.cpp b/Editor/src/Windows/EditorSelectionPanel.cpp index 2c1d478f..5d53f6b1 100644 --- a/Editor/src/Windows/EditorSelectionPanel.cpp +++ b/Editor/src/Windows/EditorSelectionPanel.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include EditorSelectionPanel::EditorSelectionPanel() @@ -60,7 +61,7 @@ void EditorSelectionPanel::Draw(EditorSelection selection) ResolveFile(selection.File); } - DrawFile(selection.File.get()); + DrawFile(selection.File); break; } case EditorSelectionType::Resource: @@ -142,7 +143,7 @@ void EditorSelectionPanel::DrawAddComponentMenu(Nuake::Entity entity) } -void EditorSelectionPanel::DrawFile(Nuake::File* file) +void EditorSelectionPanel::DrawFile(Ref file) { using namespace Nuake; if (file->GetExtension() == ".material") @@ -153,6 +154,10 @@ void EditorSelectionPanel::DrawFile(Nuake::File* file) { DrawProjectPanel(Nuake::Engine::GetProject()); } + if (file->GetExtension() == ".wren") + { + DrawWrenScriptPanel(CreateRef(file, true)); + } } void EditorSelectionPanel::DrawResource(Nuake::Resource resource) @@ -417,3 +422,16 @@ void EditorSelectionPanel::DrawProjectPanel(Ref project) ImGui::InputText("Trenchbroom Path", &project->TrenchbroomPath); } +void EditorSelectionPanel::DrawWrenScriptPanel(Ref wrenFile) +{ + auto filePath = wrenFile->GetFile()->GetAbsolutePath(); + std::string fileContent = Nuake::FileSystem::ReadFile(filePath, true); + + ImGui::Text("Content"); + ImGui::Separator(); + ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + ImGui::GetWindowWidth()); + ImGui::Text(fileContent.c_str(), ImGui::GetWindowWidth()); + + ImGui::PopTextWrapPos(); +} + diff --git a/Editor/src/Windows/EditorSelectionPanel.h b/Editor/src/Windows/EditorSelectionPanel.h index 4b6dc0b8..88b2cd7b 100644 --- a/Editor/src/Windows/EditorSelectionPanel.h +++ b/Editor/src/Windows/EditorSelectionPanel.h @@ -48,11 +48,12 @@ public: void DrawEntity(Nuake::Entity entity); void DrawAddComponentMenu(Nuake::Entity entity); - void DrawFile(Nuake::File* file); + void DrawFile(Ref file); void DrawResource(Nuake::Resource resource); private: void ResolveFile(Ref file); void DrawMaterialPanel(Ref material); void DrawProjectPanel(Ref project); + void DrawWrenScriptPanel(Ref wrenFile); }; \ No newline at end of file diff --git a/Editor/src/Windows/FileSystemUI.cpp b/Editor/src/Windows/FileSystemUI.cpp index 3eb90511..4b309547 100644 --- a/Editor/src/Windows/FileSystemUI.cpp +++ b/Editor/src/Windows/FileSystemUI.cpp @@ -180,16 +180,19 @@ namespace Nuake { OS::ShowInFileExplorer(file->GetAbsolutePath()); } - - ImGui::Separator(); - - if (ImGui::MenuItem("Delete")) + + if(file->GetExtension() != ".project") { - if(FileSystem::RemoveFile(file->GetAbsolutePath()) != 0) + ImGui::Separator(); + + if (ImGui::MenuItem("Delete")) { - Logger::Log("Failed to remove file: " + file->GetRelativePath(), CRITICAL); + if(FileSystem::RemoveFile(file->GetAbsolutePath()) != 0) + { + Logger::Log("Failed to remove file: " + file->GetRelativePath(), CRITICAL); + } + RefreshFileBrowser(); } - RefreshFileBrowser(); } ImGui::EndPopup(); diff --git a/Nuake/src/Scripting/WrenScript.cpp b/Nuake/src/Scripting/WrenScript.cpp index aadb1d8a..61bacc56 100644 --- a/Nuake/src/Scripting/WrenScript.cpp +++ b/Nuake/src/Scripting/WrenScript.cpp @@ -164,6 +164,11 @@ namespace Nuake WrenInterpretResult result = wrenCall(vm, handle); } + Ref WrenScript::GetFile() const + { + return mFile; + } + void WrenScript::SetScriptableEntityID(int id) { if (!m_HasCompiledSuccesfully) diff --git a/Nuake/src/Scripting/WrenScript.h b/Nuake/src/Scripting/WrenScript.h index 7a5c5009..8a3d03e8 100644 --- a/Nuake/src/Scripting/WrenScript.h +++ b/Nuake/src/Scripting/WrenScript.h @@ -40,6 +40,7 @@ namespace Nuake void RegisterMethod(const std::string& signature); void CallMethod(const std::string& signature); + Ref GetFile() const; void SetScriptableEntityID(int id); bool HasCompiledSuccesfully() const { return m_HasCompiledSuccesfully; }