parent
51489ecb3b
commit
1018454f2e
|
@ -1,62 +0,0 @@
|
||||||
[Window][MainStatusBar]
|
|
||||||
Pos=0,1060
|
|
||||||
Size=1920,20
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][SHEditorMenuBar]
|
|
||||||
Pos=0,48
|
|
||||||
Size=1920,1012
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][Hierarchy Panel]
|
|
||||||
Pos=0,142
|
|
||||||
Size=494,690
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000007,0
|
|
||||||
|
|
||||||
[Window][Debug##Default]
|
|
||||||
Pos=60,60
|
|
||||||
Size=400,400
|
|
||||||
Collapsed=0
|
|
||||||
|
|
||||||
[Window][Inspector]
|
|
||||||
Pos=1649,48
|
|
||||||
Size=271,1012
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000006,0
|
|
||||||
|
|
||||||
[Window][Profiler]
|
|
||||||
Pos=0,48
|
|
||||||
Size=494,92
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000003,0
|
|
||||||
|
|
||||||
[Window][Viewport]
|
|
||||||
Pos=648,48
|
|
||||||
Size=2519,1319
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000002,0
|
|
||||||
|
|
||||||
[Window][ Viewport]
|
|
||||||
Pos=496,48
|
|
||||||
Size=1151,1012
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000002,0
|
|
||||||
|
|
||||||
[Window][ Asset Browser]
|
|
||||||
Pos=0,834
|
|
||||||
Size=494,226
|
|
||||||
Collapsed=0
|
|
||||||
DockId=0x00000008,0
|
|
||||||
|
|
||||||
[Docking][Data]
|
|
||||||
DockSpace ID=0xC5C9B8AB Window=0xBE4044E9 Pos=8,79 Size=1920,1012 Split=X
|
|
||||||
DockNode ID=0x00000005 Parent=0xC5C9B8AB SizeRef=1992,1036 Split=X
|
|
||||||
DockNode ID=0x00000001 Parent=0x00000005 SizeRef=494,1036 Split=Y Selected=0x1E6EB881
|
|
||||||
DockNode ID=0x00000003 Parent=0x00000001 SizeRef=225,94 Selected=0x1E6EB881
|
|
||||||
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=225,940 Split=Y Selected=0xE096E5AE
|
|
||||||
DockNode ID=0x00000007 Parent=0x00000004 SizeRef=494,690 Selected=0xE096E5AE
|
|
||||||
DockNode ID=0x00000008 Parent=0x00000004 SizeRef=494,226 Selected=0xB128252A
|
|
||||||
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1151,1036 CentralNode=1 Selected=0xB41284E7
|
|
||||||
DockNode ID=0x00000006 Parent=0xC5C9B8AB SizeRef=271,1036 Selected=0xE7039252
|
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
#include "SHpch.h"
|
||||||
|
#include "SHPrefabManager.h"
|
||||||
|
|
||||||
|
namespace SHADE
|
||||||
|
{
|
||||||
|
SHPrefabManager::PrefabMap SHPrefabManager::prefabMap{};
|
||||||
|
|
||||||
|
void SHPrefabManager::AddPrefab(AssetID const& prefabAssetID) noexcept
|
||||||
|
{
|
||||||
|
prefabMap.insert({ prefabAssetID, {} });
|
||||||
|
}
|
||||||
|
|
||||||
|
void SHPrefabManager::RemovePrefab(AssetID const& prefabAssetID) noexcept
|
||||||
|
{
|
||||||
|
prefabMap.erase(prefabAssetID);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SHPrefabManager::ClearPrefab(AssetID const& prefabAssetID) noexcept
|
||||||
|
{
|
||||||
|
if (prefabMap.contains(prefabAssetID))
|
||||||
|
{
|
||||||
|
prefabMap[prefabAssetID].clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SHPrefabManager::UpdateAllPrefabEntities(AssetID const& prefabAssetID) noexcept
|
||||||
|
{
|
||||||
|
//Loop through all entities and deserialize new data
|
||||||
|
}
|
||||||
|
|
||||||
|
void SHPrefabManager::AddEntity(AssetID const& prefabAssetID, EntityID const& eid) noexcept
|
||||||
|
{
|
||||||
|
if (prefabMap.contains(prefabAssetID))
|
||||||
|
{
|
||||||
|
prefabMap[prefabAssetID].insert(eid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SHPrefabManager::RemoveEntity(AssetID const& prefabAssetID, EntityID const& eid) noexcept
|
||||||
|
{
|
||||||
|
if (prefabMap.contains(prefabAssetID))
|
||||||
|
{
|
||||||
|
prefabMap[prefabAssetID].erase(eid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void SHPrefabManager::Clear() noexcept
|
||||||
|
{
|
||||||
|
prefabMap.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SHPrefabManager::Empty() noexcept
|
||||||
|
{
|
||||||
|
return prefabMap.empty();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "Assets/SHAssetMacros.h"
|
||||||
|
#include "ECS_Base/SHECSMacros.h"
|
||||||
|
#include <unordered_set>
|
||||||
|
#include <unordered_map>
|
||||||
|
|
||||||
|
|
||||||
|
namespace SHADE
|
||||||
|
{
|
||||||
|
class SHPrefabManager
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
using PrefabMap = std::unordered_map<AssetID, std::unordered_set<EntityID>>;
|
||||||
|
|
||||||
|
static void AddPrefab(AssetID const& prefabAssetID) noexcept;
|
||||||
|
static void RemovePrefab(AssetID const& prefabAssetID) noexcept;
|
||||||
|
static void ClearPrefab(AssetID const& prefabAssetID) noexcept;
|
||||||
|
static void UpdateAllPrefabEntities(AssetID const& prefabAssetID) noexcept;
|
||||||
|
static void AddEntity(AssetID const& prefabAssetID, EntityID const& eid) noexcept;
|
||||||
|
static void RemoveEntity(AssetID const& prefabAssetID, EntityID const& eid) noexcept;
|
||||||
|
static void Clear() noexcept;
|
||||||
|
static bool Empty() noexcept;
|
||||||
|
|
||||||
|
private:
|
||||||
|
static PrefabMap prefabMap;
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include "SHpch.h"
|
||||||
|
#include "SHWinDialog.h"
|
||||||
|
#include <Windows.h>
|
||||||
|
#include <shobjidl.h>
|
||||||
|
|
||||||
|
namespace SHADE
|
||||||
|
{
|
||||||
|
void SHWinDialog::DisplayMessageBox(MessageBoxType const& messageBoxType, std::string const& title, std::string const& text)
|
||||||
|
{
|
||||||
|
if(messageBoxType == MessageBoxType::MB_MAX)
|
||||||
|
return;
|
||||||
|
|
||||||
|
UINT flags = MB_APPLMODAL | MB_SETFOREGROUND | MB_OK;
|
||||||
|
flags |= static_cast<UINT>(messageBoxType);
|
||||||
|
|
||||||
|
const std::wstring wTitle(title.begin(), title.end());
|
||||||
|
const std::wstring wText(text.begin(), text.end());
|
||||||
|
|
||||||
|
MessageBox(GetDesktopWindow(), wText.data(), wTitle.data(), flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> SHWinDialog::DisplayOpenDialog(OpenSaveConfig const& openSaveConfig)
|
||||||
|
{
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<std::string> SHWinDialog::DisplaySaveAsDialog(OpenSaveConfig const& openSaveConfig)
|
||||||
|
{
|
||||||
|
return{};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
#pragma once
|
||||||
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
namespace SHADE
|
||||||
|
{
|
||||||
|
//https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox
|
||||||
|
enum class MessageBoxType
|
||||||
|
{
|
||||||
|
MB_ERROR = 0x00000010L,
|
||||||
|
MB_QUESTION = 0x00000020L,
|
||||||
|
MB_WARNING = 0x00000030L,
|
||||||
|
MB_INFO = 0x00000040L,
|
||||||
|
MB_MAX = 0
|
||||||
|
};
|
||||||
|
|
||||||
|
struct OpenSaveConfig
|
||||||
|
{
|
||||||
|
using Extension = std::string;
|
||||||
|
using Extensions = std::vector<Extension>;
|
||||||
|
using FileTypeDesc = std::pair<std::string, Extensions>;
|
||||||
|
using FilterList = std::vector<FileTypeDesc>;
|
||||||
|
|
||||||
|
std::string title = "Open";
|
||||||
|
bool openFolders = false;
|
||||||
|
FilterList filterList{};
|
||||||
|
};
|
||||||
|
|
||||||
|
struct SHWinDialog
|
||||||
|
{
|
||||||
|
static void DisplayMessageBox(MessageBoxType const& messageBoxType, std::string const& title, std::string const& text);
|
||||||
|
static std::vector<std::string> DisplayOpenDialog(OpenSaveConfig const& openSaveConfig);
|
||||||
|
static std::vector<std::string> DisplaySaveAsDialog(OpenSaveConfig const& openSaveConfig);
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue