Перейти к публикации
Форум - ComputerCraft
lokin135

Вывод графика энергии на монитор

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

Снова привет! Когда-то давным-давно увидел я дома у Fingercomp'a очень интересную хреновину на мониторе, которая показывала расход/прирост энергии в системе. И вот тогда я захотел накодить нечто подобное. НО! Был я тогда еще тем говнокодером, по этому подобное я не мог сделать. Но время шло, учился кодить и вдруг внезапно вспомнил я о той штуке. Закодил, поставил и забыл. Но вот еще время прошло! :D И снова смотрев на свою папочку с программами наткнулся на свой теперешний говнокод. Ну и переписал с новыми фичами (в виде поддержки полупиксилов, что принесло более красивый вид и точность графика) и адекватным кодом (хотя в некоторых моментах я все-же не знал как лучше поступить, и возможно сделал не совсем правильно) :

image_2018_05_27_20_19_24.pngСлева - старая версия проги, а справа - новая.

 

График показывает процент энергии от объема, выделяя цветом разницу доступной энергии прошлой точки графика: 

Point.Y = math.ceil((energy / capacity) * ((ResY-BarY) * 2))

Пройдемся по настройкам:

 

​Цвета настраиваются ровно так-же, как и в прошлой проги.

local ResX, ResY = 100, 50
local TimeSleep = 2

local BarY = 3/1.5
local lastX = -1

local drawBar = true
local nameComponent = "mfsu"

Первые переменные ResX и ResY - разрешение экрана. Можно спокойно настраивать, но только отключив бар сверху.

TimeSleep​ - время ожидания после прорисовки столбца. В общем скорость движения графика. 

BarY​ и lastX лучше не трогать) 

drawBar​ - отвечает за отображение графика сверху.

nameComponent​ - а вот эта переменная позволяет подключить не только MFSU'шки (да-да, можно подключить хоть 60 их к серверу), но и другие энергохранилища из IC2.

 

Ссылочки на программу:

https://lokin135server.ru/PublicRepository/mfsuDrawerEU/mfsu4M.lua (да да, я так и не разобрался с кодировкой)

pastebin get XygafBBK

 

Прошлые версии можете глянуть на сервере, но сразу предупреждаю: вы можете получить психическую травму от моего старого кода ​ лучше не смотрите :P

 

Жду конструктивной критики. Не, ну идеального кода не бывает, верно?

Изменено пользователем lokin135
  • Like 3

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


Ссылка на сообщение
Поделиться на других сайтах
Ну и переписал с новыми фичами (в виде поддержки полупиксилов, что принесло более красивый вид и точность графика) и адекватным кодом https://image.ibb.co/bRUYdJ/image_2018_05_27_20_19_24.png

код не смотрел, но графически и визуально совершенно  не понятно, что именно показывают эти персидские ковры.

Если бы ты еще немного допилил бы свою прогу, и сделал нечто отдаленно подобное (спойлер ниже, по временным отрезкам сохранял бы сразу пару графиков, например, за сутки и за последний час, "прирост" за то же время двухцветным столбиком реализовал и прочее прочее), был бы совсем другой компот. И твоя прога была бы самой эпической на форуме, тем более, что ты еще и задействовал современную "полупиксельную технологию" . Но пока что она немного больше напоминает монгольскую вышивку, чем осмысленный график энергии в реакторе  :) Но в целом хорошая работа. Молодец.

 

 

wtZ9GEr.png

 

 

  • Like 1

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


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

 

 

не понятно, что именно показывают эти персидские ковры.

Ух! Совсем забыл написать об этом. График показывает процент энергии, которая хранится от общей вместимости:

Point.Y = math.ceil((energy / capacity) * ((ResY-BarY) * 2))

Объясню:

energy​ - сумма хранимой энергии во всех mfsu'шек

capacity​ - сумма вместимости во всех mfsu'шек

ResY​ = ResolutionY - разрешение экрана по Y

BarY​ - размер бара по Y

 

((ResY-BarY) * 2)​ - умножаем на два, потому-что юзаем полупиксили.

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


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

 

 

сохранял бы сразу пару графиков

В старой версии у меня сохранялся график, ага. Но в новой я подумал что если обойдусь без этого - сделаю программу менее требовательной, и по этому сразу рисовал после вычисления.

 

 

 

за то же время двухцветным столбиком реализовал и прочее прочее

Мне в голову почему-то не пришла эта мысль) Сделать не сложно, а выглядит солидно. Спасибо за идею, возможно когда-нибудь (~2 недели) начну писать и выложу на CC. Наверно :D

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


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

Ссылки

Обновил ссылку на мой сервер. Перешел на https и купил домен, по этому старая ссылка не работала

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×