增加Lua导出和FileList
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include "libNPK.h"
|
||||
|
||||
|
||||
struct LuaNPKFileItemBaseInfo : public NPK::FileItemBaseInfo
|
||||
{
|
||||
const char* c_keyName() const { return keyName.c_str(); }
|
||||
};
|
||||
|
||||
struct LuaNPKFileItemFullInfo : public NPK::FileItemFullInfo
|
||||
{
|
||||
const char* c_npkName() const { return npkName.c_str(); }
|
||||
const char* c_npkBase() const { return npkBase.c_str(); }
|
||||
const char* c_keyName() const { return keyName.c_str(); }
|
||||
};
|
||||
|
||||
class LuaNPKFileStream
|
||||
{
|
||||
public:
|
||||
const char* name(void) const;
|
||||
uint32_t size(void) const;
|
||||
uint32_t read(void* buffer, uint32_t size);
|
||||
bool seek(uint32_t offset);
|
||||
uint32_t tell(void) const;
|
||||
uint32_t crc32(void);
|
||||
bool isEOF(void) const;
|
||||
|
||||
NPK::IFileStream* m_pFileStream = nullptr;
|
||||
};
|
||||
|
||||
class LuaNPKFileList
|
||||
{
|
||||
public:
|
||||
static LuaNPKFileList* createEmpty();
|
||||
static void destroy(LuaNPKFileList* instance);
|
||||
public:
|
||||
int32_t getFileCounts(void) const;
|
||||
LuaNPKFileItemFullInfo getFileItem(int32_t index) const;
|
||||
|
||||
public:
|
||||
NPK::IFileList* m_pFileList = nullptr;
|
||||
};
|
||||
|
||||
class LuaNPKFile
|
||||
{
|
||||
public:
|
||||
static void registerLuaApi(struct lua_State* L);
|
||||
static LuaNPKFile* create();
|
||||
static void destroy(LuaNPKFile* instance);
|
||||
|
||||
public:
|
||||
bool openPakFile(const char* szPackFileName);
|
||||
bool closePakFile(void);
|
||||
int32_t getFileCounts(void) const;
|
||||
|
||||
LuaNPKFileList* generateFullInfoList();
|
||||
|
||||
LuaNPKFileItemBaseInfo getFileNode(int32_t index) const;
|
||||
LuaNPKFileStream* openFileStream(const char* szFileName);
|
||||
void closeFileStream(LuaNPKFileStream* fileStream);
|
||||
|
||||
public:
|
||||
NPK::INPKFile* m_pNPKFile = nullptr;
|
||||
|
||||
public:
|
||||
LuaNPKFile();
|
||||
~LuaNPKFile();
|
||||
};
|
||||
Reference in New Issue
Block a user