Лидеры
Популярный контент
Показан контент с высокой репутацией 26.02.2021 в Сообщения
-
2 баллаДобавил аварийное завершение программы с выключением реактора в случае если что-то пошло не так например: реактор перестал отвечать на запросы ОС, не важно по какой причине (лаг сервера, сосед помог, что угодно) сундук с компонентами свинтили или управляющий блок и т.д. спасибо @ZO125 за идею в этому посту основной пост этой проги программа контроля реактора IC2(1.7.10) с конденсаторами: pastebin get kfRBNS0w r программа контроля реактора IC2(1.12.2) с конденсаторами: pastebin get nneD0Mv5 r
-
1 баллpastebin get iKzRve2g lib/forms.lua Конечно, браузер на такой библиотеке не построить, но для небольших приложений может сгодится. Библиотека позволяет создавать следующие визуальные компоненты: Form (форма) - является контейнером для остальных компонентов. Служит для быстрой смены экранного интерфейса без необходимости удалять и создавать компоненты. Button (кнопка) - тут всё понятно. Label (метка) - просто строка текста. Edit (окно ввода) - позволяет вводить текст. Frame (рамка) - просто рамка. List (список) - отображается в виде набора строк. Каждой строке ставится в соответствие элемент, способный хранить любое lua-значение (число, строку, таблицу и т.д.). Пользователь может прокручивать список, выбирать один из элементов, производить сортировку списка. И невизуальные компоненты: Event (событие) - обрабатывает системные события. Timer (таймер) - позволяет вызывать функцию-обработчик с заданным периодом. Пример работы с библиотекой: Попробовать библиотеку в действии можно в дата-центре на компьютере с координатами 10150, 14199. Для этого необходимо запустить файл form.lua
-
1 баллЕсли есть опыт ООП программирования, могу помочь в создании новых компонентов. Для этого не обязательно менять либу, можно создать свой собственный компонент, который используешь только ты. Если понравится, добавлю компонент в либу, а тебя в соавторы. Кнопка имеет свойство border. Если его установить в 1 или 2, кнопка получит одинарную или двойную окантовку. Но имей в виду, что размеры кнопки должны быть достаточными что бы вместить надпись и окантовку. Т.е. высота должна быть не менее трех.
-
1 баллБиблиотека очень спасает, вот пытаюсь опровергнуть утверждение, что браузер на ней не построить. Правда не хватает некоторого функционала. Самое желанное, это возможность указать функцию, которая будет вызываться каждый раз после отрисовки формы. Не хватает таких элементов как CheckBox, Selector и ScrollBar. Первые два можно реализовать используя кнопки, но хотелось бы иметь отдельные элементы. По поводу кнопок, в монохромных интерфейсах, выделять большие кнопки, меняя местами цвет фона и текста не всегда получается. Хотелось бы иметь возможность делать вокруг кнопки обводку. Буду очень благодарен, если вышеизложенные функции будут реализованы.
-
1 балл
-
1 баллСамый простой способ создать тег - нажать на кнопку "Create a new release" После заполнения описания, последний коммит в текущей ветке будет отмечен меткой Твой код к ней можно в любой момент "перемотать" в специальном окошке: А еще к релизу будет автоматически добавлен архив с исходниками: --- Вообще, очень советую научиться активно использовать Git в разработке, делая коммиты постоянно, а не выкидывая кучу кода прям перед новым релизом - это выведет разработку на качественно новый уровень, сделает ее удобнее, и, что самое главное, позволит людям работать совместно с тобой - никто не будет рисковать делать какой-то пул-реквест, когда ты, условно говоря, в любой момент можешь принести коммит на 10 тысяч строк и все стереть. Делай небольшие коммиты с осмысленными названиями - поможет отслеживать прогресс и откатывать изменения, если что пойдет не так
-
1 баллИз статьи мне непонятно: компоненты периодически отваливаются самопроизвольно (Почему? Они сами отваливаются или их кто-то может сломать?) во время работы программы, или автор хочет проверить то, подключен ли конкретный компонент к системе и можно-ли с ним нормально взаимодействовать. Полагаю в случае, когда компонент отваливается из-за ошибок игры, данное решение грубое, или даже не годится, но во втором почему-бы просто не ловить ошибки вызовов компонентов с помощью оборачивания их pcall()? Да компонент может отвалиться по любой причине прямо во время работы программы, но тогда программа все равно не ляжет, а ты сможешь не знаю... Вывести на экран сообщение что компонент отвалился. function draw() local gpu = component.gpu gpu.set(1, "Hello World!!") end local ok, err = pcall(draw) -- Так в случае любых ошибок в ok попадет false, а в err название ошибки.
-
1 баллСостояние выходов красного контроллера сохраняется даже при выключенном компьютере. Но если реактором управляет компьютер с помощью встроенный красной платы, то реактор погаснет вместе с компьютером. Это возможно. По крайней мере, теоретически. В пределе можно заменить и 10 конденсаторов между реакторными тиками, но это уже на грани возможного. Малейший лаг приведёт к сгоранию конденсатора. На реальном же сервере всё зависит от лага OC относительно тиков реактора. Кстати, если синхронизировать свои действия с тиками реактора, то в большинстве случаев можно успеть отключить редстоун, заменить несколько конденсаторов и снова включить редстоун так, что реактор даже не успеет заметить отключение и даже не снизит выработку энергии.
-
1 баллСписок. List1=Form1:addList(left,top,onChange) Список - визуальный компонент, способный хранить множество элементов данных различного типа, подобно таблице в Луа. Каждому элементу (item) списка ставится в соответствие строка (line), посредством которой этот элемент отображается на экране компьютера. Параметры вызова метода addList: left,top - (числа) координаты левого верхнего угла относительно объекта которому принадлежит компонент. onChange - (функция) обработчик события, когда пользователь выбирает при помощи ЛКМ какой либо элемент списка. Дополнительные свойства: W - ширина списка (по умолчанию - 20). H - высота (по умолчанию - 10) border - (0, 1 или 2) рамка, по умолчанию - 2 color - цвет фона (по умолчанию - 0x000000), fontColor - цвет шрифта и рамки(по умолчанию - 0xffffff). selColor - цвет фона выбранной строки списка (по умолчанию -0x0000ff) sfColor - цвет шрифта выбранной строки (по умолчанию - 0xffff00) index - номер выбранного элемента списка items - таблица, содержащая элементы списка lines - таблица, содержащая строки, соответствующие элементам списка visible - имеет значение false, если компонент скрыт (по умолчанию - true) X, Y - абсолютные координаты левого верхнего угла В дополнение к методам, присущим остальным компонентам (см. "кнопка"), список имеет следующие методы: clear() - очищает список insert([pos,]line,item) - вставляет в список в позицию pos элемент item с соответствующей ему строкой line. Все последующие элементы сдвигаются на единицу. Если параметр pos отсутствует, вставка осуществляется в конец списка. sort([comp]) - производит сортировку списка по условию comp. Если параметр comp задан, то он должен быть функцией, принимающей три параметра: comp(list, i, j), где list - указатель на список, а i и j - номера элементов списка. Функция comp должна возвращать true, если элементы списка i и j в результате сортировки меняются местами. Если параметр comp не задан, то сортировка производится по строкам lines в алфавитном порядке. В ближайшем будущем ожидайте презентацию системы визуального программирования на основе библиотеки forms
-
1 баллРамка. Frame1=Form1:addFrame(left,top,border) Рамка не выполняет никаких действий, а просто служит элементом декора. Параметры вызова метода addFrame: left,top - (числа) координаты левого верхнего угла рамки относительно объекта которому принадлежит компонент. border - (0, 1 или 2) по умолчанию - 1. Дополнительные свойства: W - ширина рамки (по умолчанию - 20). H - высота (по умолчанию - 10) color - цвет фона (по умолчанию - 0x000000), fontColor - цвет рамки(по умолчанию - 0xffffff). visible - имеет значение false, если компонент скрыт (по умолчанию - true) X, Y - абсолютные координаты левого верхнего угла Методы компонента (см. "кнопка")
-
1 баллОкно ввода. Edit1=Form1:addEdit(left,top,onEnter) Команда создает на форма Form1 окно ввода и возвращает указатель на вновь созданный объект. Окно ввода позволяет вводить с клавиатуры текст, ограниченный одной строкой. Параметры вызова метода addEdit: left,top - (числа) координаты левого верхнего угла окна относительно объекта которому принадлежит компонент. onEnter - (функция) обработчик окончания ввода. Левый щелчок мыши на окне переведет компонент в режим ввода текста. Завершение ввода осуществляется нажатием клавиши Enter. После чего вызывается функция-обработчик, если она определена. Функция принимает один параметр - указатель на компонент, который ее вызвал. Дополнительные свойства: W - ширина окна (по умолчанию - 20). H - высота (по умолчанию - 3) text - строка текста, введенного в окно ввода. border - наличие рамки (по умолчанию - 1) color - цвет фона (по умолчанию - 0x000000), fontColor - цвет текста и рамки(по умолчанию - 0xffffff). visible - имеет значение false, если компонент скрыт (по умолчанию - true) X, Y - абсолютные координаты левого верхнего угла Методы компонента (см. "кнопка")
-
1 баллНадпись. Создается командой: Label1=Form1:addLabel(left,top,caption) Команда создает на форма Form1 надпись и возвращает указатель на вновь созданный объект. Параметры вызова метода addLabel: left,top - (числа) координаты левого верхнего угла надписи относительно объекта которому принадлежит надпись. caption - (строка) собственно надпись. Дополнительные свойства: W - ширина надписи (по умолчанию равняется количеству символов в надписи). Если количество символов превышает ширину, лишние символы справа будут обрезаны. H - высота (по умолчанию - 1) border - наличие рамки (по умолчанию - 0) color - цвет фона (по умолчанию - 0x000000), fontColor - цвет шрифта (по умолчанию - 0xffffff). visible - имеет значение false, если надпись скрыта (по умолчанию - true) centered - если этот параметр у становить в true, надпись будет автоматически центрироваться. (По умолчанию - false) alignRight - если этот параметр установить в true и centered==false, надпись будет выравниваться по правому краю. (По умолчанию - false) autoSize - если этот параметр установить в true, ширина компонента W автоматически подстраивается под самую длинную строку надписи. (По умолчанию - true). Да, да, надпись может иметь несколько строк. Разбиение на строки выполняется при помощи символа "\n". X, Y - абсолютные координаты левого верхнего угла Методы компонента (см. "кнопка")
-
1 баллКнопка. Создается командой: Button1=Form1:addButton(left,top,caption,onClick) Команда создает на форме Form1 кнопку и возвращает указатель на вновь созданный объект. Еще раз обращаю внимание: метод forms.addForm вызывается через разделитель "точка", а Form1:addButton - через "двоеточие", поскольку forms - это библиотека, а Form1 - объект. Параметры вызова метода addButton: left,top - (числа) координаты левого верхнего угла кнопки относительно объекта, которому принадлежит кнопка. caption - (строка) надпись на кнопке. onClick - (функция) обработчик нажатия на кнопку. Левый щелчок мыши на кнопке вызовет функцию-обработчик. Функция-обработчик принимает один параметр - указатель на кнопку, которая была нажата. Дополнительные свойства кнопки: W - ширина кнопки (по умолчанию - 10) H - высота кнопки (по умолчанию - 1) border - наличие рамки (по умолчанию - 0) color - цвет кнопки (по умолчанию - 0x606060), fontColor - цвет надписи и рамки (по умолчанию - 0xffffff). visible - имеет значение false, если кнопка скрыта (по умолчанию - true) X, Y - абсолютные координаты левого верхнего угла кнопки Методы компонента: hide() - скрывает компонент. show() - отображает ранее скрытый компонент isVisible() - возвращает true, если компонент не скрыт и находится на активной форме. redraw() - принудительно перерисовывает компонент. Компоненты интерфейса (кнопки, надписи и т.д.) можно создавать не только на форме, но и на других компонентах. К примеру, кнопку можно создать на рамке или надпись на кнопке. При этом дочерний объект будет перемещаться, исчезать и появляться вместе с объектом-родителем.
-
1 баллДля работы с библиотекой подключим её стандартным способом forms=require("forms") Библиотека forms содержит следующие функции: addForm() - создает новую форму. run(form) - запускает обработку интерфейса, устанавливая активной форму form. stop() - прерывает обработку интерфейса. Форма. Создается при помощи команды: Form1=forms.addForm() По сути, форма - это область на экране в которой размещаются компоненты интерфейса. Если форма активна, размещенные в ней компоненты реагируют на действия мыши. Форм в Вашей программе может быть несколько, но активной будет только одна. По умолчанию форма занимает всю область экрана. Изменить размеры формы можно задавая её параметры W и H: Form1.W=31 Form1.H=7 а положение на экране - задавая параметры left и top: Form1.left=10 Form1.top =5 Помимо W, H, left и top форма обладает такими свойствами: border - наличие рамки 0-нет рамки; 1-одинарная рамка; 2-двойная рамка (по умолчанию - 0) color - цвет формы (по умолчанию - 0х000000), fontColor - цвет рамки (по умолчанию - 0xffffff). Форма обладает следующими методами: setActive() - устанавливает форму активной и перерисовывает её. isActive() - возвращает true, если форма активна. redraw() - принудительно перерисовывает форму, если форма активна. addButton(left, top, caption, onClick) - добавляет на форму кнопку. addLabel(left, top, caption) - добавляет на форму строку текста. addEdit(left, top, onEnter) - добавляет на форму окно ввода. addFrame(left, top, brd) - добавляет на форму рамку. addList(left, top, onChange) - добавляет на форму список. Поскольку форма является объектом, методы формы следует вызывать через двоеточие Form1:setActive() Все свойства и методы формы (за исключением setActive и isActive) присущи также другим компонентам интерфейса, которые я опишу позже.
Эта таблица лидеров рассчитана в Москва/GMT+03:00
