diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..13566b8
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..8f78700
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+CreateEngine
\ No newline at end of file
diff --git a/.idea/Create-Engine.iml b/.idea/Create-Engine.iml
new file mode 100644
index 0000000..f08604b
--- /dev/null
+++ b/.idea/Create-Engine.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.idea/betterCommentsSettings.xml b/.idea/betterCommentsSettings.xml
new file mode 100644
index 0000000..4f152ed
--- /dev/null
+++ b/.idea/betterCommentsSettings.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/editor.xml b/.idea/editor.xml
new file mode 100644
index 0000000..25c6c37
--- /dev/null
+++ b/.idea/editor.xml
@@ -0,0 +1,344 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml
new file mode 100644
index 0000000..79c85c6
--- /dev/null
+++ b/.idea/material_theme_project_new.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..0b76fe5
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..094c27b
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..108b7f6
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..ef77ca7
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,63 @@
+cmake_minimum_required(VERSION 3.15)
+project(CreateEngine VERSION 1.0 LANGUAGES C CXX)
+
+# --- Standards ---
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_CXX_STANDARD 20)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+# --- Compiler flags ---
+if(MSVC)
+ add_compile_definitions(GLM_ENABLE_EXPERIMENTAL)
+ add_compile_options(/W4 /Zi)
+else()
+ add_compile_definitions(GLM_ENABLE_EXPERIMENTAL)
+ add_compile_options(-Wall -g)
+ add_compile_options(-O2 -static -static-libstdc++ -static-libgcc)
+endif()
+
+# --- Include directories ---
+include_directories(
+ ${CMAKE_SOURCE_DIR}/src/include
+ ${CMAKE_SOURCE_DIR}/src/include/lua
+ ${CMAKE_SOURCE_DIR}/src/vendor
+ ${CMAKE_SOURCE_DIR}/src/vendor/imgui
+ ${CMAKE_SOURCE_DIR}/src/vendor/imguizmo
+ ${CMAKE_SOURCE_DIR}/src/vendor/box2d
+ ${CMAKE_SOURCE_DIR}/src/vendor/box2d/include
+ ${CMAKE_SOURCE_DIR}/src/vendor/xxhash
+ ${CMAKE_SOURCE_DIR}/src/vendor/miniaudio
+)
+
+# --- Gather source files ---
+file(GLOB_RECURSE SOURCE_FILES
+ ${CMAKE_SOURCE_DIR}/src/src/*.cpp
+ ${CMAKE_SOURCE_DIR}/src/src/*.c
+ ${CMAKE_SOURCE_DIR}/src/vendor/*.cpp
+ ${CMAKE_SOURCE_DIR}/src/vendor/*.c
+ ${CMAKE_SOURCE_DIR}/src/include/lua/*.c
+)
+
+
+# --- Define target ---
+add_executable(${PROJECT_NAME} ${SOURCE_FILES})
+
+# --- Link libraries ---
+target_link_libraries(${PROJECT_NAME} PRIVATE
+ glfw3
+ glew32
+ opengl32
+ gdi32
+ yaml-cpp
+ comdlg32
+ ssl
+ crypto
+ dbghelp
+ z
+ freetype
+)
+
+# --- Output dir ---
+set_target_properties(${PROJECT_NAME} PROPERTIES
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/src/build"
+)
diff --git a/imgui.ini b/imgui.ini
index 94954b8..2e7c451 100644
--- a/imgui.ini
+++ b/imgui.ini
@@ -57,7 +57,7 @@ DockId=0x00000017,1
Pos=343,955
Size=1232,222
Collapsed=0
-DockId=0x00000014,0
+DockId=0x00000011,0
[Window][Profiler Timeline]
Pos=265,69
@@ -116,7 +116,7 @@ DockId=0x0000000E,0
Pos=1061,223
Size=44,497
Collapsed=0
-DockId=0x00000012,0
+DockId=0x00000014,0
[Window][Master Bus]
Pos=1003,570
@@ -190,16 +190,16 @@ DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1280,701 Spl
DockNode ID=0x00000004 Parent=0x00000001 SizeRef=342,519 HiddenTabBar=1 Selected=0x36AF052B
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1577,701 Split=Y Selected=0xC450F867
DockNode ID=0x00000007 Parent=0x00000002 SizeRef=606,659 Split=X Selected=0xC450F867
- DockNode ID=0x00000017 Parent=0x00000007 SizeRef=1208,860 CentralNode=1 HiddenTabBar=1 Selected=0xC450F867
+ DockNode ID=0x00000017 Parent=0x00000007 SizeRef=1208,860 CentralNode=1 Selected=0xC450F867
DockNode ID=0x00000018 Parent=0x00000007 SizeRef=367,860 Split=Y Selected=0x36DC96AB
DockNode ID=0x0000001B Parent=0x00000018 SizeRef=367,537 HiddenTabBar=1 Selected=0x36DC96AB
DockNode ID=0x0000001C Parent=0x00000018 SizeRef=367,120 HiddenTabBar=1 Selected=0x8CFF897F
DockNode ID=0x00000008 Parent=0x00000002 SizeRef=606,497 Split=X Selected=0xEA83D666
DockNode ID=0x00000015 Parent=0x00000008 SizeRef=1283,172 Split=X Selected=0xEA83D666
- DockNode ID=0x00000011 Parent=0x00000015 SizeRef=1206,168 Split=Y Selected=0x9B5D3198
- DockNode ID=0x00000013 Parent=0x00000011 SizeRef=1449,273 HiddenTabBar=1 Selected=0xEA83D666
- DockNode ID=0x00000014 Parent=0x00000011 SizeRef=1449,222 HiddenTabBar=1 Selected=0x9B5D3198
- DockNode ID=0x00000012 Parent=0x00000015 SizeRef=75,168 HiddenTabBar=1 Selected=0x56009A08
+ DockNode ID=0x00000011 Parent=0x00000015 SizeRef=1206,168 HiddenTabBar=1 Selected=0x9B5D3198
+ DockNode ID=0x00000012 Parent=0x00000015 SizeRef=75,168 Split=X Selected=0x56009A08
+ DockNode ID=0x00000013 Parent=0x00000012 SizeRef=1207,497 Selected=0xEA83D666
+ DockNode ID=0x00000014 Parent=0x00000012 SizeRef=74,497 HiddenTabBar=1 Selected=0x56009A08
DockNode ID=0x00000016 Parent=0x00000008 SizeRef=292,172 Split=Y Selected=0x3FC1A724
DockNode ID=0x00000019 Parent=0x00000016 SizeRef=314,268 HiddenTabBar=1 Selected=0x3FC1A724
DockNode ID=0x0000001A Parent=0x00000016 SizeRef=314,227 HiddenTabBar=1 Selected=0xA873C17F
diff --git a/src/build/imgui.ini b/src/build/imgui.ini
new file mode 100644
index 0000000..f7a6e41
--- /dev/null
+++ b/src/build/imgui.ini
@@ -0,0 +1,67 @@
+[Window][WindowOverViewport_11111111]
+Pos=0,19
+Size=1920,1158
+Collapsed=0
+
+[Window][Debug##Default]
+Pos=60,60
+Size=400,400
+Collapsed=0
+
+[Window][Performance Info]
+Pos=165,119
+Size=198,265
+Collapsed=0
+
+[Window][Color Correction]
+Pos=264,422
+Size=136,215
+Collapsed=0
+
+[Window][Resources]
+Pos=739,417
+Size=229,105
+Collapsed=0
+
+[Window][Audio Output]
+Pos=421,336
+Size=120,180
+Collapsed=0
+
+[Window][Lua Globals]
+Pos=957,363
+Size=184,48
+Collapsed=0
+
+[Window][Scene Tree]
+Pos=357,113
+Size=240,180
+Collapsed=0
+
+[Window][Inspector]
+Pos=967,84
+Size=276,245
+Collapsed=0
+
+[Window][Viewport]
+Pos=81,61
+Size=216,189
+Collapsed=0
+
+[Window][Console]
+Pos=0,600
+Size=1920,577
+Collapsed=0
+DockId=0x00000002,0
+
+[Table][0x43152D8E,3]
+RefScale=13
+Column 0 Width=120
+Column 1 Width=90
+Column 2 Weight=1.0000
+
+[Docking][Data]
+DockSpace ID=0x11111111 Window=0x1BBC0F80 Pos=0,19 Size=1920,1158 Split=Y
+ DockNode ID=0x00000001 Parent=0x11111111 SizeRef=1920,579 CentralNode=1
+ DockNode ID=0x00000002 Parent=0x11111111 SizeRef=1920,577 Selected=0xEA83D666
+
diff --git a/src/src/Components/AudioPlayerComponent.cpp b/src/src/Components/AudioPlayerComponent.cpp
index 42233b7..6a9d5ce 100644
--- a/src/src/Components/AudioPlayerComponent.cpp
+++ b/src/src/Components/AudioPlayerComponent.cpp
@@ -14,6 +14,7 @@ void AudioPlayerComponent::SetAudio(uint64_t uaid) {
m_UAID = uaid;
}
+
void AudioPlayerComponent::Play() {
if (m_UAID == 0) return;
AudioEngine::Play(m_UAID, loop);
diff --git a/src/src/Components/TilemapComponent.cpp b/src/src/Components/TilemapComponent.cpp
index b994b79..bc37123 100644
--- a/src/src/Components/TilemapComponent.cpp
+++ b/src/src/Components/TilemapComponent.cpp
@@ -22,6 +22,7 @@ void TilemapComponent::UnpackCoord(uint64_t key, int& x, int& y)
}
+
bool TilemapComponent::HasSelection()
{
return hasSelection;
diff --git a/src/src/Engine.cpp b/src/src/Engine.cpp
index 5686022..c34346c 100644
--- a/src/src/Engine.cpp
+++ b/src/src/Engine.cpp
@@ -20,14 +20,12 @@
#include "core/utils/EngineConfig.h"
-#include "core/functions/Prefab.h"
#include "core/functions/ProjectManager.h"
#include "core/functions/SceneSerializer.h"
#include "utils/GameObjectsList.h"
#include "core/utils/Profiler.h"
#include "core/utils/utils.h"
-#include "core/utils/LoadingWindow.h"
#include "core/scripts/LuaGlobalBridge.h"
#include "editor/windows/AssetBrowser.h"
@@ -62,18 +60,16 @@
#include
#define WIN32_LEAN_AND_MEAN
#include
-#include
#include
-#include
#include
using json = nlohmann::json;
static bool playing = false;
-static bool lastPlaying = false;
+bool Engine::running = true;
+
static glm::vec2 cameraPos = {0, 0};
static float cameraZoom = 1.0f;
-static ImVec2 lastMousePos = {};
static glm::vec2 editorCameraSavedPos = {0.0f, 0.0f};
static float editorCameraSavedZoom = 1.0f;
@@ -85,7 +81,14 @@ float g_fps = 0.0f;
static const std::string tempScenePath = "__tmp_scene.yaml";
-GLFWwindow *window = nullptr;
+
+
+static std::shared_ptr