hohserg
-
Публикации
433 -
Зарегистрирован
-
Посещение
-
Победитель дней
37
Сообщения, опубликованные пользователем hohserg
-
-
-
Обвернуть выполняемый код в
print(xpcall(function() --code end, debug.traceback))
По идее ниче лучше сделать нельзя, поправьте мя, если я не прав
-
5 часов назад, Asior сказал:Эхх, очередная ОС которая умерла даже не родившись. Вангую все придет к тому, что будет как обычно простая оболочка поверх базовой OpenOS
А зачем нужно большее? Ради галочки?
-
Описание
Данная программа позволяет видеть местоположение руды вокруг игрока.
Работает следующим образом:
Планшет с геосканером и сетевой картой сканирует область вокруг игрока и отправляет на стационарный компьютер информацию о найденных блоках
Компьютер с терминалом OpenGlasses2 и сетевой картой принимает информацию о блоках и рисует этим блокам подсветку.
Фичи и особенности
- Используется методика из исследования Дуба, которая позволяет весьма точно определять руду
-
Настраиваемые параметры сканирования
- c валидацией и коррекцией
- сохраняются в конфиг при выходе из программы
- Понятный ui
- Подсветка границ области сканирования
-
Отображение на очках с использованием всего 2 виджетов
- фпс снижается меньше
-
Это программа работает на версии игры 1.12.2 с аддоном OpenGlasses2
- теоретически можно портировать на 1.7.10
Скриншоты
Видео
Установка
Требуемое железо
Планшет, минимальное
Планшет, рекомендуемое
Стационарный компьютер
Вместо системного блока 3 тира можно юзать серверную стойку с сервером 2 тира.
Также вместо связанной карты можно юзать беспроводную сетевую, однако, радиус действия в этом случае будет ограничен.
Все процессоры нужно переключить на Lua 5.3(шифт+пкм).
На планшет и компьютер устанавливаем OpenOS.
На планшет устанавливаем программу и ее либы
wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/oresense/oresense_tablet.lua
wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/simple_libs/bit_array.lua lib/bit_array.lua
pastebin get iKzRve2g lib/forms.lua
На комп устанавливаем программу и ее либы
wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/oresense/oresense_server.lua
wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/simple_libs/bit_array.lua lib/bit_array.lua
Использование
Привязываем
очки к терминалу и надеваем.
Запускаем на компе oresense_server. Программа будет работать в фоновом режиме, поэтому комп можно юзать для чего-нибудь еще.
Запускаем на планшете oresense_tablet. Синие поля позволяют настроить параметры. Большая красная кнопка запускает сканирование. Во время этого процесса лучше не сдвигаться с места. По окончанию сканирования оглядитесь вокруг - руда будет подсвечена красными каркасными кубами.
Благодарности
Спасибо @Doob и всем, кто ему помогал, за исследование принципов работы геолайзера и статью об этом
Спасибо @Zer0Galaxy за либу гуи forms
Спасибо @BrightYC за реью гуи и идею мэйн-картинки
Спасибо @Sainthozier за реью гуи
Спасибо @Fingercomp за функцию индексации координат, к сожалению, она не понадобилась
Спасибо людям из irc-чата за саппорт по ОС и Lua
Ссылки
Гитхаб: https://github.com/hohserg1/OpenComputersPrograms/tree/master/oresense
-
15
-
2
-
У меня это финальная форма, после которой нужно выйти из программы. И хотелось ,чтобы после программы экран не содержал остатков рендера форм. Проблема в том, что openos восстанавливает цвет когда-то позже моего require("term").clear() и экран очищается с использованием цветов форм.
-
Как правильно завершить приложение с формами? Попробовал
forms.stop() require("term").clear() os.execute("cls")
В итоге экран остается залит цветом форм
~~~
Сделал через кастомное сохранение цвета в начале и восстановление в конце
-
Я тут на днях попытался сделать саппорт этой сети для HoverHelm, запнулся на eeprom-клиентской-части)
-
1
-
-
-
А загруженные модули не кешируются как библиотеки OpenOS? А если кешируются, то можно переключить эту фичу?
-
1
-
-
-
Насколько хорошо поддерживается изменение топологии сети?
-
Это тесты без индексации. Как на счет тестов с ней?
Bench() :Add("for i = 1, #tbl do", function() for i = 1, #tbl do local var = tbl[i] end end) :Add("for i, v in ipairs(tbl) do", function() for i, v in ipairs(tbl) do local var = tbl[i] end end) :Start(10000000)
-
В 26.02.2021 в 16:25, hohserg сказал:Зацени этот инсталятор.
https://github.com/hohserg1/HoverHelm/blob/master/server/home/hoverhelm/update-or-repair.lua
Он использует github api, чтобы получить список файлов в репозитории
-
2
-
-
Щас можно написать че-то вроде
function Btn1:draw() TButton.draw(self) -- вызываем родительский метод end
Насколько я понимаю, с точки зрения семантики это одно и тоже что и отсутствие переопределения
В коде выше для переопределения метода у Btn1 нужно знать, экземпляр какого класса является Btn1.
Допустим, мы хотим переопределять методы произвольных экземпляров произвольных классов. Че-то вроде
function addCallback(formElement, methodName, callback) formElement[methodName] = function(self, ...) baseClass[methodName](self, ...) --где взять значение baseClass, если formElement - экземпляр проивзольного класса формочек? callback(self) end end
Если бы self содержал в себе ссылку на базовый класс, это можно было бы решить так:
function addCallback(formElement, methodName, callback) formElement[methodName] = function(self, ...) self.super[methodName](self, ...) callback(self) end end
-
В 28.02.2021 в 14:12, Zer0Galaxy сказал:TButton.draw(self) -- вызываем родительский метод
А можешь сделать так,чтобы у экземпляров кнопок было поле super, содержащее базовую таблицу? Это бы уменьшило вероятность ошибки и позволило бы писать более обобщенный код(не зависящий от конкретного базового класса)
-
Зацени этот инсталятор.
https://github.com/hohserg1/HoverHelm/blob/master/server/home/hoverhelm/update-or-repair.lua
Он использует github api, чтобы получить список файлов в репозитории
-
Использование апи opennet обязательно должно начинаться с вызова getIP?
Правильно ли реализован getIP? Там при каждом вызове происходит инициализация. Это может означать, что при каждом вызове ip будет разным
https://github.com/AlexCatze/racoon-dev/blob/master/lib/opennet.lua#L16
-
1
-
-
Т.е. все программы, которые умеют работать с OpenNet будут работать с Racoon?
-
1
-
-
2 часа назад, AlexCatze сказал:Собственно, сама библиотека, реализующая связь между узлами
Библиотека, позволяющая работать в сети программам, заточенным под OpenNet
А апи устаканилось? Эту библу можно потрогать?
-
1
-
1
-
-
Для этого можно код засунуть в минификатор
-
Кое-кто говорил мне, что оцелот десктоп жрет ресурсы компа как обычный майн с ОС. Я эту инфу не проверял, понятия не имею, правда ли это. Если она истинная, то в чем может быть причина? Само ядро эмулятора много жрет или оцелот-десктоп?
-
Чем больше битов в хэше, тем меньше вероятность коллизии.
А еще можно все функции поместить в список, тогда индекс списка можно будет юзать в качестве хэша и гарантировано без коллизий
-
1
-
-
Попробуй это:
-
В 30.12.2020 в 13:47, kaka888 сказал:Это реализуется через internet.request(URL логов сервера) при условии, что логи твоего сервера находятся в публичном доступе.
А они по дефолту публичные чтоли?
-
1
-
1
-

OreSense - реализация xray средствами OpenComputers
в Графика
Опубликовано:
Добавил видос