diff --git a/Nuake/src/Resource/UUID.h b/Nuake/src/Resource/UUID.h index 67482900..7b51c22d 100644 --- a/Nuake/src/Resource/UUID.h +++ b/Nuake/src/Resource/UUID.h @@ -2,23 +2,24 @@ #include #include -namespace Nuake { - +namespace Nuake +{ class UUID { + private: + uint64_t m_UUID; + public: UUID(); UUID(uint64_t uuid); UUID(const UUID&) = default; operator uint64_t() const { return m_UUID; } - private: - uint64_t m_UUID; }; } - -namespace std { +namespace std +{ template<> struct hash { diff --git a/Nuake/src/Scene/Scene.h b/Nuake/src/Scene/Scene.h index b999a97a..63468d9f 100644 --- a/Nuake/src/Scene/Scene.h +++ b/Nuake/src/Scene/Scene.h @@ -1,5 +1,4 @@ #pragma once -#include #include "src/Core/Core.h" #include "src/Core/Maths.h" @@ -15,9 +14,9 @@ #include "src/Scene/Systems/System.h" #include "src/Resource/UUID.h" -#include "src/Resource/Resource.h" -namespace Nuake { +namespace Nuake +{ class Entity; class SceneRenderer; diff --git a/Nuake/src/Scripting/ScriptingEngine.cpp b/Nuake/src/Scripting/ScriptingEngine.cpp index 4755d6a8..e21af9a3 100644 --- a/Nuake/src/Scripting/ScriptingEngine.cpp +++ b/Nuake/src/Scripting/ScriptingEngine.cpp @@ -1,15 +1,17 @@ #include "ScriptingEngine.h" #include "WrenScript.h" -#include "../Core/FileSystem.h" -#include -#include -#include -#include -#include -#include +#include "src/Core/FileSystem.h" + +#include "src/Scripting/VM.h" +#include "src/Scripting/Modules/ScriptModule.h" +#include "src/Scripting/Modules/EngineModule.h" +#include "src/Scripting/Modules/SceneModule.h" +#include "src/Scripting/Modules/MathModule.h" +#include "src/Scripting/Modules/InputModule.h" +#include "src/Scripting/Modules/PhysicsModule.h" namespace Nuake { - WrenVM* ScriptingEngine::m_WrenVM; + Ref ScriptingEngine::m_VM; std::map> ScriptingEngine::m_Scripts; std::map> ScriptingEngine::Modules; @@ -162,6 +164,7 @@ namespace Nuake { config.writeFn = &writeFn; config.bindForeignMethodFn = &bindForeignMethod; + m_VM = CreateRef(); m_WrenVM = wrenNewVM(&config); Logger::Log("Registing Scripting Modules"); diff --git a/Nuake/src/Scripting/ScriptingEngine.h b/Nuake/src/Scripting/ScriptingEngine.h index 5e7fbf92..a1b42659 100644 --- a/Nuake/src/Scripting/ScriptingEngine.h +++ b/Nuake/src/Scripting/ScriptingEngine.h @@ -1,15 +1,18 @@ #pragma once +#include "src/Core/Core.h" +#include "src/Core/Timestep.h" + #include #include #include -#include "src/Core/Core.h" + #include "src/Vendors/wren/src/include/wren.hpp" -#include "src/Core/Timestep.h" namespace Nuake { class WrenScript; class ScriptModule; + class ScriptingEngine { private: @@ -18,7 +21,12 @@ namespace Nuake static std::vector m_LoadedScripts; static std::map> m_Scripts; static std::map> Modules; + public: + static void Init(); + static void RunCode(const std::string& code); + static void Close(); + static Ref RegisterScript(const std::string& path, const std::string& mod); static bool IsScriptImported(const std::string& path); static void ImportScript(const std::string& path); @@ -26,11 +34,6 @@ namespace Nuake static void InitScript(Ref script); static void UpdateScript(Ref script, Timestep timestep); static void ExitScript(Ref script); - static void Init(); - static void RunCode(const std::string& code); - static void Close(); - - static WrenForeignMethodFn bindForeignMethod( WrenVM* vm, diff --git a/Nuake/src/Scripting/VM.cpp b/Nuake/src/Scripting/VM.cpp deleted file mode 100644 index c4f12df2..00000000 --- a/Nuake/src/Scripting/VM.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "VM.h" - -namespace Nuake { - VM::VM() - { - WrenConfiguration config; - wrenInitConfiguration(&config); - - //config.loadModuleFn = &myLoadModule; - //config.errorFn = &errorFn; - //config.writeFn = &writeFn; - //config.bindForeignMethodFn = &bindForeignMethod; - - m_VM = wrenNewVM(&config); - } -} \ No newline at end of file diff --git a/Nuake/src/Scripting/VM.h b/Nuake/src/Scripting/VM.h deleted file mode 100644 index 9a8a5cb2..00000000 --- a/Nuake/src/Scripting/VM.h +++ /dev/null @@ -1,13 +0,0 @@ -#pragma once -#include - -namespace Nuake { - class VM - { - VM(); - - inline WrenVM* GetVM(); - private: - WrenVM* m_VM; - }; -} \ No newline at end of file diff --git a/Nuake/src/Scripting/WrenScript.cpp b/Nuake/src/Scripting/WrenScript.cpp index fc544ee6..5583b917 100644 --- a/Nuake/src/Scripting/WrenScript.cpp +++ b/Nuake/src/Scripting/WrenScript.cpp @@ -2,10 +2,12 @@ #include "src/Core/Logger.h" #include "src/Core/String.h" +#include "src/Core/FileSystem.h" #include -namespace Nuake { +namespace Nuake +{ WrenScript::WrenScript(Ref file, bool isEntity) { mFile = file; diff --git a/Nuake/src/Scripting/WrenScript.h b/Nuake/src/Scripting/WrenScript.h index e4abe168..9daf9a7a 100644 --- a/Nuake/src/Scripting/WrenScript.h +++ b/Nuake/src/Scripting/WrenScript.h @@ -1,13 +1,14 @@ #pragma once #include "ScriptingEngine.h" -#include "src/Core/FileSystem.h" #include #include struct WrenHandle; -namespace Nuake { +namespace Nuake +{ + class File; class WrenScript { private: