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

JaggerDer

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

    34
  • Пожертвование

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

  • Посещение

  • Дней в лидерах

    3

Последний раз JaggerDer выиграл 11 октября 2015

Публикации JaggerDer были самыми популярными!

Репутация

90 Обычный

4 подписчика

Информация

  • Пол
    Не определился
  1. JaggerDer

    Таймер

    Вон в стандартном event есть таймер считающий в секундах. Этот таймер еще может выполнятся на "фоне". Велосипед написал, ИМХО. К слову... Слушатели событий и таймеры позволяют творить чудеса без излишнего геммороя с coroutine.
  2. JaggerDer

    Cursor

    Библиотека CURSOR ...позволяет создавать виртуальный курсор и предоставляет набор функций для управления им. Предполагается, что библиотека будет использоваться для создания различных текстовых полей, текстовых редакторов и т.п. Что умеет? Умеет перемещать курсор по тексту! А так же реализует основные возможности простейшего текстового редактора, такие как удалить символ, вставить символ, перенос строки, слияние двух строк... Немного о устройстве Библиотека позволяет создавать несколько независимых друг от друга курсоров, каждый из которых имеет свою позицию на тексте в трех экземплярах: Абсолютное положение Относительное положение Разность абсолютного и относительного - иначе просто дельта Кроме того каждый курсор хранит в себе массив строк. Абсолютные координаты для определения курсора в тексте; Относительные координаты используются только в пределах зоны редактирования текста; Дельта говорит нам о том насколько сильно разошлись эти значения: эта информация полезна для отрисовки текста. Вот и все, такая небольшая библиотека вышла. Описание функций Все функции описаны в файле с кодом. Выдержка: Скачать https://github.com/Pirnogion/OpenComputers_library/blob/master/cursor/cursor.lua https://github.com/Pirnogion/OpenComputers_library/blob/master/cursor/cursor-demo.lua Библиотека: wget https://raw.githubusercontent.com/Pirnogion/OpenComputers_library/master/cursor/cursor.lua lib/cursor.lua -f Демонстрация: wget https://raw.githubusercontent.com/Pirnogion/OpenComputers_library/master/cursor/cursor-demo.lua cursor-demo.lua -f
  3. Нет. Тут немного не так. Требуется найти наиболее близкий по оттенку цвет к нужному, а не просто ближайший к нему цвет. Если начать искать ближайший цвет, то получится "немного" странные оттенки. Например я задам темнозеленый, а мне вернет непонятный оттенок красного. И да, эта функция очень медленная... Как ускорить ее мы не знаем. Простой поиск близкого по значению цвета дает не те результаты.
  4. То же похвастаюсь. Сделал прогу, чтобы управлять роботом, которая делает карту местности и позволяет контролить инвентарь и отдавать простейшие команды роботу. Но отчего-то мне лень ее доделывать, очень лень. На планшет та же программа, но более мелкий интерфейс и другие цвета. А еще есть шняжка, которая привязывает робота к компу по разрешению.
  5. JaggerDer

    The A Environment

    А для чего нужна среда? Если не считать автозагрузку библиотек - интересная фича. Вон слушатели событий есть и в стандартных либах: http://ocdoc.cil.li/api:event.
  6. Слушай, а ты похоже прав. Плюс прога в вечный цикл уйдет.
  7. Какую ошибку кидает? Если ошибок не кидает, то что именно не работает? Что задумывалось? Слишком сложна, мой экстрасенс не понимать.
  8. JaggerDer

    Минибиблиотека rectangle

    LeshaInc, успокойся. Уже можно не паниковать, т.к. все работает - проверено.
  9. JaggerDer

    Минибиблиотека rectangle

    Спокойно. Без паники. Только спокойствие. Исправил. Последние две функции я переписывал с JavaScript и немного накосячил. На всякий случай сейчас проверю их в майне.
  10. У меня в закромах завалялся небольшой файлик с функциями для работы с прямоугольниками. Лично мне эта библиотечка понадобилась всего пару раз(для создания кнопок). И я посчитал, что, может быть, все эти функции могут кому-то понадобиться. Как всегда приведу краткое описание функций: CreateRectXYWH(name:string, x:number, y:number, width:number, height:number):table Создает структуру прямоугольника используя информацию о местоположении(x, y),высоте и ширине. CreateRectXYXY(name:string, sx:number, sy:number, ex:number, ey:number):table Создает структуру прямоугольника используя информацию о местоположении двух точкек. CreateVoidRect(name:string):table Создает "пустой" прямоугольник, т.е. структуру с нулевыми значениями. PointInRectFree(x:number, y:number, sx:number, sy:number, ex:number, ey:number):boolean Проверяет, лежит ли точка(x, y) внутри прямоугольника заданного двумя точками. Возвращает true, если точка лежит внутри прямоугольника, а false в противном случае. PointInRect(x:number, y:number, rect:table):boolean Делает то же самое что и PointInRectFree, только с использованием структуры прямоугольника. bIntersectRects(rect1:table, rect2:table):boolean Проверяет, пересеклись ли два прямоугольника, возвращает true, если да. False - если нет. IntersectRects(rect1:table, rect2:table):table Делает то же самое, что и bIntersectRects, но возвращает прямоугольник образованный пересечением двух заданных. Структура прямоугольника выглядит следующим образом: local _rectangle = { ["name"] = name, ["sx"] = x, ["sy"] = y, ["ex"] = x+width, ["ey"] = y+height, ["width"] = width, ["height"] = height, ["area"] = width * height } name - название прямоугольника. sx, sy - первая точка прямоугольника. ex, ey - вторая точка прямоугольника. width, height - ширина высота. area - площадь прямоугольника. То что мне нравиться тут, так это то, что мы можем задать прямоугольник как x, y, width, height и такие параметры как sx, sy, ex, ey вычислятся автоматически. :3 Так же я написал "небольшой" пример, который использует все функции библиотеки и выдает следующее: Скачать можно с репозитория гитхаба или установив с помощью следующей строки: Библиотека: wget https://raw.githubusercontent.com/Pirnogion/OpenComputers_library/master/others/rectangle.lua lib/rectangle.lua Пример: wget https://raw.githubusercontent.com/Pirnogion/OpenComputers_library/master/others/rectExample rectExample
  11. В стародавние времена я делал нечто подобное на Python(там все это дело делается относительно легко), когда писал плагин для SublimeText2. С помощью плагина можно изменять пасты на пастебине. Но мне кажется это неудобным, т.к. при способе "косить под браузер", через настоящий браузер придется перелогиниваться. Но ведь мне, как пользователю такого приложения, не хочется терять свою сессию в браузере... Короче, все это жутко неудобно. Посему считаю, что польза от такого приложения будет невелика, относительно гемморя, который придется испытать при его использовании и написании, и, следовательно, лучше заняться чем-нибудь более полезным. Например изучить как взимодействовать с гитхабом. Или изучением русского языка.
  12. Еще можно написать велосипед. Но это на тот случай, если захочется изучить как в ОС скрипты писать или просто на lua(в данном случае), или понять самому как все эти библиотеки работают(примерно) - гемморой одним словом. Зато скилл повышает. Мне кажется, что все проходили через стадию написания своей GUI библиотеки Про то как это сделать могу описать примерно, как говорится в двух словах, т.к. возможных вариантов реализации о-о-очень много. Самый легкий спопоб это просто ловить эвент нажатия кнопки мыши в вечном цикле. Далее из эвента вытаскивать координаты и проверять лежит ли эта координата внутри некого прямоугольника, которым в нашем случае является кнопка. Код примерно такой: Информацию о всяких эвентах и встроенных библиотеках можно найти тут: http://ocdoc.cil.li.
  13. Идея интересная, но все же, если так сделать, то не будет возможности нарисовать любой другой символ.
  14. Какая разница кто там докажет. Просто допили скрипт свой, а когда посчитаешь, что программа уже готова, то можно смело выкладывать. Ругать точно никто не будет.
  15. JaggerDer

    Формат картинок для OpenComputers

    Интересная идея, мне понравилась. Уже сделал Можно хранить до 255 картинок в одном файле(выделить больше 1 байта на кол-во картинок не позволила большая жаба).
×