Tesseract-Engine/src/Componenets/ScriptComponent.h

43 lines
1.0 KiB
C
Raw Normal View History

2024-12-27 21:27:05 +00:00
// ScriptComponent.hpp
#pragma once
#include "Component.h"
#include <string>
#include <yaml-cpp/yaml.h>
#include "Windows/LoggerWindow.h"
#include "Engine/LuaAPI.h" // Include the LuaManager class
class ScriptComponent : public Component
{
public:
ScriptComponent();
virtual ~ScriptComponent();
std::string ScriptPath; // Path to the Lua script
// Component interface implementation
virtual const std::string& GetName() const override;
static const std::string& GetStaticName();
virtual YAML::Node Serialize() override;
virtual void Deserialize(const YAML::Node& node) override;
// Script management methods
bool Initialize();
void Update(float deltaTime);
private:
LuaManager m_LuaManager; // Instance of LuaManager
std::string m_LastErrorMessage; // To prevent duplicate error logs
2024-12-28 19:06:42 +00:00
// block copying
2024-12-27 21:27:05 +00:00
ScriptComponent(const ScriptComponent&) = delete;
ScriptComponent& operator=(const ScriptComponent&) = delete;
static const std::string name;
};