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

ECS

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

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

  • Посещение

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

    203

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

  1. Шикарная прога. Давным-давно делали передатчик двоичного кода по одному проводу на ванильном реде, прям ностальгия за душу взяла.
  2. ECS

    The A Environment

    Ну так я и говорю: придется вручную делать некую программку, вешающую на _G указанный перечень библиотек. А ведь можно, кстати, через fs.list() получить список файлов в папке с либами и через цикл создавать метаметоды, как указал swg2you выше - это будет куда удобнее. Правда, в этом случае уже не получится сделать кастомное сокращение библиотек (fs = filesystem, rs = redstone, r = robot и т.д.) for file in filesystem.list("lib/") do _G[file] = {} setmetatable([file], {__index = require(file)}) end
  3. Отличная идейка, надо будет побаловаться. Только есть поправка: некоторые юникод-символы используют аж до 6 байт информации, проверено неоднократно при создании библиотеки изображений. При записи в файл у нас даже пишется отдельный байт, содержащий размер юникод-символа для корректного чтения. Встречались и по 4, и по 5, а в редких случаях и по 6 байт, так что концепция такого диска очень и очень крута.
  4. ECS

    The A Environment

    А, вот ты о чем. Ну да, занятный способ, правда, довольно потно реализуемый: как именно привязывать заглушки к библиотекам? Вручную описывать все существующие функции в библиотеке term? Т.е. делать заглушку для clear(), read(), setCursor() и т.п.?
  5. Вот и правильно, библиотек хоть жопой жуй, а игр - раз, два и обчелся. Нужно больше игр!
  6. Хочу представить вам большую библиотеку, предназначенную для работы с изображениями, созданными в нашем Фотошопе. С ее помощью можно манипулировать графикой воистину волшебным образом: изображения можно обрезать, расширять, поворачивать, отражать, инвертировать, изменять их яркость, цветовой тон, насыщенность и добавлять фотофильтры. Разрабатывали мы ее примерно год, содержит она более 1000 строк кода и удовлетворяет практически всем наши требованиям к хорошей графике в OpenComputers, если, конечно, местную графику вообще можно назвать хорошей. Начало работы Прежде всего вам потребуются два файла. Первый обеспечивает основные операции над цветом, позволяет конвертировать цвета из одной схемы в другую, а также сжимать цвета без потери качества. Второй же является самой библиотекой image и дает нам полную свободу творчества. wget https://raw.githubusercontent.com/IgorTimofeev/OpenComputers/master/lib/colorlib.lua lib/colorlib.lua -f wget https://raw.githubusercontent.com/IgorTimofeev/OpenComputers/master/lib/image.lua lib/image.lua -f После загрузки библиотек вы можете подключить image и начинать с ней работать. Далее мы рассмотрим различные методы, с помощью которых мы сможем манипулировать изображениями. Под описанием каждого метода будет картинка и код, демонстрирующие суть работы метода, так что проблем с пониманием возникнуть не должно. local image = require("image") Структура изображений (для общего развития) Методы работы с файлами изображений (загрузка, отрисовка, сохранение) Методы трансформирования изображений (вращение, отражение, обрезание и т.п.) Методы работы с цветом (яркость, насыщенность, тон и т.п.)
  7. Полностью переделан формат .pic, в среднем объем файлов на диске сократился в 3 раза. Добавлены 4 метода кодирования: raw, OCIF1, OCIF2, OCIF3, создающие совершенно разную структуру файлов.
  8. Для этого у нас имеется либа image, где реализовано все, что только душе угодно. Там тебе и яркость, и контрастность, и насыщенность, и цветовой тон, и повороты-отражения, и инверсия. ColorLib же нужна именно для базовых операций над цветом, т.е. это основа для более крутых и потных вещей, таких как image. Надо будет, кстати, расписать ее у вас на форуме, полезная штука.
  9. -1 и +1 необходимы для наших файловых форматов. Вчера писали новый формат изображения, для записи в файл требуются корректные индексы. А если добавлять [0] в тот массив, то увеличится размер скачиваемого файла, поэтому мы не стали париться и сделали -1 +1, так проще и удобнее.
  10. Хочу поделиться с вами крайне полезной в быту библитекой, которую мы с товарищами используем повсеместно. Она позволяет работать с несколькими цветовыми моделями: стандартной RGB, более современной HSB, преобразовывать их в HEX-цвет для OpenComputers и наоборот. Кроме того, она позволяет сжимать 24-битный цвет вида 0xFFFFFF до 8-битного вида 0xFF без потери качества. Команда для загрузки: wget https://raw.githubusercontent.com/IgorTimofeev/OpenComputers/master/lib/colorlib.lua lib/colorlib.lua -f Методы
  11. ECS

    The A Environment

    Давно так делал, через init.lua происходило добавление. Правда, в таких случаях в память может грузануться крайне прожорливая либа, которую ты в данном контексте даже использовать не собираешься (например, двойной буфер требует 200 кбайт оперативки), а это в некоторых ситуациях критично. В конце концов немного переосмыслил ситуацию и подгружаю библиотеки во все то же _G пространство через такой вот незамысловатый цикл: -- Адаптивная загрузка необходимых библиотек и компонентов local libraries = { ecs = "ECSAPI", component = "component", event = "event", term = "term", config = "config", context = "context", buffer = "doubleBuffering", image = "image", SHA2 = "SHA2", } local components = { gpu = "gpu", } for library in pairs(libraries) do if not _G[library] then _G[library] = loadfile(libraries[library])() end end for comp in pairs(components) do if not _G[comp] then _G[comp] = _G.component[components[comp]] end end libraries, components = nil, nil
  12. Впервые узнал об этой штуке, на официальной вики ни слова, пруф ниже. Спасибо, короче)
  13. ECS

    backup BackupSystem

    А крутая идея, кстати. Припилить бы еще хороший интерфейс, и можно продавать свой Acronis нубам за алмазы!
  14. Важно! Если что-то "на самом деле" является полигонами в кубаче, то это что-то также будет являться полигонами во всех дочерних производных кубача (в нашем случае в голопроекторе), так что нечего путать термины. А если уж путаешь, то нечего поправлять тех, кто не путает
  15. В майначе используется именно полигнальный алгоритм рендеринга, основанный на псевдовокселях - обычных объектах типа "куб", создающихся из трехмерной карты мира. Кроме того, можанговцы не стали добавлять системы октодрев или гриди-мешинга, чтобы хоть как-то уменьшить количество этих самых объектов, так что именно по этим двум причинам майн такой прожорливый в плане компьютерных ресурсов. В общем, это не воксели.
  16. ECS

    Архиватор

    Накодил я тут небольшую утилиту, упаковывающую содержимое указанной папки в один целиковый файл. Бывает, лень загружать тонны всякой мелочи через Pastebin или GitHub, поэтому куда проще сделать это через систему архивации. Команда для загрузки: pastebin run KQ4tmLXy Инструкция по использованию: Чтобы упаковать файлы в архив, вводите в консоль команду archive pack <название архива> <архивируемая папка>. Содержимое папки будет склеено, и будет создан новый архив с указанным именем. Чтобы распаковать существующий архив, вводите команду archive unpack <путь к архиву> <папка для разархивации>. Содержимое архива будет распаковано в указанную папку. Чтобы загрузить через интернет существующий архив и распаковать его, используйте archive download <URL> <папка для разархивации>. Чтобы избавиться от "спама" в консоль, запускайте программу с аргументом -q, например, archive pack Test.pkg usr/man -q.
  17. Добавил в оську новогодние обои и программу-елочку от нашего товарища. Всех с наступающим!
  18. Да в этой елке полигонов больше, чем в модельке M4A1 из Black Ops 3!
  19. ECS

    HEX-редактор

    Ну, лично мне - для анализа PNG-файлов. На днях вон хотел переписать свою библиотеку для работы с PNG, а то старая совсем уж быдлокодерская, но для сверки верности прочитанных байт мне требуется HEX-редактор. Да и вообще, тут скорее дело принципа: если можем накодить, значит, кодим!
  20. ECS

    HEX-редактор

    В общем, понадобилось мне открывать файлы в шестнадцатеричном режиме, для чего был скачан соответствующий редактор. Но он оказался платным, а платить я не люблю, поэтому решил накодить свою собственную программу, чтобы не стать жертвой капитализма. Она имеет весь необходимый функционал: редактирование байт/символов, вставка/удаление байт, наглядное отображение содержимого файла. За графическую основу взята библиотека двойной буферизации, так что работа в редакторе будет быстрой и приятной. Команда для загрузки: pastebin run HVruUG2U Использование программы:
  21. А ничем по сути. Я по глубоким форумным темам редко хожу, так что получился один и тот же функционал в разных обертках - у меня, правда, можно еще изображения рисовать, созданные в нашем ФШ, используя тег image. Сейчас добавлю в описание прожки, штука все же нужная. Насчет упоминания левого сервера - без проблем, сменил пикчу темы на более нейтральную. Хотя по факту реклама - это последнее, о чем я буду думать при выкладывании софтинки на любой форум, весь текст про приват и серверные правила я привел исключительно ради примера и демонстрации возможностей скрипта
  22. На неделе мы решили создать небольшой сервер "для своих", и у нас резко возникла необходимость в наглядном отображении серверных правил на спавне. А поскольку использовать деревянные таблички - это пещерный век и вообще не комильфо, я накодил вот такую вот программу. Команда для загрузки: pastebin run JJgpkXBi Принцип ее работы проще пареной репы: вы закидываете в папку MineOS/System/InfoPanel текстовые файлы, программа отображает их в списке слева в алфавитном порядке, а при выборе конкретного файла читает его, выводя содержимое на экран. Чтобы немного разнообразить унылую одноцветную информацию, я сделал поддержку XML-разметки. Тег <color>Цвет</color> Данный тег изменит текущий цвет текста GPU и позволит рисовать такие вот цветные надписи: Тег <image>Путь к картинке</image> Этот тег нарисует изображение, созданное в нашем Фотошопе. В самой программе вы можете изменить некоторые параметры отображения информации - к примеру, масштаб экрана, количество прокручиваемых строк при нажатии стрелок или цветовую палитру интерфейса. Выход из программы осуществляется по клавише Enter.
  23. Графонисто! Какой приятный интерфейс, какое прекрасное юзабилити, какие кнопочки! Какие эмоции при составлении скрипта! Много, много чая автору
×
×
  • Создать...