Перейти к содержимому

BlackBurn

Пользователи
  • Публикации

    1
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем BlackBurn


  1. Пробую с помощью библиотеки сделать программу для отображения состояния моих реакторов. Не могу понять как перерисовывать содержимое экрана. У меня при включении программы оно отображает состояние реакторов на момент запуска программы, а потом, если выключить или включить реакторы, то на экране изменений нет. Как можно перерисовывать экран при изменении переменной color?

    local com = require("component")
    local GUI = require("GUI")
    local g = com.gpu;
    local p = com.proxy;
    local mainContainer = GUI.fullScreenContainer()
    local clr_main = 0x000FF
    local buffer = require("doubleBuffering")
    
    
    while true do
    
    local adresses ={
    [1] = com.get("872"),
    [2] = com.get("9bd"),
    [3] = com.get("03b"),
    [4] = com.get("69a"),
    [5] = com.get("a27"),
    [6] = com.get("8ef"),
    [7] = com.get("844"),
    [8] = com.get("4ad"),
    [9] = com.get("dbb"),
    [10] = com.get("550"),
    [11] = com.get("43f"),
    [12] = com.get("ba6"),
    [13] = com.get("d7b"),
    [14] = com.get("bcf"),
    [15] = com.get("a93"),
    [16] = com.get("f92"),
    [17] = com.get("2db"),
    [18] = com.get("6cd")
    }
    mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x2D2D2D, 0.4))local layout = mainContainer:addChild(GUI.layout(1, 1, mainContainer.width, mainContainer.height, 7, 10))
    --
    local function GetComponentsReactors(adressesComponents)
    	local proxys = {}
    	for i = 1, #adressesComponents do
    		proxys[i] = p(adressesComponents[i])
    	end
    	return proxys
    end
    
    local reactors = GetComponentsReactors(adresses)
    
    for i = 1, #reactors do
    	if reactors[i].producesEnergy() then
    		color = true
    	end
    end
    local color = color and 0x008000 or 0xFF0000
    --Разметка
    layout:setCellPosition(1, 1, layout:addChild(GUI.text(1, 1, clr_main, "№")))
    layout:setCellPosition(2, 1, layout:addChild(GUI.text(1, 1, clr_main, "Блок №1")))
    layout:setCellPosition(3, 1, layout:addChild(GUI.text(1, 1, clr_main, "Блок №2")))
    layout:setCellPosition(4, 1, layout:addChild(GUI.text(1, 1, clr_main, "Блок №3")))
    layout:setCellPosition(5, 1, layout:addChild(GUI.text(1, 1, clr_main, "Блок №4")))
    layout:setCellPosition(6, 1, layout:addChild(GUI.text(1, 1, clr_main, "Блок №5")))
    layout:setCellPosition(7, 1, layout:addChild(GUI.text(1, 1, clr_main, "Блок №6")))
    --Group #1
    layout:setCellPosition(2, 2, layout:addChild(GUI.text(1, 1, color, "Реактор 1")))
    layout:setCellPosition(2, 3, layout:addChild(GUI.text(1, 1, color, "Реактор 2")))
    layout:setCellPosition(2, 4, layout:addChild(GUI.text(1, 1, color, "Реактор 3")))
    layout:setCellPosition(2, 5, layout:addChild(GUI.text(1, 1, color, "Реактор 4")))
    layout:setCellPosition(2, 6, layout:addChild(GUI.text(1, 1, color, "Реактор 5")))
    layout:setCellPosition(2, 7, layout:addChild(GUI.text(1, 1, color, "Реактор 6")))
    layout:setCellPosition(2, 8, layout:addChild(GUI.text(1, 1, color, "Реактор 7")))
    layout:setCellPosition(2, 9, layout:addChild(GUI.text(1, 1, color, "Реактор 8")))
    layout:setCellPosition(2, 10, layout:addChild(GUI.text(1, 1, color, "Реактор 9")))
    --Group #2
    layout:setCellPosition(3, 2, layout:addChild(GUI.text(1, 1, color, "Реактор 1")))
    layout:setCellPosition(3, 3, layout:addChild(GUI.text(1, 1, color, "Реактор 2")))
    layout:setCellPosition(3, 4, layout:addChild(GUI.text(1, 1, color, "Реактор 3")))
    layout:setCellPosition(3, 5, layout:addChild(GUI.text(1, 1, color, "Реактор 4")))
    layout:setCellPosition(3, 6, layout:addChild(GUI.text(1, 1, color, "Реактор 5")))
    layout:setCellPosition(3, 7, layout:addChild(GUI.text(1, 1, color, "Реактор 6")))
    layout:setCellPosition(3, 8, layout:addChild(GUI.text(1, 1, color, "Реактор 7")))
    layout:setCellPosition(3, 9, layout:addChild(GUI.text(1, 1, color, "Реактор 8")))
    layout:setCellPosition(3, 10, layout:addChild(GUI.text(1, 1, color, "Реактор 9")))
    
    
    ------------------------------------------------------------------------------
    mainContainer:drawOnScreen(true)
    mainContainer:startEventHandling()
    end 
×
×
  • Создать...