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

ECS

Гуру
  • Публикации

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

  • Посещение

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

    203

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

  1. Дык поле input.text является строкой, ты ж ее сам вводишь в виде текста, в виде чертовых символов. А функция redstone.setOutput(side, strength) в качестве второго аргумента принимает только числа. Ясен фиг ругается, если ты ей пытаешься текст скормить. Юзай что-то типа этого: inputPower.onInputFinished = function() -- Зачекай, а то мало ли там вообще не число введено if inputPower.text:match("%d+") then powerSignal = tonumber(inputPower.text) end end Второй вариант с автоматической валидацией: inputPower.validator = function() return inputPower.text:match("%d+") end -- При наличии validator этот метод выполнится только в случае успешной валидации текста inputPower.onInputFinished = function() powerSignal = tonumber(inputPower.text) end
  2. Не понял вопроса и конечной задачи, прости.
  3. Так писал бы в тему гуйки, че форум-то засорять. А ошибка забавна: при каждом нажатии на кнопку сначала отрубается сигнал редстоуна, а затем функция switch2.onStateChanged переназначается во время своего же выполнения. Крч, уот так будет пахать: switch2.onStateChanged = function() -- Проверяй, какое состояние имеет switch после переключения: вкл или выкл if switch2.state then RemoteRedstone() else RedstoneOff() end end
  4. ECS

    Upong

    Пожалуйста, скажи, что сисечки у аниму-тянки задумывались интерактивными в такт движений ракеткой
  5. ECS

    Meh, опять эмулятор OC

    Софтина почти готова: если глюки и встретятся, то без особого буллшита по отношению к пользователю. Список изменений: Создание машины происходит с чистой копией OpenOS и дефолтным кодом EEPROM Добавлена кнопка удаления созданной машины из конфига с сохранением контента Добавлен слайдер регулировки громкости звуков компов Реализовано изменение путей к HDD/EEPROM (не муляж даже, ага) Допилен компонент internet для загрузки всех необходимостей. Еще поддержку сокетов зафигачить - и будет конфетка Ссылочка, если кто захочет затестить: https://github.com/IgorTimofeev/OpenComputersVM/releases
  6. ECS

    Meh, опять эмулятор OC

    С переменным успехом работа продолжается: Перенес основную логику на сангаровский JNLua вместо LuaJ, добавил лимитирование оперативки Переосмыслил систему виртуализации: теперь каждая машина - это отдельное окошко со своими параметрами, сохраняемыми в конфиге Запилил опцию изменения пропорций виртуального экрана для screen.getAspectRatio(), а то эмуляторы обычно выдают 1, 1 по дефолту Реализовал компонент tunnel, который, в общем-то, ничем не отличается от модема. Возможно, если нервы не сдадут, в будущем добавлю систему энергозатрат - и тогда связанная карта будет жрать овердофигища ресурсов Сделал выбор имени игрока, от лица которого осуществляется управление компом Добавил фичу скрытия тулбара справа, чтоб ничто не отвлекало взор, так сказать Багов, конечно, жопой жуй: не всегда корректно читаются файлы в бинарном режиме, многие фичи по типу computer.addUser() являются не более чем функциями-заглушками, а еще странно читаются экранные события при вертикальной ориентации. Ну, по крайней мере, опенось уже запускается. И гляньте, какой чудный FPS:
  7. ECS

    Meh, опять эмулятор OC

    На 32 либа даже и не думает линковаться, архитекторы всякие лажают
  8. ECS

    Meh, опять эмулятор OC

    Спасибо, однако я не настолько форумчанин, чтобы не уметь грузить ресурсы по корректным путям хд Тем более до временных файлов я еще не дошел, тут либа даже по абсолютному пути не желает корректно работать: при линковке lua52/native.dylib никаких проблем не возникает - прям бери и пиши эмуль на здоровье, а с lua53/native.64.dylib консоль уже орет благим матом на unsatisfied link. Для меня это несколько... нелогично что ли. Чо делать-то? Забить и остаться на 5.2? public static void main(String[] a) { NativeSupport.getInstance().setLoader(() -> { System.load("/Users/igor/Documents/GitHub/jnlua/src/com/company/lib/lua53/native.64.dylib"); }); // Что так new LuaStateFiveThree(8 * 1024 * 1024); // Что эдак new LuaState(8 * 1024 * 1024); }
  9. ECS

    Meh, опять эмулятор OC

    @Totoro Нашел в логах ирки запись об ошибке, которая внезапно заимелась и у меня. Стесняюсь спросить, как ты разрешил сию проблему
  10. ECS

    Meh, опять эмулятор OC

    Звучит оч воодушевляюще. Надеюсь, там будет иметься опция "я позволяю майнить крипту через свой бровсер в обмен на дополнительный виртуальный компик" для ну ваще полнейшего фарша?
  11. ECS

    Meh, опять эмулятор OC

    Ссылку он хоть и кидал, а про "ето Тоторина штука" не упомянул, зараза. Хороший Тотора, графон мы уважаем ❤️ За предложение благодарю, но мне самописные велосипеды больше импонируют, да и со скалой не сталкивался ни разу. Собственно, со сподвижки Neo я затестил тот самый пропатченный JNLua - но, увы, не осилил ввиду отсутствия сколь-либо внятных мануалов
  12. ECS

    Meh, опять эмулятор OC

    @Totoro, о, а что это вы там мутите такое? Я бы с радостью потырил фичи
  13. ECS

    Meh, опять эмулятор OC

    На данный момент 3 с копейками. Запакованные в jar'ник опенось и картиночки чуть раздуют, конечно, но не до таких масштабов
  14. ECS

    Meh, опять эмулятор OC

    Вот взял и нагадил мне тут Порчей - теперь точно рантаймы посыпятся
  15. ECS

    Meh, опять эмулятор OC

    Еще мой дед говаривал, что каждый кодер на ОС просто обязан начать писать собственный эмуль для самоутверждения. Не желая изменять семейным ценностям, я тоже окунулся с головой в эту клоаку. Вообще в существующих эмуляторах лично меня люто бесит возня с ручной компиляцией, докачиванием всяческих либ по типу openssl, а также отсутствие возможности запуска нескольких виртуальных компиков в едином пространстве с масштабированием экранов, не говоря уже про пересылку данных между ними посредством не менее виртуальных модемов. Поэтому почесав репу, собрав JavaFX + LuaJ, накатав несколько компонентов, на данный момент я заимел следующие зачатки проекта: Библиотеки computer, component, unicode Компоненты computer, eeprom, filesystem, gpu, modem, screen, keyboard Имитация системных сигналов по типу touch/drag/drop/key_down/key_up/scroll/modem_message с поддержкой pullSignal/pushSignal Пересылка сетевых пакетов между имеющимися машинами в рабочем пространстве через modem.send/broadcast BSOD для "unrecoverable error" Звуковая система а-ля "комп в мире кубача", имитирующая звуки доступа к диску, и прикольно шумящая на фоне для антуража Создание/сохранение/загрузка виртуальных машин с сериализацией данных имеющихся компонентов. Ну, всяких там адресов, разрешений видях, размеров, координат и т.п. Кнопочка включения (!) Разумеется, компоненты имеют далеко не все методы, их написание - дело долгосрочное. Но поскольку этот раздел называется блогом, то, кажется, никто не мешает мне писать о запланированном. В идеале хочу замутить компоненты internet, tunnel и data, позволить юзерам выбирать пути к прошивке виртуального EEPROM и содержимому жесткого диска. Также остается открытым вопрос о лимитировании памяти: я понятия не имею, как это реализовать на LuaJ и ублюдочной Яве без обожаемого sizeof(). Городить костыли в виде JavaAgent + Instrumentation.getObjectSize не хочется, но, видимо, придется. Ну, и если у кого-то имеются занятные предложения по функционалу софтины - буду рад. Сырцы: https://github.com/IgorTimofeev/OpenComputersVM Скриншотик:
  16. Стопудова у тебя включены обои, они жрут чуть ли не четверть имеющейся оперативы. Оффни, если это так. Но вообще странно: только что ябез каких-либо проблем распечатал несколько дефолтных обоин, и память лишь на 74% забилась при наличии двух планок 3.5
  17. Угу, для контроля ядер реакторов из драконика. Сырцов нет, ничего нет, любви нет, только пара скринов
  18. А можно и не парсить вовсе, модемы позволяют отсылать/принимать сетевые пакеты с множеством аргументов: -- Отправка modem.broadcast(port, cmd, cmdX, cmdY) -- Прием local localAddress, remoteAddress, port, distance, cmd, cmdX, cmdY = event.pull("modem_message") Если надо "парсить по пробелам", то уот так уот: local message = "meow 12 -249" for part in message:gmatch("[^%s]+") do print("Кусочек: ", part) end >> Кусочек: meow >> Кусочек: 12 >> Кусочек: -249
  19. local function myYobaPullSignal(...) evt, _, _, _, _, info = computer.pullSignal(...) if evt == "touch" and info == returnuser() or evt == "modem_message" and info == "open" then open() elseif evt == "touch" and info ~= returnuser() then getout() elseif evt == "modem_message" and info == "ping" then modem.broadcast(1, "pong") end end ... local function sleep(timeout) local deadline = computer.uptime() + (timeout or 0) repeat myYobaPullSignal(deadline - computer.uptime()) until computer.uptime() >= deadline end ... while true do myYobaPullSignal() end
  20. В маркете появился ВК-клиент местного разлива. Поскольку VK API с недавних пор стало зашибенно удобным в плане уменьшения количества веб-запросов, то болтать с посонами и посонихами можно с комфортом без ожидания загрузки тонны инфы. На данный момент имеются следующие фичи: • Динамическая подгрузка свежего контента при достижении конца имеющегося • Отображение информации профилей • Просмотр списка друзей с имеющимися тегами • Просмотр новостной ленты • Просмотр списка диалогов, истории переписки, отправки сообщений и файлов (к примеру, можно закинуть какой-нибудь скрипт прямо себе на аккаунт) • Индикатор сетевой занятости, чтобы никто ничо там не подумал, мол, "говнософт завис!!1" • Рекурсивное отображение всех медиавложений, репостов и прочей атрибутики • Раздел настроек с кастомизацией количества загружаемой инфы по категориям Планирую сделать поддержку двухфакторной авторизации, раздел документов и скачивание присланных доков. Пока что софтина чуть сыровата, но вполне себе юзабельна. Напоследок немножечко скринов:
  21. Когда она там релизнется, кстати?
  22. Чего сразу ECS-то? Это все он, это он, не впутывайте! Либа - полный аналог опеносовской. Разница в том, что она работает шустрее, не подменяет pullSignal на кастомный, не требует внешних либ по типу keyboard, а также позволяет отключать и кастомизировать коды клавиш прерывания. Работать оно работает на всех версиях OC, скачивание вместо дефолтной комп не взорвет. Усе.
  23. Огрызкоподобное обновление: добавлено приложение "Settings", объединяющее в себе всевозможные настройки системы. Софтина разделена на модули и имеет следующий функционал: • Выбор активного монитора и смена разрешения как в автоматическом режиме без черных полос, так и в ручном • Смена обоев рабочего стола и выбор заставки с задержкой • Кастомизация размеров иконок, отображение расширений и скрытых файлов, изменение цветовой схемы оси • Система автозапуска скриптов как до инициализации десктопа, так и после • Дисковая утилита для смены имен, форматирования и установки загрузочных томов • Настройки сети для передачи файлов по модемам в виде монтированных файловых систем • Смена языка системы. Имеются английский, русский и французский • Выбор часового пояса и настройка отображения времени: либо в виде реального таймштампа, либо в виде игрового • Выбор архитектуры ЦП, выгрузка библиотек как в ручном, так и в автоматическом режиме Ну, а заодно верхняя менюха универсализировалась для каждого приложения а-ля OS X - при переключении окон она индивидуально перестраивается под выбраное:
  24. Проблема решена окольным путем через множество GET/POST-запросов. Если кто-то столкнется с апи гитхаба и аналогичной ситуацией, то вот мануал: http://www.levibotelho.com/development/commit-a-file-with-the-github-api/ Единственный нюанс: в последнем пункте требуется использование метода PATCH, однако POST с задачей также прекрасно справился.
  25. Что ж, спасибо за инфу. Видимо, судьба тонко намекает, что оно не очень-то уж и надо хд Либу опробовать, увы, не удалось из-за тонны зависимостей. Вручную качать сдохну, а Hel все лежит и лежит, дыа
×
×
  • Создать...