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

Вывод информации на open glases

Рекомендуемые сообщения

  • Описание: вывод определенной информации на open glases 
  • Награда: если кто возьмется за это то готов и материально помочь если мне помогут понять как это работает 
  • Оборудование: все что потребуется  
  • Требования к ПО: нужно сделать что бы на очки выводилась информация по энергии от реакторов и сколько поподает в молекулярный сборщик ! сам я похоже тут для такого 
  • Связь: дс RazoR1#5751 ( если есть те кто сможет разжевать интересующие меня темы буду очень рад с вами поговорить )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Asior я описывал OpenPeripheral'овские очки, OpenGlasses это несколько другое https://minecraft.bymarcin.com/OpenGlasses/doku.php?id=start.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

аа, а я почему-то про них подумал, ну бывает. Ошибочка вышла

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня есть программа, но там нет вывода на очки энергии с реактора, молекулярки, но дописать это совсем не сложно. Вот держи. 

 

local component = require("component")
local event = require("event")
local keyboard = require("keyboard")
local glasses = component.glasses
local fs = require "filesystem"
local timeConstant = 0.5 --время задержки для измерения тпс 


local uuid = {
    {["uuid_radar"] = "bf7955f9-b734-4b0d-9372-d5c034fabacf", ["name"] = "radar_home"}
}

local whitelist = { --Белый список, горят зеленым
    "user1",
    "user2"
}

local blacklist = { --Не выводим на очки совсем, те кто в ЧОРТном списке. 
    "user3"
}

local function time()
    local f = io.open("/tmp/timeFile", "w")
    f:write("test")
    f:close()
    return (fs.lastModified("/tmp/timeFile"))
end

function addinformation()
    realTimeOld = time()
    os.sleep(timeConstant)
    realTimeNew = time()
    realTimeDiff = realTimeNew - realTimeOld
    TPS = 20000 * timeConstant / realTimeDiff
    tps_widget = glasses.addText2D()
    tps_widget.addTranslation(100, 14, 0)
    tps_widget.setText("TPS: ".. string.format("%.3f", TPS))
    tps_widget.addColor(255,0,0,1)
    tps_widget.setFontSize(18)
end

function SaveListPlayers(Listplayers, TableListNamePlayers)
    TableListNamePlayers = Listplayers
end

function players()
    local location = {"Сейчас дома:"}
    for s = 1, #uuid do
        local radar = component.proxy(uuid[s].uuid_radar)
        local Listplayers = radar.getPlayers()
        print("ListplayersCount: " ..#Listplayers)
        print("uuidAmount: " ..#uuid)
        SaveListPlayers(Listplayers,uuid[s])
        if Listplayers[1].name ~= nil then
            print("PlayersAvalabile: " ..Listplayers[1].name)
            function keyuuid()
                sskeyuuid = uuid[s].name.getID()
            end
            pcall(keyuuid)
            print(sskeyuuid)
            if sskeyuuid == nil then
                    WidgetnameByNAME = uuid[s].name
                    WidgetnameByNAME = glasses.addText2D()
                    WidgetnameByNAME.addTranslation(x + 6,height, 0)
                    WidgetnameByNAME.setText(location[s])
                    WidgetnameByNAME.addColor(255,215,0,1)
                    WidgetnameByNAME.setFontSize(16)
            end
            for i = 1, #Listplayers do
                print("Listplayers[i].name: "..Listplayers[i].name)
                WidgetnameByNickName = Listplayers[i].name
                print("WidgetnameByNickName: " ..WidgetnameByNickName)
                WidgetnameByNickName = glasses.addText2D()
                WidgetnameByNickName.addTranslation(x + 10, 12 * i + height, 0)
                WidgetnameByNickName.addColor(255,0,0,0.4)
                for p = 1, #whitelist do
                    if Listplayers[i].name == whitelist[p] then
                        WidgetnameByNickName.addColor(0,255,0,0.85)
                            plr = Listplayers[i].name
                            WidgetnameByNickName.setText(plr)
                            WidgetnameByNickName.setFontSize(12) 
                    end
                end
                for k = 1, #blacklist do
                    if Listplayers[i].name == blacklist[k] then
                        Listplayers[i].name.removeWidget()
                    end
                end
            end
            height = height + #Listplayers * 10 + 10
        end
end
end

function main()
    if keyboard.isKeyDown(keyboard.keys.w) and keyboard.isControlDown() then
        print("Exiting...")
        os.exit()
    end
    offset = 17
    height = 30
    x, y = 1, 1
    players()
    addinformation()
end

while true do
pcall(main)
    os.sleep(6)
    glasses.removeAll()
end


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

По мерилу энергии могу посоветовать component.energy_counter.getCount (энергосчётчик) и component.average_counter.getAverage (стационарный энергосчётчик) из Nuclear Control 2.
Если не ошибаюсь они умеют работать с eu и rf энергией, подключаются через адаптер.

Вот пример использования 
energy_counter в проге с апдейтом через event.timer:
gZtcYav.png
average_counter всё проще, но он багнутый и его считалка не всегда работает ¯\_(ツ)_/¯

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...