From 722e71efba71c62dce7c46c462e278e59baa7834 Mon Sep 17 00:00:00 2001 From: Ben McAvoy Date: Fri, 11 Oct 2024 13:18:26 +0100 Subject: [PATCH] feat: lua scripting --- CMakeLists.txt | 2 +- README.md | 3 +- engine/include/jenjin/editor/editor.h | 2 + engine/include/jenjin/editor/utils.h | 1 + engine/include/jenjin/editor/widgets.h | 3 +- engine/include/jenjin/engine.h | 3 + engine/include/jenjin/luamanager.h | 38 ++ engine/include/jenjin/scene.h | 6 + .../jenjin/targets/{default.h => runtime.h} | 4 +- engine/src/camera.cpp | 2 +- engine/src/editor/editor.cpp | 112 ++-- engine/src/editor/utils.cpp | 2 +- engine/src/engine.cpp | 3 + engine/src/luamanager.cpp | 534 ++++++++++++++++++ engine/src/scene.cpp | 18 +- engine/src/targets/editor.cpp | 9 +- .../src/targets/{default.cpp => runtime.cpp} | 25 +- jenjin/game | Bin 0 -> 36266360 bytes jenjin/src/main.cpp | 13 +- 19 files changed, 689 insertions(+), 91 deletions(-) create mode 100644 engine/include/jenjin/luamanager.h rename engine/include/jenjin/targets/{default.h => runtime.h} (80%) create mode 100644 engine/src/luamanager.cpp rename engine/src/targets/{default.cpp => runtime.cpp} (59%) create mode 100755 jenjin/game diff --git a/CMakeLists.txt b/CMakeLists.txt index 625591d..65e5b85 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.5) set (CMAKE_EXPORT_COMPILE_COMMANDS ON) # C++ -set (CMAKE_CXX_STANDARD 20) +set (CMAKE_CXX_STANDARD 23) set (CMAKE_CXX_STANDARD_REQUIRED ON) # Project declaration diff --git a/README.md b/README.md index e0b087d..37cfc0b 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,9 @@ Come back later, sorry! Jenjin is not ready for real usage. - [x] Editor - [x] Serialization/Deserialization of scenes - [x] Texture loading +- [x] Scripting (Lua) - [ ] Transparency on sprites -- [ ] Scripting (Lua) +- [ ] Icons everywhere - [ ] Code editor in the editor - [ ] Dynamic data attached to game objects at runtime - [ ] Hierarchy and `.Parent` in Lua along with `workspace` (e.g. `Workspace.MyGameObject.Parent` == `Workspace`) diff --git a/engine/include/jenjin/editor/editor.h b/engine/include/jenjin/editor/editor.h index d8455aa..8a61ba8 100644 --- a/engine/include/jenjin/editor/editor.h +++ b/engine/include/jenjin/editor/editor.h @@ -40,6 +40,8 @@ class Manager { bool selectedCamera = false; char renameGameObjectBuffer[256] = {0}; + + bool running = false; }; } // namespace Editor } // namespace Jenjin diff --git a/engine/include/jenjin/editor/utils.h b/engine/include/jenjin/editor/utils.h index 3f62588..5ab2983 100644 --- a/engine/include/jenjin/editor/utils.h +++ b/engine/include/jenjin/editor/utils.h @@ -1,5 +1,6 @@ #pragma once +#define GLFW_INCLUDE_NONE #include #include diff --git a/engine/include/jenjin/editor/widgets.h b/engine/include/jenjin/editor/widgets.h index c538d28..d2bd720 100644 --- a/engine/include/jenjin/editor/widgets.h +++ b/engine/include/jenjin/editor/widgets.h @@ -1,8 +1,9 @@ #pragma once #include "jenjin/gameobject.h" + namespace Jenjin::Editor::Widgets { bool transformWidget( Jenjin::GameObject::Transform - *transform); // Returns true if the transform was changed + *transform); }; diff --git a/engine/include/jenjin/engine.h b/engine/include/jenjin/engine.h index 166d8a8..95892c8 100644 --- a/engine/include/jenjin/engine.h +++ b/engine/include/jenjin/engine.h @@ -1,5 +1,6 @@ #pragma once +#include "jenjin/luamanager.h" #include "jenjin/scene.h" #include "jenjin/target.h" @@ -23,6 +24,8 @@ class Engine { private: std::vector> scenes = {}; Scene *currentScene = nullptr; + + LuaManager luaManager; }; extern Engine *EngineRef; diff --git a/engine/include/jenjin/luamanager.h b/engine/include/jenjin/luamanager.h new file mode 100644 index 0000000..5ab131e --- /dev/null +++ b/engine/include/jenjin/luamanager.h @@ -0,0 +1,38 @@ +#pragma once + +#include +#include +#include + +namespace Jenjin { +class LuaManager { +public: + LuaManager(); + + // Used to manage loading and executing Lua scripts + // from files and directories + void LoadDirectory(const std::string &directory); + void LoadFile(const std::string &file); + void ReloadScripts(const std::string &directory); + + // One-shot Lua script execution + void Execute(const std::string &script); + void ExecuteFile(const std::string &file); + + // Utilities for calling Lua functions collected from files + // NOTE: This is not related to one-shot `Execute`/`ExecuteFile` + // calls. This is for `LoadFile`, `LoadDirectory`, etc. + void Ready(); + void Update(); + + // Getters + sol::state *GetLuaState() { return &lua; } + +private: + sol::state lua; + + std::unordered_map> + functions = {}; +}; +} // namespace Jenjin diff --git a/engine/include/jenjin/scene.h b/engine/include/jenjin/scene.h index 8fb9921..d66bd59 100644 --- a/engine/include/jenjin/scene.h +++ b/engine/include/jenjin/scene.h @@ -2,6 +2,7 @@ #include "jenjin/camera.h" #include "jenjin/gameobject.h" +#include "jenjin/luamanager.h" #include "jenjin/shader.h" #include "jenjin/target.h" #include "jenjin/texture.h" @@ -36,11 +37,14 @@ class Scene { void Update(); void Render(); + std::shared_ptr GetGameObject(const std::string &name); + Camera *GetCamera() { return &camera; } std::vector> *GetGameObjects() { return &gameObjects; } Target *GetTarget() { return target; } + LuaManager *GetLuaManager() { return &luaManager; } void Save(const std::string &path); void Save(std::ofstream &file); @@ -60,5 +64,7 @@ class Scene { Target *target = nullptr; Camera camera = Camera(&shader, glm::vec2(800, 600)); + + LuaManager luaManager; }; } // namespace Jenjin diff --git a/engine/include/jenjin/targets/default.h b/engine/include/jenjin/targets/runtime.h similarity index 80% rename from engine/include/jenjin/targets/default.h rename to engine/include/jenjin/targets/runtime.h index de220cf..1698009 100644 --- a/engine/include/jenjin/targets/default.h +++ b/engine/include/jenjin/targets/runtime.h @@ -4,9 +4,9 @@ namespace Jenjin { namespace Targets { -class DefaultTarget : public Jenjin::Target { +class RuntimeTarget : public Jenjin::Target { public: - DefaultTarget() = default; + RuntimeTarget() = default; virtual void PreRender() override; diff --git a/engine/src/camera.cpp b/engine/src/camera.cpp index bfd8877..c339dfc 100644 --- a/engine/src/camera.cpp +++ b/engine/src/camera.cpp @@ -5,8 +5,8 @@ #include #include -#include #include +#include using namespace Jenjin; diff --git a/engine/src/editor/editor.cpp b/engine/src/editor/editor.cpp index 46919cb..2710681 100644 --- a/engine/src/editor/editor.cpp +++ b/engine/src/editor/editor.cpp @@ -53,15 +53,34 @@ void Manager::menu() { if (!this->paths.openScenePath.empty()) { if (ImGui::BeginMenu("Scripts")) { if (ImGui::MenuItem("Reload")) { - spdlog::warn("Unimplemented: Reload Scripts"); + auto luaManager = + Jenjin::EngineRef->GetCurrentScene()->GetLuaManager(); + + luaManager->ReloadScripts(this->paths.projectPath + "/scripts/"); + luaManager->Ready(); } ImGui::EndMenu(); } if (ImGui::BeginMenu("Game")) { - if (ImGui::MenuItem("Play")) { - spdlog::warn("Unimplemented: Play"); + if (ImGui::MenuItem(this->running ? "Stop" : "Play")) { + this->running = !this->running; + + auto scene = Jenjin::EngineRef->GetCurrentScene(); + + if (this->running) { + scene->Save(this->paths.liveScenePath); + + Jenjin::EngineRef->GetCurrentScene() + ->GetLuaManager() + ->LoadDirectory( + (this->paths.projectPath + "/scripts/").c_str()); + + scene->GetLuaManager()->Ready(); + } else { + scene->Load(this->paths.liveScenePath); + } } ImGui::EndMenu(); @@ -305,7 +324,12 @@ void Manager::inspector(Jenjin::Scene *scene) { selectedObject->texturePath == texture.path().string(); if (ImGui::Selectable(texture.path().filename().string().c_str(), isSelected)) { - scene->SetGameObjectTexture(selectedObject, texture.path().string()); + if (isSelected) { + scene->SetGameObjectTexture(selectedObject, ""); + } else { + scene->SetGameObjectTexture(selectedObject, + texture.path().string()); + } } } } @@ -337,64 +361,6 @@ void Manager::inspector(Jenjin::Scene *scene) { ImGui::Unindent(); } - /* ImGui::Text("Colours"); */ - /* ImGui::Separator(); */ - /* ImGui::Indent(); */ - /* ImGui::Spacing(); */ - /* ImGui::ColorEdit3("Color", glm::value_ptr(selectedObject->color)); */ - /* ImGui::Unindent(); */ - - /* ImGui::Text("Textures"); */ - /* ImGui::Separator(); */ - /* ImGui::Indent(); */ - /* ImGui::Spacing(); */ - /* auto diriter = std::filesystem::directory_iterator(this->paths.projectPath - * + "/textures/"); */ - - /* if (diriter == std::filesystem::directory_iterator()) { */ - /* ImGui::Text("No textures found"); */ - /* } */ - - /* for (auto& texture : diriter) { */ - /* if (texture.is_regular_file() && texture.path().extension() == ".png" || - * texture.path().extension() == ".jpg") { */ - /* bool isSelected = selectedObject->texturePath == - * texture.path().string(); */ - /* if - * (ImGui::Selectable(texture.path().filename().string().c_str(), isSelected)) - * { */ - /* scene->SetGameObjectTexture(selectedObject, - * texture.path().string()); */ - /* } */ - /* } */ - /* } */ - - /* if (!selectedObject->texturePath.empty()) { */ - /* ImGui::Spacing(); */ - /* ImGui::Checkbox("Mix Color", &selectedObject->mixColor); */ - /* } */ - - /* ImGui::Unindent(); */ - - /* ImGui::Spacing(); */ - - /* ImGui::Text("Manage"); */ - /* ImGui::Separator(); */ - /* ImGui::Indent(); */ - /* ImGui::Spacing(); */ - - /* ImGui::InputText("##RenameInput", renameGameObjectBuffer, - * sizeof(renameGameObjectBuffer)); */ - /* ImGui::SameLine(); */ - /* if (ImGui::Button("Rename")) { */ - /* selectedObject->SetName(renameGameObjectBuffer); */ - /* } */ - - /* if (ImGui::Button("Delete")) { */ - /* scene->RemoveGameObject(selectedObject); */ - /* selectedObject = nullptr; */ - /* } */ - ImGui::Unindent(); ImGui::End(); @@ -465,6 +431,19 @@ void Manager::backup_prompts(Jenjin::Scene *scene) { void Manager::code(Jenjin::Scene *scene) {} void Manager::show_all(Jenjin::Scene *scene) { + bool isRunning = this->running; + if (isRunning) { + scene->Update(); + + auto bg = ImGui::GetStyle().Colors[ImGuiCol_WindowBg]; + auto red_bg = ImVec4((bg.x + 0.01) * 1.5f, bg.y, bg.z, bg.w); + auto red_bg_dark = + ImVec4((bg.x + 0.01) * 1.5, bg.y * 0.9, bg.z * 0.9, bg.w); + ImGui::PushStyleColor(ImGuiCol_WindowBg, red_bg); + ImGui::PushStyleColor(ImGuiCol_TitleBg, red_bg_dark); + ImGui::PushStyleColor(ImGuiCol_TitleBgActive, red_bg); + } + if (this->paths.projectPath.empty()) { menu(); dockspace(); @@ -475,6 +454,8 @@ void Manager::show_all(Jenjin::Scene *scene) { menu(); dockspace(); + if (isRunning) + ImGui::PopStyleColor(3); hierarchy(scene); inspector(scene); @@ -493,6 +474,7 @@ void Manager::welcome() { ImGui::GetFrameHeightWithSpacing(); int spad = ImGui::GetStyle().WindowPadding.y * 2 + ImGui::GetStyle().ItemSpacing.y * 2; + ImGui::BeginChild( "WelcomeChild", ImVec2(ImGui::GetWindowWidth() - ImGui::GetStyle().WindowPadding.x * 2, @@ -509,13 +491,11 @@ void Manager::welcome() { Jenjin::EngineRef->GetCurrentScene()->GetGameObjects()->clear(); std::ifstream ifile(this->paths.openScenePath); - /* Jenjin::EngineRef->GetCurrentScene()->load(ifile); */ Jenjin::EngineRef->GetCurrentScene()->Load(this->paths.openScenePath); // Load all the lua files - spdlog::warn("Unimplemented: Load Lua files"); - /* Jenjin::EngineRef->GetCurrentScene()->reload_lua((this->paths.projectPath - * + "/scripts/").c_str()); */ + Jenjin::EngineRef->GetCurrentScene()->GetLuaManager()->LoadDirectory( + (this->paths.projectPath + "/scripts/").c_str()); }; for (auto file : std::filesystem::directory_iterator( diff --git a/engine/src/editor/utils.cpp b/engine/src/editor/utils.cpp index fec561d..8436ccb 100644 --- a/engine/src/editor/utils.cpp +++ b/engine/src/editor/utils.cpp @@ -4,8 +4,8 @@ #include -#include #include +#include void Jenjin::Editor::ensure_dir(std::string path) { if (!std::filesystem::exists(path)) { diff --git a/engine/src/engine.cpp b/engine/src/engine.cpp index 2201036..2550df0 100644 --- a/engine/src/engine.cpp +++ b/engine/src/engine.cpp @@ -22,6 +22,9 @@ Engine::Engine(GLFWwindow *window) { spdlog::debug("Initializing Jenjin {}", VERSION); glfwSetErrorCallback([](int code, const char *error) { + if (code == 65540 || code == 65539) + return; + spdlog::error("GLFW Error: {} ({})", error, code); }); diff --git a/engine/src/luamanager.cpp b/engine/src/luamanager.cpp new file mode 100644 index 0000000..e415c73 --- /dev/null +++ b/engine/src/luamanager.cpp @@ -0,0 +1,534 @@ +#include +#define GLFW_INCLUDE_NONE + +#include "jenjin/engine.h" +#include "jenjin/luamanager.h" + +#include +#include + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace Jenjin; + +void Bindings(LuaManager *lm, sol::state &lua) { + // ======================================================================== + // Logging + // ======================================================================== + + // This is a lambda function that takes a variadic number of arguments + // and constructs a string from them to be used in the logging functions + // It takes in basic types and handles some bound userdata types> + + auto construct_string = [&](sol::variadic_args va) { + std::stringstream ss; + + int i = 0; + for (auto v : va) { + if (v.get_type() == sol::type::number) { + ss << v.get(); + } else if (v.get_type() == sol::type::string) { + ss << v.get(); + } else if (v.get_type() == sol::type::boolean) { + ss << (v.get() ? "true" : "false"); + } else if (v.get_type() == sol::type::nil) { + ss << "nil"; + } else if (v.get_type() == sol::type::userdata) { + auto ud = v.get(); + if (ud.is()) { + auto vec = ud.as(); + ss << "vec2(" << vec.x << ", " << vec.y << ")"; + } else if (ud.is()) { + auto vec = ud.as(); + ss << "vec3(" << vec.x << ", " << vec.y << ", " << vec.z << ")"; + } else { + ss << "unknown userdata"; + } + } + + // Add a comma if there are more arguments + if (i++ < va.size() - 1) { + ss << ", "; + } + } + + return ss.str(); + }; + + lua.set_function("info", [&](sol::variadic_args va) { + spdlog::info("[LUA] {}", construct_string(va)); + }); + + lua.set_function("warn", [&](sol::variadic_args va) { + spdlog::warn("[LUA] {}", construct_string(va)); + }); + + lua.set_function("error", [&](sol::variadic_args va) { + spdlog::error("[LUA] {}", construct_string(va)); + }); + + lua.set_function("debug", [&](sol::variadic_args va) { + spdlog::debug("[LUA] {}", construct_string(va)); + }); + + lua.set_function("trace", [&](sol::variadic_args va) { + spdlog::trace("[LUA] {}", construct_string(va)); + }); + + lua.set_function("critical", [&](sol::variadic_args va) { + spdlog::critical("[LUA] {}", construct_string(va)); + }); + + lua.set_function("print", [&](sol::variadic_args va) { + spdlog::info("[LUA] {}", construct_string(va)); + }); + + // ======================================================================== + // Userdata + // ======================================================================== + + lua.new_usertype( + "vec2", sol::constructors(), "x", + &glm::vec2::x, "y", &glm::vec2::y, + + sol::meta_function::addition, + sol::overload( + [](const glm::vec2 &lhs, const glm::vec2 &rhs) { return lhs + rhs; }, + [](const glm::vec2 &lhs, float rhs) { return lhs + rhs; }, + [](float lhs, const glm::vec2 &rhs) { return lhs + rhs; }), + + sol::meta_function::subtraction, + sol::overload( + [](const glm::vec2 &lhs, const glm::vec2 &rhs) { return lhs - rhs; }, + [](const glm::vec2 &lhs, float rhs) { return lhs - rhs; }, + [](float lhs, const glm::vec2 &rhs) { return lhs - rhs; }), + + sol::meta_function::multiplication, + sol::overload( + [](const glm::vec2 &lhs, const glm::vec2 &rhs) { return lhs * rhs; }, + [](const glm::vec2 &lhs, float rhs) { return lhs * rhs; }, + [](float lhs, const glm::vec2 &rhs) { return lhs * rhs; }), + + sol::meta_function::division, + sol::overload( + [](const glm::vec2 &lhs, const glm::vec2 &rhs) { return lhs / rhs; }, + [](const glm::vec2 &lhs, float rhs) { return lhs / rhs; }, + [](float lhs, const glm::vec2 &rhs) { return lhs / rhs; }), + + sol::meta_function::equal_to, + sol::overload( + [](const glm::vec2 &lhs, const glm::vec2 &rhs) { return lhs == rhs; }, + [](const glm::vec2 &lhs, float rhs) { return lhs == glm::vec2(rhs); }, + [](float lhs, const glm::vec2 &rhs) { + return glm::vec2(lhs) == rhs; + }), + + sol::meta_function::less_than, + sol::overload( + [](const glm::vec2 &lhs, const glm::vec2 &rhs) { + return (lhs.x < rhs.x) && (lhs.y < rhs.y); + }, + [](const glm::vec2 &lhs, float rhs) { + return (lhs.x < rhs) && (lhs.y < rhs); + }, + [](float lhs, const glm::vec2 &rhs) { + return (lhs < rhs.x) && (lhs < rhs.y); + }), + + sol::meta_function::less_than_or_equal_to, + sol::overload( + [](const glm::vec2 &lhs, const glm::vec2 &rhs) { + return (lhs.x <= rhs.x) && (lhs.y <= rhs.y); + }, + [](const glm::vec2 &lhs, float rhs) { + return (lhs.x <= rhs) && (lhs.y <= rhs); + }, + [](float lhs, const glm::vec2 &rhs) { + return (lhs <= rhs.x) && (lhs <= rhs.y); + }), + + sol::meta_function::to_string, + [](const glm::vec2 &vec) { + std::stringstream ss; + ss << "vec2(" << vec.x << ", " << vec.y << ")"; + return ss.str(); + }, + + sol::meta_function::index, + [](const glm::vec2 &vec, const std::string &key) { + if (key == "x") { + return vec.x; + } else if (key == "y") { + return vec.y; + } else if (key == "r") { + return vec.x; + } else if (key == "g") { + return vec.y; + } else if (key == "s") { + return vec.x; + } else if (key == "t") { + return vec.y; + } else { + return -1.0f; + } + }); + + // glm::vec3 + lua.new_usertype( + "vec3", sol::constructors(), + "x", &glm::vec3::x, "y", &glm::vec3::y, "z", &glm::vec3::z, + + // Operators + // +, -, *, /, ==, <, >, <=, >= are our targets + sol::meta_function::addition, + sol::overload( + [](const glm::vec3 &lhs, const glm::vec3 &rhs) { return lhs + rhs; }, + [](const glm::vec3 &lhs, float rhs) { return lhs + rhs; }, + [](float lhs, const glm::vec3 &rhs) { return lhs + rhs; }), + + sol::meta_function::subtraction, + sol::overload( + [](const glm::vec3 &lhs, const glm::vec3 &rhs) { return lhs - rhs; }, + [](const glm::vec3 &lhs, float rhs) { return lhs - rhs; }, + [](float lhs, const glm::vec3 &rhs) { return lhs - rhs; }), + + sol::meta_function::multiplication, + sol::overload( + [](const glm::vec3 &lhs, const glm::vec3 &rhs) { return lhs * rhs; }, + [](const glm::vec3 &lhs, float rhs) { return lhs * rhs; }, + [](float lhs, const glm::vec3 &rhs) { return lhs * rhs; }), + + sol::meta_function::division, + sol::overload( + [](const glm::vec3 &lhs, const glm::vec3 &rhs) { return lhs / rhs; }, + [](const glm::vec3 &lhs, float rhs) { return lhs / rhs; }, + [](float lhs, const glm::vec3 &rhs) { return lhs / rhs; }), + + sol::meta_function::equal_to, + sol::overload( + [](const glm::vec3 &lhs, const glm::vec3 &rhs) { return lhs == rhs; }, + [](const glm::vec3 &lhs, float rhs) { return lhs == glm::vec3(rhs); }, + [](float lhs, const glm::vec3 &rhs) { + return glm::vec3(lhs) == rhs; + }), + + sol::meta_function::less_than, + sol::overload( + [](const glm::vec3 &lhs, const glm::vec3 &rhs) { + return (lhs.x < rhs.x) && (lhs.y < rhs.y) && (lhs.z < rhs.z); + }, + [](const glm::vec3 &lhs, float rhs) { + return (lhs.x < rhs) && (lhs.y < rhs) && (lhs.z < rhs); + }, + [](float lhs, const glm::vec3 &rhs) { + return (lhs < rhs.x) && (lhs < rhs.y) && (lhs < rhs.z); + }), + + sol::meta_function::less_than_or_equal_to, + sol::overload( + [](const glm::vec3 &lhs, const glm::vec3 &rhs) { + return (lhs.x <= rhs.x) && (lhs.y <= rhs.y) && (lhs.z <= rhs.z); + }, + [](const glm::vec3 &lhs, float rhs) { + return (lhs.x <= rhs) && (lhs.y <= rhs) && (lhs.z <= rhs); + }, + [](float lhs, const glm::vec3 &rhs) { + return (lhs <= rhs.x) && (lhs <= rhs.y) && (lhs <= rhs.z); + }), + + sol::meta_function::to_string, + [](const glm::vec3 &vec) { + std::stringstream ss; + ss << "vec3(" << vec.x << ", " << vec.y << ", " << vec.z << ")"; + return ss.str(); + }, + + sol::meta_function::index, + [](const glm::vec3 &vec, const std::string &key) { + if (key == "x") { + return vec.x; + } else if (key == "y") { + return vec.y; + } else if (key == "z") { + return vec.z; + } else if (key == "r") { + return vec.x; + } else if (key == "g") { + return vec.y; + } else if (key == "b") { + return vec.z; + } else if (key == "s") { + return vec.x; + } else if (key == "t") { + return vec.y; + } else if (key == "p") { + return vec.z; + } else { + return -1.0f; + } + }); + + // ======================================================================== + // Math + // ======================================================================== + lua.set_function("dot", [](const glm::vec2 &lhs, const glm::vec2 &rhs) { + return glm::dot(lhs, rhs); + }); + + lua.set_function("dot", [](const glm::vec3 &lhs, const glm::vec3 &rhs) { + return glm::dot(lhs, rhs); + }); + + lua.set_function("cross", [](const glm::vec3 &lhs, const glm::vec3 &rhs) { + return glm::cross(lhs, rhs); + }); + + lua.set_function("normalize", + [](const glm::vec2 &vec) { return glm::normalize(vec); }); + + lua.set_function("normalize", + [](const glm::vec3 &vec) { return glm::normalize(vec); }); + + lua.set_function("length", + [](const glm::vec2 &vec) { return glm::length(vec); }); + + lua.set_function("length", + [](const glm::vec3 &vec) { return glm::length(vec); }); + + lua.set_function("distance", [](const glm::vec2 &lhs, const glm::vec2 &rhs) { + return glm::distance(lhs, rhs); + }); + + lua.set_function("distance", [](const glm::vec3 &lhs, const glm::vec3 &rhs) { + return glm::distance(lhs, rhs); + }); + + // ======================================================================== + // Jenjin userdata + // ======================================================================== + + lua.new_usertype( + "Scene", sol::no_constructor, "AddGameObject", &Scene::AddGameObject, + "RemoveGameObject", + sol::overload((void(Scene::*)(GameObject *)) & Scene::RemoveGameObject, + (void(Scene::*)(std::shared_ptr)) & + Scene::RemoveGameObject), + "SetGameObjectTexture", + sol::overload( + (void(Scene::*)(GameObject *, const std::string &)) & + Scene::SetGameObjectTexture, + (void(Scene::*)(std::shared_ptr, const std::string &)) & + Scene::SetGameObjectTexture), + //"Build", &Scene::Build, "Update", &Scene::Update, "Render", + // &Scene::Render, + "GetGameObject", &Scene::GetGameObject, "GetCamera", // + // Useless for Lua + &Scene::GetCamera, "GetGameObjects", &Scene::GetGameObjects, "GetTarget", + &Scene::GetTarget, "GetLuaManager", &Scene::GetLuaManager, "Save", + sol::overload((void(Scene::*)(const std::string &)) & Scene::Save, + (void(Scene::*)(std::ofstream &)) & Scene::Save), + "Load", + sol::overload((void(Scene::*)(const std::string &)) & Scene::Load, + (void(Scene::*)(std::ifstream &)) & Scene::Load)); + + lua.new_usertype( + "GameObject", sol::factories([](std::string name, Mesh mesh) { + return std::make_shared(name, mesh); + }), + "name", &GameObject::name, "transform", &GameObject::transform, "color", + &GameObject::color, "mesh", &GameObject::mesh, "texturePath", + &GameObject::texturePath, "meshReferenceID", &GameObject::meshReferenceID, + "mixColor", &GameObject::mixColor, "GetName", &GameObject::GetName, + "GetPosition", &GameObject::GetPosition, "GetScale", + &GameObject::GetScale, "GetRotation", &GameObject::GetRotation, "SetName", + &GameObject::SetName, "SetPosition", &GameObject::SetPosition, "SetScale", + &GameObject::SetScale, "SetRotation", &GameObject::SetRotation, + "GetNamePointer", &GameObject::GetNamePointer, "GetPositionPointer", + &GameObject::GetPositionPointer, "GetScalePointer", + &GameObject::GetScalePointer, "GetRotationPointer", + &GameObject::GetRotationPointer, "Translate", &GameObject::Translate, + "Scale", &GameObject::Scale, "Rotate", &GameObject::Rotate); + + lua.new_usertype( + "Transform", + sol::constructors(), + "position", &GameObject::Transform::position, "scale", + &GameObject::Transform::scale, "rotation", + &GameObject::Transform::rotation); + + lua.new_usertype("Engine", sol::no_constructor, "GetCurrentScene", + &Engine::GetCurrentScene); + + // ======================================================================== + // Utility tables + // ======================================================================== + auto input_tb = lua.create_named_table("input"); + input_tb.set_function("GetMousePosition", [&]() { + if (!EngineRef) { + spdlog::error("[LUA] No Jenjin instance initialized while calling " + "`GetMousePosition`"); + return glm::vec2(-1, -1); + } + + auto scene = EngineRef->GetCurrentScene(); + if (!scene) { + spdlog::error("[LUA] No current scene while calling `GetMousePosition`"); + return glm::vec2(-1, -1); + } + + auto target = scene->GetTarget(); + if (!scene) { + spdlog::error("[LUA] No target while calling `get_key_down`"); + return glm::vec2(-1, -1); + } + + return target->GetMousePosition(); + }); + + input_tb.set_function("IsKeyDown", [&](const std::string &key) { + static std::unordered_map keys = {}; + + if (keys.empty()) { + spdlog::info("[LUA] Initializing key map"); + + for (int i = 0; i < GLFW_KEY_LAST; i++) { + auto keyName = glfwGetKeyName(i, 0); + if (keyName) { + keys[keyName] = i; + } + } + } + + auto context = glfwGetCurrentContext(); + + if (context) { + char *key_lower = (char *)key.c_str(); + std::transform(key_lower, key_lower + strlen(key_lower), key_lower, + ::tolower); + return glfwGetKey(context, keys[key_lower]) == GLFW_PRESS; + } else { + spdlog::error("[LUA] No current context while calling `GetKeyDown`"); + return false; + } + }); +} + +LuaManager::LuaManager() { + lua.open_libraries(sol::lib::base, sol::lib::string, sol::lib::table, + sol::lib::math); + + Bindings(this, lua); +} + +void LuaManager::LoadDirectory(const std::string &directory) { + for (const auto &entry : std::filesystem::directory_iterator(directory)) { + if (entry.is_regular_file() && entry.path().extension() == ".lua") { + LoadFile(entry.path().string()); + } + } +} + +void LuaManager::LoadFile(const std::string &file) { + spdlog::info("[LUA] Loading file {}", file); + + auto res = lua.safe_script_file(file, sol::script_pass_on_error); + + if (!res.valid()) { + spdlog::error("[LUA] {}", sol::error(res).what()); + } + + sol::optional readyt = + lua.get>("READY"); + sol::optional updatet = + lua.get>("UPDATE"); + + if (!readyt || !updatet) { + spdlog::error("[LUA] `READY` or `UPDATE` function not found in {}", file); + return; + } + + auto ready = readyt.value(); + auto update = updatet.value(); + + if (ready.valid() && ready.get_type() == sol::type::function && + update.valid() && update.get_type() == sol::type::function) { + functions[file] = {ready, update}; + } +} + +void LuaManager::ReloadScripts(const std::string &directory) { + /*std::vector keys(functions | std::views::keys |*/ + /* std::ranges::to>());*/ + + functions.clear(); + this->LoadDirectory(directory); + + /*for (auto &path : keys) {*/ + /* LoadFile(path);*/ + /*}*/ +} + +void LuaManager::Execute(const std::string &script) { + auto res = lua.safe_script(script, sol::script_pass_on_error); + + if (!res.valid()) { + spdlog::error("[LUA] {}", sol::error(res).what()); + } +} + +void LuaManager::ExecuteFile(const std::string &file) { + auto res = lua.safe_script_file(file, sol::script_pass_on_error); + + if (!res.valid()) { + spdlog::error("[LUA] {}", sol::error(res).what()); + } +} + +void LuaManager::Ready() { + lua["scene"] = EngineRef->GetCurrentScene(); + lua["target"] = EngineRef->GetCurrentScene()->GetTarget(); + lua["engine"] = EngineRef; + + for (auto &func : functions) { + auto &ready = func.second.first; + auto &update = func.second.second; + + if (ready) { + auto res = ready(); + + if (!res.valid()) { + spdlog::error("[LUA] {}", sol::error(res).what()); + } + } + } +} + +void LuaManager::Update() { + for (auto &func : functions) { + auto &ready = func.second.first; + auto &update = func.second.second; + + if (update) { + auto res = update(); + + if (!res.valid()) { + spdlog::error("[LUA] {}", sol::error(res).what()); + } + } + } +} diff --git a/engine/src/scene.cpp b/engine/src/scene.cpp index fa7119c..5c4e055 100644 --- a/engine/src/scene.cpp +++ b/engine/src/scene.cpp @@ -43,6 +43,12 @@ void Scene::RemoveGameObject(GameObject *gameObject) { void Scene::SetGameObjectTexture(GameObject *gameObject, const std::string &texturePath) { + + if (texturePath.empty()) { + gameObject->texturePath = ""; + return; + } + if (this->textures.find(texturePath) == this->textures.end()) { auto alpha = texturePath.find(".png") != std::string::npos; this->textures[texturePath] = @@ -112,7 +118,7 @@ void Scene::Build() { spdlog::debug("Generated buffers (vao: {}, vbo: {}, ebo: {})", vao, vbo, ebo); } -void Scene::Update() { spdlog::trace("Scene::Update()"); } +void Scene::Update() { this->luaManager.Update(); } void Scene::Render() { this->shader.use(); @@ -154,6 +160,16 @@ void Scene::Render() { } } +std::shared_ptr Scene::GetGameObject(const std::string &name) { + for (auto &go : this->gameObjects) { + if (go->name == name) { + return go; + } + } + + return nullptr; +} + struct GOBJSAVABLE { Jenjin::GameObject::Transform transform; glm::vec3 color; diff --git a/engine/src/targets/editor.cpp b/engine/src/targets/editor.cpp index bd8a527..3d887d4 100644 --- a/engine/src/targets/editor.cpp +++ b/engine/src/targets/editor.cpp @@ -17,10 +17,11 @@ using namespace Jenjin::Targets; EditorTarget::EditorTarget() {} void EditorTarget::PreRender() { - static int i = 0; - if (i < 5) { - i++; - + // HACK: This is a hack to set the camera position to 0,0,0.. + // This needs to be done properly. + static bool done = false; + if (!done) { + done = true; Jenjin::EngineRef->GetCurrentScene()->GetCamera()->SetPosition( glm::vec3(0, 0, 0)); } diff --git a/engine/src/targets/default.cpp b/engine/src/targets/runtime.cpp similarity index 59% rename from engine/src/targets/default.cpp rename to engine/src/targets/runtime.cpp index 7cbb49e..794e9b0 100644 --- a/engine/src/targets/default.cpp +++ b/engine/src/targets/runtime.cpp @@ -1,6 +1,6 @@ #define GLFW_INCLUDE_NONE -#include "jenjin/targets/default.h" +#include "jenjin/targets/runtime.h" #include "jenjin/engine.h" #include @@ -8,20 +8,23 @@ using namespace Jenjin::Targets; -void DefaultTarget::PreRender() { +void RuntimeTarget::PreRender() { + auto scene = Jenjin::EngineRef->GetCurrentScene(); + scene->Update(); + glClearColor(0.1f, 0.1f, 0.1f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); - static int i = 0; - if (i < 5) { - i++; - - Jenjin::EngineRef->GetCurrentScene()->GetCamera()->SetPosition( - glm::vec3(0, 0, 0)); + // HACK: This is a hack to set the camera position to 0,0,0.. + // This needs to be done properly. + static bool done = false; + if (!done) { + done = true; + scene->GetCamera()->SetPosition(glm::vec3(0, 0, 0)); } } -glm::vec2 DefaultTarget::GetSize() { +glm::vec2 RuntimeTarget::GetSize() { int width, height; static auto ctx = glfwGetCurrentContext(); glfwGetWindowSize(ctx, &width, &height); @@ -29,14 +32,14 @@ glm::vec2 DefaultTarget::GetSize() { return glm::vec2(width, height); } -void DefaultTarget::Resize(glm::vec2 size) { +void RuntimeTarget::Resize(glm::vec2 size) { static auto ctx = glfwGetCurrentContext(); Jenjin::EngineRef->GetCurrentScene()->GetCamera()->Resize(size); glfwSetWindowSize(ctx, (int)size.x, (int)size.y); glViewport(0, 0, (int)size.x, (int)size.y); } -glm::vec2 DefaultTarget::GetMousePosition() { +glm::vec2 RuntimeTarget::GetMousePosition() { static auto ctx = glfwGetCurrentContext(); static double x, y; glfwGetCursorPos(ctx, &x, &y); diff --git a/jenjin/game b/jenjin/game new file mode 100755 index 0000000000000000000000000000000000000000..0d333dbc1a45d1fef81b1eab9a7d4bd035f31174 GIT binary patch literal 36266360 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
;(gRY@2EvCQpB&GY|bI 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