PGRData/Script/matrix/xconfig/XCollectionWallConfigs.lua

236 lines
6.2 KiB
Lua
Raw Normal View History

XCollectionWallConfigs = XCollectionWallConfigs or {}
local TABLE_COLLECTION_WALL = "Share/ScoreTitle/CollectionWall.tab"
local TABLE_COLLECTION_WALL_DECORATION = "Share/ScoreTitle/CollectionWallDecoration.tab"
local TABLE_COLLECTION_SIZE = "Client/CollectionWall/CollectionSize.tab"
-- 装饰品种类
XCollectionWallConfigs.EnumDecorationType = {
Background = 1, -- 背景
Pedestal = 2, -- 底座
}
-- 收藏品墙的状态
XCollectionWallConfigs.EnumWallState = {
Lock = 1, -- 未解锁
None = 2, -- 空白
Normal = 3, -- 正常
}
-- 收藏品墙格子的使用的种类
XCollectionWallConfigs.EnumWallGridOpenType = {
Overview = 1, -- 管理界面
Setting = 2, -- 设置界面
}
-- 收藏品墙装饰品的解锁类型
XCollectionWallConfigs.EnumDecorationUnlockType = {
Condition = 1, -- 条件解锁
Reward = 2, -- 奖励解锁
}
-- 编辑模式选择的种类
XCollectionWallConfigs.EnumSelectType = {
BACKGROUND = 1, -- 墙面
PEDESTAL = 2, -- 底座
LITTL = 3, -- 模型小
MIDDLE = 4, -- 模型中
BIG = 5, -- 模型大
}
-- 墙面单元格尺寸为90*90
XCollectionWallConfigs.CellSize = 90
local CollectionWallCfg = {}
local CollectionWallDecorationCfg = {}
local CollectionSizeCfg = {}
function XCollectionWallConfigs.Init()
CollectionWallCfg = XTableManager.ReadByIntKey(TABLE_COLLECTION_WALL, XTable.XTableCollectionWall, "Id")
CollectionWallDecorationCfg = XTableManager.ReadByIntKey(TABLE_COLLECTION_WALL_DECORATION, XTable.XTableCollectionWallDecoration, "Id")
CollectionSizeCfg = XTableManager.ReadByIntKey(TABLE_COLLECTION_SIZE, XTable.XTableCollectionSize, "Id")
end
------------------------------------------------------------------ CollectionWall.tab数据读取 -------------------------------------------------------
---
--- 根据'id'获取收藏品墙的配置
--- 建议使用XCollectionWall.lua的接口来获取需要的数据
---@param id number
---@return table
function XCollectionWallConfigs.GetCollectionWallCfg(id)
local config = CollectionWallCfg[id]
if not config then
XLog.ErrorTableDataNotFound("XCollectionWallConfigs.GetCollectionWallCfg",
"收藏品墙配置", TABLE_COLLECTION_WALL, "Id", tostring(id))
return {}
end
return config
end
---
--- 获取所有收藏品墙的Id数组
---@return table
function XCollectionWallConfigs.GetCollectionWallIdList()
local idList = {}
for id, _ in pairs(CollectionWallCfg) do
table.insert(idList, id)
end
return idList
end
------------------------------------------------------------------ CollectionWallDecoration.tab数据读取 -------------------------------------------------------
---
--- 根据'id'获取收藏品墙饰品配置
---@param id number
---@return table
local function GetColDecCfgList(id)
local config = CollectionWallDecorationCfg[id]
if not config then
XLog.ErrorTableDataNotFound("XCollectionWallConfigs.GetColDecCfgList",
"收藏品墙饰品配置", TABLE_COLLECTION_WALL_DECORATION, "Id", tostring(id))
return {}
end
return config
end
---
--- 获取全部type种类的收藏品墙饰品配置数组
---@param type number
---@return table
function XCollectionWallConfigs.GetColDecCfgListByType(type)
local result = {}
for _,data in pairs(CollectionWallDecorationCfg) do
if data.Type == type then
table.insert(result,data)
end
end
return result
end
---
--- 根据'id'获取收藏品墙饰品的种类
---@param id number
---@return number
function XCollectionWallConfigs.GetColDecType(id)
local cfg = GetColDecCfgList(id)
return cfg.Type
end
---
--- 根据'id'获取收藏品墙饰品的名称
---@param id number
---@return string
function XCollectionWallConfigs.GetColDecName(id)
local cfg = GetColDecCfgList(id)
return cfg.Name
end
---
--- 根据'id'获取收藏品墙饰品的图标
---@param id number
---@return string
function XCollectionWallConfigs.GetColDecIcon(id)
local cfg = GetColDecCfgList(id)
return cfg.Icon
end
---
--- 根据'id'获取收藏品墙饰品的路径
---@param id number
---@return string
function XCollectionWallConfigs.GetColDecPath(id)
local cfg = GetColDecCfgList(id)
return cfg.Path
end
---
--- 根据'id'获取收藏品墙饰品的解锁类型
---@param id number
---@return number
function XCollectionWallConfigs.GetColDecUnlockType(id)
local cfg = GetColDecCfgList(id)
return cfg.UnlockType
end
---
--- 根据'id'获取收藏品墙饰品的解锁条件
---@param id number
---@return number
function XCollectionWallConfigs.GetColDecCondition(id)
local cfg = GetColDecCfgList(id)
return cfg.Condition
end
---
--- 根据'id'获取收藏品墙饰品的解锁描述
---@param id number
---@return string
function XCollectionWallConfigs.GetColDecLockDesc(id)
local cfg = GetColDecCfgList(id)
return cfg.LockDesc
end
---
--- 根据'id'获取收藏品墙饰品的排序值
---@param id number
---@return string
function XCollectionWallConfigs.GetColDecRank(id)
local cfg = GetColDecCfgList(id)
return cfg.Rank
end
------------------------------------------------------------------ CollectionSize.tab数据读取 -------------------------------------------------------
---
--- 根据'id'获取收藏品尺寸数据
---@param id number
---@return number
local function GetCollectionSizeCfg(id)
local config = CollectionSizeCfg[id]
if not config then
XLog.ErrorTableDataNotFound("XCollectionWallConfigs.GetColDecCfgList",
"收藏品尺寸配置", TABLE_COLLECTION_SIZE, "Id", tostring(id))
return {}
end
return config
end
---
--- 根据'id'获取收藏品尺寸
---@param id number
---@return number
function XCollectionWallConfigs.GetCollectionSize(id)
local cfg = GetCollectionSizeCfg(id)
return cfg.Size
end
---
--- 根据'id'获取收藏品缩放系数
---@param id number
---@return number
function XCollectionWallConfigs.GetCollectionScale(id)
local cfg = GetCollectionSizeCfg(id)
return cfg.Scale
end
---
--- 根据'id'获取收藏品占用的格子
---@param id number
---@return number
function XCollectionWallConfigs.GetCollectionGridNum(id)
local cfg = GetCollectionSizeCfg(id)
return cfg.GridNum
end