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

hohserg

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

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

  • Посещение

  • Победитель дней

    37

Все публикации пользователя hohserg

  1. Так может вместо broadcast использовать send на адрес друга, и при приеме проверять адрес отправителя?
  2. Обвернуть выполняемый код в print(xpcall(function() --code end, debug.traceback)) По идее ниче лучше сделать нельзя, поправьте мя, если я не прав
  3. Описание Данная программа позволяет видеть местоположение руды вокруг игрока. Работает следующим образом: Планшет с геосканером и сетевой картой сканирует область вокруг игрока и отправляет на стационарный компьютер информацию о найденных блоках Компьютер с терминалом 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
  4. У меня это финальная форма, после которой нужно выйти из программы. И хотелось ,чтобы после программы экран не содержал остатков рендера форм. Проблема в том, что openos восстанавливает цвет когда-то позже моего require("term").clear() и экран очищается с использованием цветов форм.
  5. Как правильно завершить приложение с формами? Попробовал forms.stop() require("term").clear() os.execute("cls") В итоге экран остается залит цветом форм ~~~ Сделал через кастомное сохранение цвета в начале и восстановление в конце
  6. Я тут на днях попытался сделать саппорт этой сети для HoverHelm, запнулся на eeprom-клиентской-части)
  7. Неа, кое-че должен) https://en.wikipedia.org/wiki/MIT_License
  8. А загруженные модули не кешируются как библиотеки OpenOS? А если кешируются, то можно переключить эту фичу?
  9. @AlexCatze а можешь сделать eeprom-версию либы?
  10. Насколько хорошо поддерживается изменение топологии сети?
  11. Это тесты без индексации. Как на счет тестов с ней? 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)
  12. Щас можно написать че-то вроде 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
  13. А можешь сделать так,чтобы у экземпляров кнопок было поле super, содержащее базовую таблицу? Это бы уменьшило вероятность ошибки и позволило бы писать более обобщенный код(не зависящий от конкретного базового класса)
  14. Зацени этот инсталятор. https://github.com/hohserg1/HoverHelm/blob/master/server/home/hoverhelm/update-or-repair.lua Он использует github api, чтобы получить список файлов в репозитории
  15. Использование апи opennet обязательно должно начинаться с вызова getIP? Правильно ли реализован getIP? Там при каждом вызове происходит инициализация. Это может означать, что при каждом вызове ip будет разным https://github.com/AlexCatze/racoon-dev/blob/master/lib/opennet.lua#L16
  16. Т.е. все программы, которые умеют работать с OpenNet будут работать с Racoon?
  17. А апи устаканилось? Эту библу можно потрогать?
  18. Для этого можно код засунуть в минификатор
  19. Кое-кто говорил мне, что оцелот десктоп жрет ресурсы компа как обычный майн с ОС. Я эту инфу не проверял, понятия не имею, правда ли это. Если она истинная, то в чем может быть причина? Само ядро эмулятора много жрет или оцелот-десктоп?
  20. Чем больше битов в хэше, тем меньше вероятность коллизии. А еще можно все функции поместить в список, тогда индекс списка можно будет юзать в качестве хэша и гарантировано без коллизий
×
×
  • Создать...