diff --git a/Editor/src/Commands/Commands/Commands.cpp b/Editor/src/Commands/Commands/Commands.cpp index e94f69d2..635702a3 100644 --- a/Editor/src/Commands/Commands/Commands.cpp +++ b/Editor/src/Commands/Commands/Commands.cpp @@ -33,4 +33,102 @@ namespace NuakeEditor return true; } + + bool CreateTrenchbroomGameConfig::Execute() + { + const std::string& cleanProjectName = String::Sanitize(mProject->Name); + const std::string& gameConfigPath = mProject->TrenchbroomPath + "/../games/" + cleanProjectName + "/GameConfig.cfg"; + FileSystem::BeginWriteFile(gameConfigPath, true); + + std::string templateFile = R"( + { + "version": 8, + "name": ")" + cleanProjectName + R"(", + "icon": "Icon.png", + "experimental": true, + "fileformats": [ + { "format": "Valve" }, { "format": "Standard" } + ], + "filesystem": { + "searchpath": "", + "packageformat": { "extension": ".zip", "format": "zip" } + }, + "textures": { + "root": "textures", + "extensions": [ ".jpg", ".png", ".tga" ] + }, + "entities": { + "definitions": [ ")" + cleanProjectName + R"(.fgd" ], + "defaultcolor": "0.6 0.6 0.6 1.0" + }, + "tags": { + "brush": [ + { + "name": "Trigger", + "attribs": [ "transparent" ], + "match": "classname", + "pattern": "trigger_*", + "texture": "trigger" + } + ], + "brushface": [ + { + "name": "Caulk", + "attribs": [ "transparent" ], + "match": "texture", + "pattern": "*caulk" + }, + { + "name": "Clip", + "attribs": [ "transparent" ], + "match": "surfaceparm", + "pattern": [ "playerclip", "monsterclip" ] + }, + { + "name": "Detail", + "match": "contentflag", + "flags": [ "detail" ] + }, + { + "name": "Hint", + "attribs": [ "transparent" ], + "match": "texture", + "pattern": "common/hint*" + }, + { + "name": "Liquid", + "match": "surfaceparm", + "pattern": [ "water", "lava", "slime" ] + }, + { + "name": "Skip", + "attribs": [ "transparent" ], + "match": "texture", + "pattern": "common/*skip" + }, + { + "name": "Translucent", + "attribs": [ "transparent" ], + "match": "surfaceparm", + "pattern": [ "trans", "fog" ] + } + ] + }, + "faceattribs": { + "defaults": { + "scale": [1.0, 1.0] + }, + "surfaceflags": [], + "contentflags": [ + + ] + }, + "softMapBounds":"-65536 -65536 -65536 65536 65536 65536" +} + + )"; + FileSystem::WriteLine(templateFile); + FileSystem::EndWriteFile(); + return true; + } } \ No newline at end of file diff --git a/Editor/src/Commands/Commands/Commands.h b/Editor/src/Commands/Commands/Commands.h index d87b6717..78abd447 100644 --- a/Editor/src/Commands/Commands/Commands.h +++ b/Editor/src/Commands/Commands/Commands.h @@ -46,4 +46,18 @@ namespace NuakeEditor { bool Execute() override; }; + + class CreateTrenchbroomGameConfig : public ICommand + { + private: + Ref mProject; + + public: + CreateTrenchbroomGameConfig(Ref project) : + mProject(project) + { + } + + bool Execute() override; + }; } \ No newline at end of file diff --git a/Editor/src/Windows/EditorInterface.cpp b/Editor/src/Windows/EditorInterface.cpp index 6ef80044..0da048e2 100644 --- a/Editor/src/Windows/EditorInterface.cpp +++ b/Editor/src/Windows/EditorInterface.cpp @@ -2027,30 +2027,6 @@ namespace Nuake { ImGui::SetNextWindowPos(window_pos, ImGuiCond_Always, window_pos_pivot); ImGui::SetNextWindowViewport(viewport->ID); } - ImGui::SetNextWindowBgAlpha(0.35f); // Transparent background - ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 32.0f); - if (ImGui::Begin("Example: Simple overlay", &m_ShowOverlay, window_flags)) - { - ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 100); - if (ImGui::Button(ICON_FA_ARROWS_ALT) || Input::IsKeyDown(Key::W)) - { - CurrentOperation = ImGuizmo::OPERATION::TRANSLATE; - } - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_SYNC_ALT) || Input::IsKeyDown(Key::E)) - { - CurrentOperation = ImGuizmo::OPERATION::ROTATE; - } - ImGui::SameLine(); - if (ImGui::Button(ICON_FA_EXPAND_ALT) || Input::IsKeyDown(Key::R)) - { - CurrentOperation = ImGuizmo::OPERATION::SCALE; - } - ImGui::PopStyleVar(); - } - ImGui::PopStyleVar(); - ImGui::End(); - int corner2 = 1; window_flags |= ImGuiWindowFlags_NoMove; @@ -2318,6 +2294,7 @@ namespace Nuake { SetStatusMessage("Visual studio solution generated succesfully."); } + #ifdef NK_DEBUG if (ImGui::MenuItem("Copy Nuake.NET", NULL)) { @@ -2339,6 +2316,12 @@ namespace Nuake { Nuake::Logger::Log("Shaders Rebuilt."); SetStatusMessage("Shaders rebuilt."); } + + if (ImGui::MenuItem("Create trenchbroom config", NULL)) + { + PushCommand(CreateTrenchbroomGameConfig(Engine::GetProject())); + } + ImGui::EndMenu(); } if (ImGui::BeginMenu("Quit")) ImGui::EndMenu();