Как сохранить данные функции?

У меня есть функция, которая создаёт progressbar:

function progressbar(value, x, y, text, update)
    if update == 0 then
    local border1 = glassesTerminal.addBox2D();
    border1.setSize(100, 1)
    border1.addTranslation(x, y-1, 0)
    border1.addColor(0, 0, 0, 1)
    border1.addColor(0, 0, 0, 1)

    local border2 = glassesTerminal.addBox2D();
    border2.setSize(100, 1)
    border2.addTranslation(x, y+15, 0)
    border2.addColor(0, 0, 0, 1)
    border2.addColor(0, 0, 0, 1)

    local border3 = glassesTerminal.addBox2D();
    border3.setSize(1, 15)  
    border3.addTranslation(x-1, y, 0)
    border3.addColor(0, 0, 0, 1)
    border3.addColor(0, 0, 0, 1)

    local border4 = glassesTerminal.addBox2D();
    border4.setSize(1, 15)
    border4.addTranslation(x+100, y, 0)
    border4.addColor(0, 0, 0, 1)
    border4.addColor(0, 0, 0, 1)


    local bar = glassesTerminal.addBox2D();
    bar.setSize(value, 15)
    bar.addTranslation(x, y, 0)
    if value >= 90 then
            bar.addColor(1, 0, 0, 0.5)
            bar.addColor(1, 0, 0, 0.5)        
        else
            bar.addColor(0, 1, 0, 0.5)
            bar.addColor(0, 1, 0, 0.5)
    end

    local text_p = glassesTerminal.addText2D()
    text_p.setText(text)
    text_p.setFont("")
    text_p.setFontSize(8)
    text_p.addTranslation(x+5, y+2.5, 0)
    end

    if update == 1 then
        text_p.setText(text)
        bar.setSize(value, 15)
        if value >= 90 then
            bar.addColor(1, 0, 0, 0.5)
            bar.addColor(1, 0, 0, 0.5)        
        else
            bar.addColor(0, 1, 0, 0.5)
            bar.addColor(0, 1, 0, 0.5)
    end
    end
end

local p_energy = progressbar(value_energy, 15, 25, energy_reactor, 0)
local p_heat = progressbar(value_heat, 15, 50, heat_reactor, 0)

while i < 1 do
    os.sleep(1)
    p_energy = progressbar(value_energy, 15, 25, energy_reactor, 1)
    p_heat = progressbar(value_heat, 15, 50, heat_reactor, 1)
end
 

Если использовать один progressbar, то всё работает. Но если создать два progressbar'a, то новые значения объявляются только на втором progressbar'e в цикле. Без цикла вроде всё нормально работает. Почему так происходит?

Использую следующие моды:

OpenComputers - https://github.com/MightyPirates/OpenComputers

OpenGlasses2 - https://github.com/StarChasers/OCGlasses/wiki

P.S: Оказывается, что при создании второго progressbar'a, данные первого перезаписываются и удаляются.


Ответы (0 шт):