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