Files
BusyRabbit/Content/Lua/Utils/DataTableUtils.lua

39 lines
1.1 KiB
Lua
Raw Normal View History

local DataTableUtils = {}
local BusyGamePlayLibrary = import("BusyGamePlayLibrary")
function DataTableUtils.GetDataTable(table_name)
return BusyGamePlayLibrary.GetGameDataTable(table_name)
end
function DataTableUtils.GetDataTableRow(table_name, row_name)
local data_table = DataTableUtils.GetDataTable(table_name)
if not data_table then
return nil
end
return data_table:FindRow(row_name)
end
--[[
LuaExtensionMethod.cpp:22-28
//
static int FindRowWrapper(lua_State* L) {
UDataTable* dataTable = LuaObject::checkUD<UDataTable>(L, 1);
FName rowName = LuaObject::checkValue<FName>(L, 2);
UScriptStruct* rowStruct = LuaObject::checkUD<UScriptStruct>(L, 3);
// 使 FindRow
uint8* rowData = dataTable->FindRowUnchecked(rowName);
if (rowData && rowStruct) {
// Lua
return LuaObject::pushStruct(L, rowStruct, rowData);
}
return LuaObject::pushNil(L);
}
pushStruct只接受两个参数
]]
return DataTableUtils