Skip to content

Commit

Permalink
Merge pull request #49 from JacobDomagala/4-update-editor-design
Browse files Browse the repository at this point in the history
4: Update Editor's design
  • Loading branch information
JacobDomagala authored Jul 29, 2021
2 parents fa53564 + 85fa7e3 commit e7c3ba5
Show file tree
Hide file tree
Showing 5 changed files with 126 additions and 19 deletions.
3 changes: 0 additions & 3 deletions editor/EditorObject.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -212,9 +212,6 @@ EditorObject::Move(const glm::vec2& moveBy)
m_position += moveBy;
m_centeredPosition += moveBy;

m_position += moveBy;
m_centeredPosition += moveBy;

if (m_hasLinkedObject)
{
switch (Object::GetTypeFromID(m_objectID))
Expand Down
128 changes: 112 additions & 16 deletions editor/GUI/EditorGUI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,99 @@

namespace dgame {

static inline void
SetStyle()
{
ImGuiStyle& style = ImGui::GetStyle();
auto* colors = style.Colors;

/// 0 = FLAT APPEARENCE
/// 1 = MORE "3D" LOOK
int is3D = 1;

colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f);
colors[ImGuiCol_TextDisabled] = ImVec4(0.40f, 0.40f, 0.40f, 1.00f);
colors[ImGuiCol_ChildBg] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_WindowBg] = ImVec4(0.025f, 0.025f, 0.025f, 1.00f);
colors[ImGuiCol_PopupBg] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_Border] = ImVec4(0.12f, 0.12f, 0.12f, 0.71f);
colors[ImGuiCol_BorderShadow] = ImVec4(1.00f, 1.00f, 1.00f, 0.06f);
colors[ImGuiCol_FrameBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.54f);
colors[ImGuiCol_FrameBgHovered] = ImVec4(0.42f, 0.42f, 0.42f, 0.40f);
colors[ImGuiCol_FrameBgActive] = ImVec4(0.56f, 0.56f, 0.56f, 0.67f);
colors[ImGuiCol_TitleBg] = ImVec4(0.02f, 0.02f, 0.02f, 1.00f);
colors[ImGuiCol_TitleBgActive] = ImVec4(0.0f, 0.0f, 0.0f, 1.00f);
colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.05f, 0.05f, 0.05f, 0.90f);
colors[ImGuiCol_MenuBarBg] = ImVec4(0.335f, 0.335f, 0.335f, 1.000f);
colors[ImGuiCol_ScrollbarBg] = ImVec4(0.24f, 0.24f, 0.24f, 0.53f);
colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f);
colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.52f, 0.52f, 0.52f, 1.00f);
colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.76f, 0.76f, 0.76f, 1.00f);
colors[ImGuiCol_CheckMark] = ImVec4(0.65f, 0.65f, 0.65f, 1.00f);
colors[ImGuiCol_SliderGrab] = ImVec4(0.52f, 0.52f, 0.52f, 1.00f);
colors[ImGuiCol_SliderGrabActive] = ImVec4(0.64f, 0.64f, 0.64f, 1.00f);
colors[ImGuiCol_Button] = ImVec4(0.54f, 0.54f, 0.54f, 0.35f);
colors[ImGuiCol_ButtonHovered] = ImVec4(0.52f, 0.52f, 0.52f, 0.59f);
colors[ImGuiCol_ButtonActive] = ImVec4(0.76f, 0.76f, 0.76f, 1.00f);
colors[ImGuiCol_Header] = ImVec4(0.38f, 0.38f, 0.38f, 1.00f);
colors[ImGuiCol_HeaderHovered] = ImVec4(0.47f, 0.47f, 0.47f, 1.00f);
colors[ImGuiCol_HeaderActive] = ImVec4(0.76f, 0.76f, 0.76f, 0.77f);
colors[ImGuiCol_Separator] = ImVec4(0.000f, 0.000f, 0.000f, 0.137f);
colors[ImGuiCol_SeparatorHovered] = ImVec4(0.700f, 0.671f, 0.600f, 0.290f);
colors[ImGuiCol_SeparatorActive] = ImVec4(0.702f, 0.671f, 0.600f, 0.674f);
colors[ImGuiCol_ResizeGrip] = ImVec4(0.26f, 0.59f, 0.98f, 0.25f);
colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f);
colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f);
colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f);
colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f);
colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f);
colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f);
colors[ImGuiCol_TextSelectedBg] = ImVec4(0.73f, 0.73f, 0.73f, 0.35f);
colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f);
colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f);
colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f);
colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f);
colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f);

style.PopupRounding = 3;

style.WindowPadding = ImVec2(4, 4);
style.FramePadding = ImVec2(6, 4);
style.ItemSpacing = ImVec2(6, 2);

style.ScrollbarSize = 18;

style.WindowBorderSize = 1;
style.ChildBorderSize = 1;
style.PopupBorderSize = 1;
style.FrameBorderSize = static_cast< float >(is3D);

style.WindowRounding = 3;
style.ChildRounding = 3;
style.FrameRounding = 3;
style.ScrollbarRounding = 2;
style.GrabRounding = 3;

#ifdef IMGUI_HAS_DOCK
style.TabBorderSize = is3D;
style.TabRounding = 3;

colors[ImGuiCol_DockingEmptyBg] = ImVec4(0.38f, 0.38f, 0.38f, 1.00f);
colors[ImGuiCol_Tab] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_TabHovered] = ImVec4(0.40f, 0.40f, 0.40f, 1.00f);
colors[ImGuiCol_TabActive] = ImVec4(0.33f, 0.33f, 0.33f, 1.00f);
colors[ImGuiCol_TabUnfocused] = ImVec4(0.25f, 0.25f, 0.25f, 1.00f);
colors[ImGuiCol_TabUnfocusedActive] = ImVec4(0.33f, 0.33f, 0.33f, 1.00f);
colors[ImGuiCol_DockingPreview] = ImVec4(0.85f, 0.85f, 0.85f, 0.28f);

if (ImGui::GetIO().ConfigFlags & ImGuiConfigFlags_ViewportsEnable)
{
style.WindowRounding = 0.0f;
style.Colors[ImGuiCol_WindowBg].w = 1.0f;
}
#endif
}

EditorGUI::EditorGUI(Editor& parent) : m_parent(parent)
{
}
Expand All @@ -29,6 +122,7 @@ EditorGUI::Init()

ImGui_ImplGlfw_InitForOpenGL(m_parent.GetWindow().GetWindowHandle(), true);
ImGui_ImplOpenGL3_Init("#version 450");
SetStyle();
}

void
Expand Down Expand Up @@ -139,7 +233,24 @@ EditorGUI::Render()
{
const auto& gameObjects = m_currentLevel->GetObjects();

const auto items = std::to_array< std::string >({"Enemy", "Player", "Object"});
ImGui::SetNextItemWidth(m_windowWidth * 0.95f);

// The second parameter is the label previewed before opening the combo.
if (ImGui::BeginCombo("##combo", "Add"))
{
for (uint32_t n = 0; n < items.size(); n++)
{
if (ImGui::Selectable(items[n].c_str()))
{
m_parent.AddGameObject(Object::GetTypeFromString(items[n]));
}
}
ImGui::EndCombo();
}

ImGui::BeginChild("Loaded Objects", {0, 200}, true);

for (auto& object : gameObjects)
{
auto label = fmt::format("[{}] {} ({}, {})", object->GetTypeString().c_str(),
Expand All @@ -153,21 +264,6 @@ EditorGUI::Render()
}
}

const auto items = std::to_array< std::string >({"Enemy", "Player", "Object"});

if (ImGui::BeginCombo(
"##combo",
"Add")) // The second parameter is the label previewed before opening the combo.
{
for (uint32_t n = 0; n < items.size(); n++)
{
if (ImGui::Selectable(items[n].c_str()))
{
m_parent.AddGameObject(Object::GetTypeFromString(items[n]));
}
}
ImGui::EndCombo();
}
ImGui::EndChild();
}

Expand Down Expand Up @@ -242,7 +338,7 @@ EditorGUI::Render()

ImGui::InputFloat2("Position", &objectPosition.x);

if (ImGui::SliderInt2("Size", &sprite_size.x, 10, 500))
if (ImGui::SliderInt2("Size", &sprite_size.x, 10, 1000))
{
m_currentlySelectedGameObject->SetSize(sprite_size);
}
Expand Down
2 changes: 2 additions & 0 deletions engine/Game/Level.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ Level::Load(Application* context, const std::string& pathToLevel)
nodeJson["connected to"].end()),
nodeJson["occupied"]));
}

m_pathFinder.SetInitialized();
}
else if (key == "SHADER")
{
Expand Down
6 changes: 6 additions & 0 deletions engine/Game/PathFinder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,12 @@ PathFinder::SetNodeFreed(const Tile_t& nodeCoords)
}
}

void
PathFinder::SetInitialized()
{
m_initialized = true;
}

bool
PathFinder::IsInitialized() const
{
Expand Down
6 changes: 6 additions & 0 deletions engine/Game/PathFinder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,12 @@ class PathFinder
void
InitializeEmpty(const glm::ivec2& levelSize, const uint32_t tileSize);

/**
* \brief Mark Pathfinder as initialized
*/
void
SetInitialized();

/**
* \brief Check whether the Pathfinder is initialized
*
Expand Down

0 comments on commit e7c3ba5

Please sign in to comment.