建档
This commit is contained in:
64
source/squirrel/SquirrelEx.h
Normal file
64
source/squirrel/SquirrelEx.h
Normal file
@@ -0,0 +1,64 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
#include <squirrel.h> // Squirrel核心头文件
|
||||
#include <sqstdio.h> // Squirrel标准IO库
|
||||
#include <sqstdaux.h> // 新增:包含 sqstd_seterrorhandlers 等辅助函数
|
||||
#include <sqstdblob.h> // 新增:包含 sqstd_register_bloblib 函数
|
||||
#include <sqstdsystem.h> // 新增:包含 sqstd_register_systemlib 函数
|
||||
#include <sqstdmath.h> // 新增:包含 sqstd_register_mathlib 函数
|
||||
#include <sqstdstring.h> // 新增:包含 sqstd_register_stringlib 函数
|
||||
#include <stdarg.h>
|
||||
#include <json.hpp>
|
||||
|
||||
#include "Tool/Tool_Network.h"
|
||||
|
||||
#ifdef SQUNICODE
|
||||
|
||||
#define scvprintf vfwprintf
|
||||
#else
|
||||
|
||||
#define scvprintf vfprintf
|
||||
#endif
|
||||
|
||||
class SquirrelEx
|
||||
{
|
||||
public:
|
||||
SquirrelEx(const SquirrelEx &) = delete;
|
||||
SquirrelEx &operator=(const SquirrelEx &) = delete;
|
||||
SquirrelEx(SquirrelEx &&) = delete;
|
||||
SquirrelEx &operator=(SquirrelEx &&) = delete;
|
||||
// 全局访问点
|
||||
static SquirrelEx &GetInstance()
|
||||
{
|
||||
static SquirrelEx instance; // 局部静态变量,保证只初始化一次
|
||||
return instance;
|
||||
}
|
||||
|
||||
// 打印控制台
|
||||
static void printfunc(HSQUIRRELVM v, const SQChar *s, ...);
|
||||
// 错误打印控制台
|
||||
static void errorfunc(HSQUIRRELVM v, const SQChar *s, ...);
|
||||
// 从字符串编译Sqr脚本
|
||||
bool Compilebuffer(std::string Path, std::string Code);
|
||||
|
||||
public:
|
||||
// 初始化
|
||||
void Init();
|
||||
// 请求网络脚本
|
||||
void RequestNetScript(std::string Ip, std::string Port);
|
||||
// 加载本地脚本
|
||||
void LoadLocalScript();
|
||||
// 运行
|
||||
void Run();
|
||||
// 清理
|
||||
void Clean();
|
||||
|
||||
// 获取SquirrelVM
|
||||
HSQUIRRELVM GetSquirrelVM();
|
||||
|
||||
private:
|
||||
SquirrelEx(/* args */);
|
||||
~SquirrelEx();
|
||||
HSQUIRRELVM v = nullptr;
|
||||
|
||||
};
|
||||
Reference in New Issue
Block a user