---@meta --- 基础函数 ---@param ... any function log(...) end ---@param ... any function delete(...) end ---* buf转为utf8字符串(不进行检查) ---@param buf userdata ---@return string function to_string(buf) end --- File命名空间 File = {} ---* 获取文件夹所有文件 ---@return nil 返回相对路径 ---@param path string 路径 ---@param ret string 返回的文件名 ---@param rule table 匹配规则 ---@param recursion boolean 递归文件夹 function File.GetPathFileAll(path, ret, rule, recursion) end ---* 返回绝对路径 ---* ---* 空路径返回空 ---@param path_name string * ---@return string function File.GetAbsolute(path_name) end ---* 返回相对路径 ---@return string 返回值带有./ ---* 效率较低,可以使用String::ErasePath移除头部字符串 ---@param path_name string * @param[in] path_base ---@param path_base string function File.GetRelative(path_name, path_base) end ---* 创建目录 ---@return boolean 目录存在也返回真 ---@param path string 路径 function File.CreateFolder(path) end ---* 删除文件夹内容,但不删除文件夹 ---* 文件夹不存在则什么都不做 ---@param path_name string 路径名称 ---@return nil function File.DeleteContent(path_name) end ---* 重命名文件 ---@param src string 路径名称 ---@param tar string 修改为 ---@return boolean function File.Rename(src, tar) end ---* memcpy_s的替代品 ---@param target nil ---@param size number ---@param source nil ---@param size_source number ---@return nil function File.Copy(target, size, source, size_source) end ---* 返回文件所在路径 ---* a/b返回a/,a/b/返回a/b/,a/b/c.txt返回a/b/ ---@param path_name string 必须传入右斜杠 ---@return string function File.GetFilePath(path_name) end ---* 返回文件名 ---* a/b返回b,a/b/返回空 ---@param path_name string * @note a/b返回b,a/b/返回空 ---@return string function File.GetFileName(path_name) end ---* 按文本读文件 ---@param path_name string 路径名称 ---@return string function File.GetString(path_name) end ---* 将字符串保存为文件 ---@param str string 字符串 ---@param path_name string 保存路径(文件夹必须存在) ---@return boolean function File.SaveString(str, path_name) end ---@type any File.GetAbsolute = nil ---@type any File.GetRelative = nil ---@type any File.CreateFolder = nil ---@type any File.DeleteContent = nil ---@type any File.Rename = nil ---@type any File.Copy = nil ---@type any File.GetFilePath = nil ---@type any File.GetFileName = nil ---@type any File.GetString = nil --- String命名空间 String = {} ---* 移除路径(第一个子串) ---@param path_name string ---@param path string ---@return string function String.ErasePath(path_name, path) end ---* 获取文件名不含后缀 ---@param path_name string ---@return string function String.GetFileStem(path_name) end ---@param ... any function String.toPosition2(...) end ---* 替换后缀格式,没有则添加 ---* 例如 "img/dog.ani.png" -> "img/dot.ani.jpg" ---* 例如 "img/dog" -> "img/dot.jpg" ---@param path_name string ---@param fmt string 格式,不含点号 ---@return nil function String.ReplaceExtension(path_name, fmt) end ---* 移除 路径末尾名称(返回文件所在目录,移除后末尾为/) ---* 例如 "img/dog.ani.png" -> "img/" ---@param path_name string ---@return nil function String.EraseFilename(path_name) end ---@type any String.ErasePath = nil ---@type any String.GetFileStem = nil ---@type any String.toPosition2 = nil --- Img命名空间 Img = {} --- ---@return string function Img.REGEX_FORMAT(...) end ---* 调整为指定大小 ---* 保留原有值 ---@param size Size ---@return nil function Img.Resize(size) end ---* 设置透明色颜色为0,针对于某些颜色透明,但是其他通道非0 ---@param img Image ---@param a number 阈值,小于等于a就认为是透明的 ---@param col_new number 替换为颜色 ---@return nil function Img.SetAlphaZero(img, a, col_new) end ---* 创建一个声音 ---* 不会返回空指针 ---@param name string 资源名 ---@return any function Img.Create(name) end ---* 保存到图像 ---@param img Image ---@param path_name string ---@return boolean function Img.Save(img, path_name) end ---@type string Img.REGEX_FORMAT = ".(jpg|jpeg|png|tag|bmp|gif|hdr|pic)$" ---@type any Img.Save = nil --- ParamWindow类 ---@class ParamWindow ParamWindow = {} ---@param ... any function ParamWindow:title(...) end --- Sprite类 ---@class Sprite Sprite = {} ---* @brief 绘制一帧 ---@param window any function Sprite:Render(window) end ---* @brief 设置颜色 ---@param col Color ---@param type UIText function Sprite:SetColor(col, type) end --- Text类 ---@class Text Text = {} ---* @brief 绘制一帧 ---@param window any function Text:Render(window) end ---* @brief 设置内容 --- * @retval 未修改返回false --- * --- * @remarks 格式化标签如下 --- * @remarks [c_red] 颜色 红色,可以有3个,额外指定描边和阴影的颜色 --- * @remarks [f_0] 字体 id为0的字体 --- * @remarks [s_24_2_1] 字体大小 24大小,2描边大小,1阴影偏移 --- * @remarks [spr_test_0_1] 精灵 test, [0, 1] --- * @remarks [v_money] 变量 money --- * @remarks [t_8] 对齐 tab对齐到8个字体大小,默认为2个(即4个英文字母宽度) --- * @remarks [l] 左中括号 --- * @remarks [r] 右中括号 --- * @remarks [n_2] 换行 换行2次,默认为1次 --- * @remarks [b_white] 背景颜色 白色 --- * @remarks 特殊的 [c]、[f] 还原到字体本身颜色和字体 ---@param str string 要设置的内容 function Text:SetString(str) end --- Factory类 ---@class Factory Factory = {} ---* @brief 设置资源路径(不设置则不会加载) ---@param path string 路径 function Factory:SetPath(path) end ---* @brief 创建一个文本 --- * @retval 失败返回nullptr ---@param font_id number 字体编号 ---@param font_size number 字体大小(单位为像素,英文字母大约为一半大小) ---@param col Color 颜色 ---@param font_outline number 描边大小 ---@param col_outline Color 描边颜色 ---@param font_shadow number 阴影偏移 ---@param col_shadow Color 阴影颜色 function Factory:CreateText(font_id, font_size, col, font_outline, col_outline, font_shadow, col_shadow) end ---@param ... any function Factory:CreateTextDefault(...) end ---* @brief 创建一个精灵 --- * @retval 失败返回默认精灵,错误产生日志。 ---@param name string 名字,例如“ui.btn0” ---@param index number 下标 function Factory:CreateSprite(name, index) end --- System类 ---@class System System = {} ---* @brief 设置 初始化函数 ---@param func any function System:SetFuncInit(func) end ---* @brief 设置 帧函数 ---@param func any function System:SetFuncRun(func) end --- Graphics类 ---@class Graphics Graphics = {} ---* @brief 绘制2D矩形 ---@param p0 Position2 矩形左上角的2D坐标 ---@param p1 Position2 矩形右下角的2D坐标 function Graphics:Rectangle2D(p0, p1) end --- Position类 ---@class Position Position = {} ---@param ... any function Position:x(...) end ---@param ... any function Position:y(...) end --- 全局g_system实例 g_system = nil --[[@type System]] ---* 设置 初始化函数 ---@param func any function g_system.SetFuncInit(func) end ---* 设置 帧函数 ---@param func any function g_system.SetFuncRun(func) end --- 全局g_gfx实例 g_gfx = nil --[[@type Graphics]] ---* 绘制2D矩形 ---@param p0 Position2 矩形左上角的2D坐标 ---@param p1 Position2 矩形右下角的2D坐标 function g_gfx.Rectangle2D(p0, p1) end --- 全局g_factory实例 g_factory = nil --[[@type Factory]] ---* 设置资源路径(不设置则不会加载) ---@param path string 路径 function g_factory.SetPath(path) end ---* 创建一个文本 ---@return gcText 失败返回nullptr ---@param font_id number 字体编号 ---@param font_size number 字体大小(单位为像素,英文字母大约为一半大小) ---@param col Color 颜色 ---@param font_outline number 描边大小 ---@param col_outline Color 描边颜色 ---@param font_shadow number 阴影偏移 ---@param col_shadow Color 阴影颜色 function g_factory.CreateText(font_id, font_size, col, font_outline, col_outline, font_shadow, col_shadow) end ---@param ... any function g_factory.CreateTextDefault(...) end ---* 创建一个精灵 ---@return any 失败返回默认精灵,错误产生日志。 ---@param name string 名字,例如“ui.btn0” ---@param index number 下标 function g_factory.CreateSprite(name, index) end --- 辅助类型定义 ---@class Position2 ---@field x number X坐标 ---@field y number Y坐标 ---@class Size ---@field w number 宽度 ---@field h number 高度 ---@class Color ---@field r number 红色通道 (0-1) ---@field g number 绿色通道 (0-1) ---@field b number 蓝色通道 (0-1) ---@field a number 透明度 (0-1)