#pragma once
#include "Global/Global_Game.h"
#include "Asset/Squirrel/Sqr_System.hpp"
#include "Asset/Squirrel/Sqr_UI.hpp"
#include "Asset/Squirrel/Sqr_BaseObject.hpp"
#include "Asset/Squirrel/Sqr_ActiveObject.hpp"
#include "Asset/Squirrel/Sqr_CharacterObject.hpp"
#include "Asset/Squirrel/Sqr_Asset.hpp"
class SquirrelManager
{
public:
    // 删除拷贝构造和赋值运算符，确保无法复制
    SquirrelManager(const SquirrelManager &) = delete;
    SquirrelManager &operator=(const SquirrelManager &) = delete;

    // 移动构造和赋值也删除，避免意外转移
    SquirrelManager(SquirrelManager &&) = delete;
    SquirrelManager &operator=(SquirrelManager &&) = delete;

    // 全局访问点
    static SquirrelManager &GetInstance()
    {
        static SquirrelManager instance; // 局部静态变量，保证只初始化一次
        return instance;
    }

private:
    // 构造函数和析构函数设为私有，防止外部创建和销毁
    SquirrelManager() = default;
    ~SquirrelManager() = default;

public:
    // 初始化
    void Init();
};
