#ifndef GAKUMAS_LOCALIFY_TEXTURE_REPLACE_H
#define GAKUMAS_LOCALIFY_TEXTURE_REPLACE_H

#include <string>
#include <map>
#include <vector>

namespace GakumasLocal::TextureReplace {
    // 初始化纹理替换系统
    bool Initialize();
    
    // 加载配置映射
    bool LoadAssetMappings();
    
    // 检查是否需要替换指定资源
    bool ShouldReplaceAsset(const std::string& assetName, std::string& replacementPath);
    
    // 从文件加载图片数据
    bool LoadImageFile(const std::string& filePath, std::vector<unsigned char>& imageData);
    
    // 创建Unity Texture2D对象从图片数据
    void* CreateUnityTexture2DFromImage(const std::vector<unsigned char>& imageData, const std::string& fileName);
    
    // 加载自定义纹理
    void* LoadCustomTexture(const std::string& filePath);
    
    // 清理待处理的替换请求
    void CleanupPendingReplacements();
    
    // 待替换请求结构
    struct PendingReplacement {
        void* texture;
        unsigned long timestamp;
    };
    
    // 待替换的请求映射表
    extern std::map<void*, PendingReplacement> g_pendingReplacements;
}

#endif // GAKUMAS_LOCALIFY_TEXTURE_REPLACE_H
