Map editor started
Rendering transparancy to an image working Saving randered images workingGui_Panel_Refactor
parent
3f7ae8aaa1
commit
ca9d25073e
@ -0,0 +1,127 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - map_editor.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2022/01/31 (y/m/d)
|
||||||
|
* Mod Date - 2022/01/31 (y/m/d)
|
||||||
|
* Description - The tile map editor tool. Controls subwindows/panels.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#include "map_editor.h"
|
||||||
|
|
||||||
|
#include <editor/editor.h>
|
||||||
|
#include <editor/panels/iPanel.h>
|
||||||
|
#include <dearimgui/imgui.h>
|
||||||
|
|
||||||
|
namespace lunarium { namespace editor
|
||||||
|
{
|
||||||
|
MapEditor::MapEditor()
|
||||||
|
: mpEditor(nullptr), mIsOpen(false), mMapLoaded(false)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
OpRes MapEditor::Initialize(Editor* editor)
|
||||||
|
{
|
||||||
|
if (mpEditor)
|
||||||
|
{
|
||||||
|
return OpRes::Fail("MapEditor is already initialized");
|
||||||
|
}
|
||||||
|
|
||||||
|
mpEditor = editor;
|
||||||
|
|
||||||
|
Open();
|
||||||
|
|
||||||
|
return OpRes::OK();
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapEditor::Shutdown()
|
||||||
|
{
|
||||||
|
mpEditor = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapEditor::OnTick(double delta)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < mPanels.size(); i++)
|
||||||
|
{
|
||||||
|
mPanels[i]->Update(delta);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MapEditor::OnRender(IGraphics* g)
|
||||||
|
{
|
||||||
|
if (!mIsOpen)
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::SetNextWindowSize(ImVec2(800, 500), ImGuiCond_FirstUseEver);
|
||||||
|
if (!ImGui::Begin("Map Editor", &mIsOpen, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoBringToFrontOnFocus))
|
||||||
|
{
|
||||||
|
Close();
|
||||||
|
ImGui::End();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < mPanels.size(); i++)
|
||||||
|
{
|
||||||
|
mPanels[i]->DoFrame();
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::End();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MapEditor::Open()
|
||||||
|
{
|
||||||
|
if (mIsOpen)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < mPanels.size(); i++)
|
||||||
|
{
|
||||||
|
mPanels[i]->SetOpen(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
mIsOpen = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapEditor::Close()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < mPanels.size(); i++)
|
||||||
|
{
|
||||||
|
mPanels[i]->SetOpen(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
mIsOpen = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MapEditor::IsOpen() const
|
||||||
|
{
|
||||||
|
return mIsOpen;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MapEditor::NewMap()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
OpRes MapEditor::LoadMap(std::string map)
|
||||||
|
{
|
||||||
|
return OpRes::Fail("MapEditor::LoadMap not implemented");
|
||||||
|
}
|
||||||
|
|
||||||
|
void MapEditor::SaveMap()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MapEditor::IsMapLoaded() const
|
||||||
|
{
|
||||||
|
return mMapLoaded;
|
||||||
|
}
|
||||||
|
}}
|
||||||
@ -0,0 +1,57 @@
|
|||||||
|
/******************************************************************************
|
||||||
|
* File - map_editor.h
|
||||||
|
* Author - Joey Pollack
|
||||||
|
* Date - 2022/01/31 (y/m/d)
|
||||||
|
* Mod Date - 2022/01/31 (y/m/d)
|
||||||
|
* Description - The tile map editor tool. Controls subwindows/panels.
|
||||||
|
******************************************************************************/
|
||||||
|
|
||||||
|
#ifndef MAP_EDITOR_H_
|
||||||
|
#define MAP_EDITOR_H_
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include <string>
|
||||||
|
#include <utils/opRes.h>
|
||||||
|
|
||||||
|
namespace lunarium { namespace editor
|
||||||
|
{
|
||||||
|
class Editor;
|
||||||
|
class IGraphics;
|
||||||
|
class Panel;
|
||||||
|
class MapEditor
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MapEditor();
|
||||||
|
|
||||||
|
OpRes Initialize(Editor* editor);
|
||||||
|
void Shutdown();
|
||||||
|
void OnTick(double delta);
|
||||||
|
bool OnRender(IGraphics* g);
|
||||||
|
|
||||||
|
void Open();
|
||||||
|
void Close();
|
||||||
|
bool IsOpen() const;
|
||||||
|
|
||||||
|
void NewMap();
|
||||||
|
OpRes LoadMap(std::string map);
|
||||||
|
void SaveMap();
|
||||||
|
bool IsMapLoaded() const;
|
||||||
|
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool mIsOpen;
|
||||||
|
bool mMapLoaded;
|
||||||
|
bool mIsDirty;
|
||||||
|
Editor* mpEditor;
|
||||||
|
std::vector<Panel*> mPanels;
|
||||||
|
|
||||||
|
enum PanelTypes
|
||||||
|
{
|
||||||
|
MPPT_MAP_VIEW,
|
||||||
|
MPPT_TILE_PALLET,
|
||||||
|
MPPT_PROPERTIES
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}}
|
||||||
|
|
||||||
|
#endif // MAP_EDITOR_H_
|
||||||
Loading…
Reference in New Issue