
print("[MyLuaMod] Mod loaded\n")
print("[MyLuaMod] 111111111111111111\n")
local UEHelpers = require("UEHelpers")

print("[localization] 111111111111")
-- local texts = FindAllOf("TextRenderComponent");
-- for Index, text in pairs(texts) do
--     local t = text.Text:ToString()
--     -- print(        
--     --     string.format("[localization] [%d] %s", 
--     --     Index, text.Text:ToString())
--     -- )
--     if (t ~= nil and string.find(t, "Move") ~= nil) then
--         print(tostring(Index))
--         print(        
--             string.format("[localization] [%d] %s", 
--             Index, text.Text:ToString())
--         )
--     end
-- end




local function readTXT2Dict(file_path)
    local file = io.open(file_path, "r") -- 以只读模式打开文件
    if not file then
        error("无法打开文件: " .. file_path)
    end

    -- 创建一个空的字典（table）
    local dict = {}

    -- 逐行读取文件内容
    for line in file:lines() do
        -- 按照"====="分割每一行
        local key, value = line:match("^(.-)============(.-)$")
        if key and value then
            -- 去除可能的空白字符
            key = key:match("^%s*(.-)%s*$")
            value = value:match("^%s*(.-)%s*$")
            -- 将分割后的键值对存入字典
            dict[key] = value
        end
    end

    -- 关闭文件
    file:close()

    return dict

end

local function replace()
    print("[localization] settext")
    local dict = readTXT2Dict("lockdown_trans.txt")

    -- 打印字典内容（用于测试）
    -- for k, v in pairs(dict) do
    --     print(string.format("%s == %s", k, v))
    -- end
    
    local filename = "lockdown.txt"
    local texts = FindAllOf("TextBlock");
    local ax = 0
    local txt = ""
    for Index, text in pairs(texts) do
        local t = text.Text:ToString()
        -- print(        
        --     string.format("[localization] [%d] %s", 
        --     Index, text.Text:ToString())
        -- )
        if (t ~= nil) then
            ax=ax+1
            if (dict[t]) then
                local s = FText(dict[t]) 
                text:SetText(s)
            -- else
            --     txt = string.format("%s\n%s", txt, t)

            end
        end
    end
    --print(ax)
    
    --local file, err = io.open(filename, "w")
    
    -- if not file then
    --     print("Error opening file: " .. err)
    -- else
    --     -- 写入内容
    --     file:write(txt)
    
    --     -- 关闭文件
    --     file:close()
    -- end

    return false
    
end

LoopAsync(3000,replace)


-- RegisterHook("/Script/UMG.TextBlock:SetTexts", function(self,NewPawn)
--     print("SetTextSetTextSetText")
-- end)

-- RegisterHook("/Script/Engine.PlayerController:ClientRestart", function()
--     print("SetTextSetTextSetText")
-- end)