MisterFunny01
-
Публикации
51 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем MisterFunny01
-
-
17 часов назад, ov3rwrite сказал:Ой-ой-ой,вы не видели сам код майноси на гитхабе)Я в году так 2018 смотрел,там были переменные по типу pizda, pizdaLength
Да и щас их хоть отбавляй))))
-
1
-
-
54 минуты назад, Fingercomp сказал:переписанной без матов истории коммитов;
есть, т.к все на моем гитхабе.
Переменные в процессее
55 минут назад, Fingercomp сказал:замены значков об ошибке рисунком бодрого розового единорога;
есть
55 минут назад, Fingercomp сказал:патча OpenComputers, чтобы мониторы работали в кодировке KOI-8.
55 минут назад, Fingercomp сказал:перевода MineOS с Lua на китайский вариант Scratch;
лень, а все остальное постараюсь
-
1
-
1
-
-
Скрытый текст
P.S там другая картинка, это просто типа заставка
@ECS как тебе такое. Возможно все забыли меня и мои намерения, но я сделал, то, что обещал. Майнось без матов. Конечно-же приложения в аппмаркете, написанные юзверами я не могу изменить, увы, но дефолтный пакет я поменял. Кто хочет опробовать, то вот
pastebin run Hts3U5MSЭто просто стандартный установщик майноси, но установит от с моего гитхаба, где отредактирована эта версия. А так в качестве дополнения я немного дополнил меню о системе типа версия и все такое. А т.к система завершена, то я планирую добавлять фичи в нее (но это не точно)
-
1
-
-
02.03.2019 в 22:03, LaRRaM сказал:зделай, пожалуйста, интерпритатор python!
Лол шта? Понимаю компилятор с++, но питон и луа никак не совмещены
-
Добавь формат PPM (его бинарную цветную версию P6)
Пы. Сы. Если бы я изучал джаву, то может быть сам бы добавил
-
03.06.2015 в 15:38, NEO сказал:Лучше изучить ооп на Java
Или на с++ (кст я его и изучаю)
-
5 минут назад, eu_tomat сказал:MineOS в состав OpenComputers решается (решалось) не на этом форуме
Я частичто понял, что ты сказал
-
6 минут назад, Alex сказал:повышает стабильность работы всей системы и приложений в целом.
Ахах, но все же я сказал серьезно, кст пилю свой "фаиловый меныджир"
-
23.08.2016 в 16:06, Alex сказал:майнОсю ECS в лут-диск
Надо тогда ECS'у выпилить все маты из ОСи именно из приложений. Там MineCode IDE и все такое. ЕСли Игорь согласится, то может и добавят
23.08.2016 в 16:06, Alex сказал:должна быть из коробки в ОС
С этим я полностью согласен
-
Я считаю правильным добавить либу GUI чтобы не появлялся
01.02.2017 в 14:51, Laine_prikol сказал:различный графический мусор
-
20.08.2015 в 15:21, Doob сказал:Вход в ДЦ забаррикадирован кирпичами))
и что делать, я хотел попробывать, а то так толком ничего не делаю, а только пишу.
-
Увидел прогу, прикольная, но мрачная, хотелось бы сделать ее более светлой. Дальше я ее портиртировал под MineOS, ведь все новички в моде скачаивают именно ее, поэтому, думаю, будет полезно ее туда портировать (я знаю это легко, но я добавлю фичи именно для майноси т.е открытие и сохранение файлов, но на первой версии для майноси этого не будет). Багов пока не нашел.
-
24.03.2019 в 10:04, ECS сказал:@MisterFunny01, так бы и сказал сразу. Ну чо, берешь либо готовую либу для отрисовки пикч, либо пишешь собственную. Далее создаешь пикчи либо в готовом пикчредакторе, либо в самописном, либо вообще по пиксельному массиву, создаваемому напрямую в коде. Далее получаешь список файлов из директории, фильтруешь расширения, и рисуешь пикчи. В чем проблема-то?
Данный пример для готовой либы. Как обстоят дела конкретно в твоем случае - я хз.
local filesystem = require("filesystem") local image = require("image") local gpu = require("component").gpu local directoryImage = image.load("/Papka.pic") local screenWidth, screenHeight = gpu.getResolution() -- Чистишь вилочкой экран gpu.setBackground(0x0) gpu.fill(1, 1, 160, 50, " ") local path, x, y = "/", 1, 1 -- Пробегаешься по списку дочерених файлов в указанной директории for file in filesystem.list(path) do -- Рисуешь иконку, если это директория if filesystem.isDirectory(path .. file) then image.draw(x, y, directoryImage) end -- Рисуешь текст с именем файла под иконкой gpu.setForeground(0xFFFFFF) gpu.set(x, y + 5, file) -- Определяешь координаты следующей иконки на экране x = x + 10 -- Смещаешься ниже, если иконка зашла слишком "вправо" if x + 10 >= screenWidth then x, y = 1, y + 5 end end
Спасибо!
-
16.03.2019 в 14:59, ECS сказал:Рили не понятно, о чем идет речь, прости. Что за папки, в какой софтине - в ls.lua или в какой-то иной? Что подразумевается под иконкой - однопиксельный значок или изображение?
Изображение. Я ХОЧУ, ЧТОБЫ ВМЕСТО ТЕКСТА (название папки/файла) БЫЛА КАРТИНКА С НАЗВАНИЕМ ЭТОГО ФАЙЛА/ПАПКИ (мне нужно, чтобы только папки были с иконокой, файлы можно и текстом)
НАПР
filesystem.list() --и с этого надо получить название и разширение, потом filesystem.isDirectory() -- и мы все папки, на которые он реагирует (filesystem.isDirectory() true) надо сделать иконку
-
06.03.2019 в 16:30, ECS сказал:@MisterFunny01, что значит "выделить только папки"? Ты же выше писал, что нужно отображение иконок вместе с именем файла, а теперь про выделение какое-то. Нипанятна! Но если что, папку от файла можно отличить через
print(filesystem.isDirectory("/MyFile.lua")) > false
А расширение файла можно получить через регулярку
local name = "MyFile.lua" print(name:match("[^%/]+(%.[^%/]+)%/?$")) > .lua
Ну выделить папку иконкой
-
21.02.2019 в 21:09, ECS сказал:@MisterFunny01, если речь о майноси, то индивидуально для каждого файла - никак. Иконки можно кастомизировать у приложений, а потом уже назначать ассоциации расширений файлов для открытия выбранным приложением. Конкретнее - смотри содержимое приложухи MineCode IDE.app, там как раз добавлены кастомные иконки и контекстное меню для .cfg/.txt/.lua, да и вообще довольно очевидно все
Это не майнось, (квест, надо файлы некоторые выделить (только папки )) просто майнось делает для всех файлов (.lua) а мне надо только для определенных, ну и не в "акошке" а в консоле
-
Я хочу вместо текста и текст и иконки. Напр. Все папки выглядят как папки (ну это логично) покажите плиз, как сделать иконки для определенного расширения файлов
-
28.12.2018 в 19:58, ECS сказал:player = "MisterSosister"
28.12.2018 в 19:58, ECS сказал:name
Словил косяк, ну да ладно, все равно спасибо
-
21.09.2015 в 05:21, ECS сказал:
Хочу поделится с вами своей библиотекой, которую использую практически в каждой программе с графическим интерфейсом. С ее помощью можно генерировать любые "окна" на свой вкус, работать с ними, а затем получать результат работы в обычном массиве.
Cкачать библиотеку:pastebin get wtWVFpKZ lib/windows.lua
Подробное описание основной функции и ее аргументов:
Из всей массы функций в данном файле нас будет интересовать лишь одна:
- windows.universalWindow(x, y, width, background, closeWindowAfter, ...)
Она отрисовывает окно с перечисленными вместо двоеточия объектами. Любой объект выделяется с помощью клика мыши, после чего функция приступает к работе с этим объектом.Аргументы функции:- x и y: это числа, обозначающие стартовые координаты левого верхнего угла данного окна. Вместо цифр вы также можете написать "auto" - и программа автоматически разместит окно по центру экрана по выбранной координате. Или по обеим координатам, если вам угодно.
-
width: это ширина окна, которую вы можете задать по собственному желанию. Если некторые объекты требуют расширения окна, то окно будет автоматически расширено до нужной ширины. Да, вот такая вот тавтология
- background: базовый цвет окна (цвет фона, кому как понятнее).
- closeWindowAfter: eсли true, то окно по завершению функции будет выгружено, а на его месте отрисуются пиксели, которые имелись на экране до выполнения функции. Удобно, если не хочешь париться с перерисовкой интерфейса.
- ... : многоточием тут является перечень объектов, указанных через запятую. Каждый объект является массивом и имеет собственный формат. Ниже перечислены все возможные типы объектов.
{"Button", {Цвет кнопки1, Цвет текста на кнопке1, Сам текст1}, {Цвет кнопки2, Цвет текста на кнопке2, Сам текст2}, ...}
Это объект для рисования кнопок. Каждая кнопка - это массив, состоящий из трех элементов:цвета кнопки, цвета текста на кнопке и самого текста. Кнопок может быть неограниченное количество,однако чем их больше, тем большее требуется разрешение экрана по ширине.Интерактивный объект.{"Input", Цвет рамки и текста, Цвет при выделении, Стартовый текст [, Маскировать символом]}Объект для рисования полей ввода текстовой информации. Удобно для открытия или сохранения файлов,Опциональный аргумент "Маскировать символом" полезен, если вы делаете поле для ввода пароля.Никто не увидит ваш текст. В качестве данного аргумента передается символ, например "*".Интерактивный объект.{"Selector", Цвет рамки, Цвет при выделении, Выбор 1, Выбор 2, Выбор 3 ...}Внешне схож с объектом "Input", однако в этом случае вы будете выбирать один из предложенныхвариантов из выпадающего списка. По умолчанию выбран первый вариант.Интерактивный объект.{"Select", Цвет рамки, Цвет галочки, Выбор 1, Выбор 2, Выбор 3 ...}Объект выбора. Отличается от "Selector" тем, что здесь вы выбираете один из вариантов, отмечаяего галочкой. По умолчанию выбран первый вариант.Интерактивный объект.{"Slider", Цвет линии слайдера, Цвет пимпочки слайдера, Значения слайдера ОТ, Значения слайдера ДО, Текущее значение [, Текст-подсказка ДО] [, Текст-подсказка ПОСЛЕ]}Ползунок, позволяющий задавать определенное количество чего-либо в указанном интервале. Имеются дваопциональных аргумента, позволяющих четко понимать, с чем именно мы имеем дело.К примеру, если аргумент "Текст-подсказка ДО" будет равен "Съедено ", а аргумент "Текст-подсказка ПОСЛЕ"будет равен " яблок", а значение слайдера будет равно 50, то на экране будет написано "Съедено 50 яблок".Интерактивный объект.{"Switch", Активный цвет, Пассивный цвет, Цвет текста, Текст, Состояние}Переключатель, принимающий два состояния: true или false. Текст - это всего лишь информация, некоеназвание данного переключателя.Интерактивный объект.{"CenterText", Цвет текста, Сам текст}Отображение текста указанного цвета по центру окна. Чисто для информативных целей.{"WrappedText", Цвет текста, Текст}Отображение большого количества текста с автоматическим переносом. Прото режет слова на кусочки,перенос символический. Чисто для информативных целей.{"TextField", Высота, Цвет фона, Цвет текста, Цвет скроллбара, Цвет пимпочки скроллбара, Сам текст}Текстовое поле с возможностью прокрутки. Отличается от "WrappedText"фиксированной высотой. Чисто для информативных целей.{"Separator", Цвет разделителя}Линия-разделитель, помогающая лучше отделять объекты друг от друга. Декоративный объект.{"EmptyLine"}Пустое пространство, помогающая лучше отделять объекты друг от друга. Декоративный объект.Каждый из объектов рисуется по порядку сверху вниз. Каждый объект автоматическиувеличивает высоту окна до необходимого значения. Если объектов будет указано слишком много -т.е. если окно вылезет за пределы экрана, то программа завершится с ошибкой.Что возвращает функция:Возвратом является массив, пронумерованный от 1 до <количества объектов>. То есть 1 индекс данного массива соответствует 1 указанному интерактивному объекту. Каждый индекс массива несет в себе какие-то данные, которые вы внесли в объект во время работы функции. Например, если в 1-ый объект типа "Input" вы ввели фразу "Hello world", то первый индекс в возвращенном массиве будет равен "Hello world".Конкретнее это будет вот так: massiv[1] = "Hello world".Примеры работы с библиотекой:
Пример 1
Сгенерируем наше первое окошко, создав программу со следующим кодом:
--Подключаем скачанную библиотеку local windows = require("windows") --Рисуем окошко на экране windows.universalWindow("auto", "auto", 30, 0xeeeeee, true, {"EmptyLine"}, {"CenterText", 0x262626, "Hello world!"}, {"EmptyLine"}, {"Button", {0x880000, 0xffffff, "Йо"}})
На экране отобразится следующее:
Командой выше мы рисуем окно по автоматически рассчитанным координатам (по центру экрана), так как первые два аргумента равняются "auto", "auto". Затем мы указали ширину окна - 30 пикселей. Затем указали, что основной фон окна будет иметь цвет 0xeeeeee, то есть почти белый. Затем начинается самое интересное - мы задаем объекты нашего окна!
- {"EmptyLine"} служит всего лишь для красоты, так мы разделяем объекты окна друг от друга.
- {"CenterText", 0x262626, "Hello world!"} рисует текст "Hello world" цвета 0x262626 по центру окна.
- {"Buttons", {0x880000, 0xffffff, "Йо"}} рисует одну-единственную кнопку красного (0x880000) цвета, а на ней уже белый (0xffffff) текст "Йо".
По нажатию на кнопку окно автоматически закрывается, а на его месте рисуются те пиксели, которые были до старта окна, так как мы задали параметр closeWindowAfter = true.
Пример 2
Теперь попытаемся извлечь практическую пользу из наших окошек - напишем программу, спрашивающую, стоит ли совершить какое-то действие. И чтобы как только мы нажмем на одну из кнопок, нам писалось это действие.
Создадим следующую программу:
local windows = require("windows") --Получаем массив с данными о работе нашего окна local action = windows.universalWindow("auto", "auto", 30, 0xeeeeee, true, {"EmptyLine"}, {"CenterText", 0x262626, "Файл \"OS.lua\" уже имеется в этом месте."}, {"CenterText", 0x262626, "Заменить его перемещаемым объектом?"}, {"EmptyLine"}, {"Button", {0xdddddd, 0x262626, "Оставить оба"}, {0xffffff, 0x262626, "Отмена"}, {0x99b2f2, 0xffffff, "Заменить"}}) --Вызываем функцию очистки окна и установки курсора на 1, 1 (она тут имеется) windows.prepareToExit() --Выводим содержимое массива окна print(table.unpack(action))
На экране отобразится следующее:
Но как только мы нажимаем, к примеру, на кнопку "Заменить", экран очистится, и перед нами предстанет следующее:
Как и в предыдущем примере, мы нарисовали окно по центру экрана с основным цветом 0xeeeeee, разве что мы вывели две строки с текстом вместо одной и нарисовали сразу три кнопки друг за другом.
Затем, как только мы нажали на кнопку, программа автоматически завешилась и вернула нам массив с состояниями объектов. Поскольку в нашей программе интерактивными объектами являются только кнопки, массив будет иметь лишь один элемент - название кнопки, на которую мы нажали. Таким образом наша программа может взаимодействовать с пользователем на графическом уровне, получать от него информацию, и выдавать эту информацию компьютеру для дальнейшей обработки.
Пример 3
В последнем примере мы создадим самую сложную программу со всеми возможными элементами окна. Далее следует много текста, аккуратнее:
local windows = require("windows") --Очищаем экран перед использованием окна и ставим курсор на 1, 1 windows.prepareToExit() --Рисуем окно и получаем данные после взаимодействия с ним local data = windows.universalWindow("auto", "auto", 36, 0xeeeeee, true, {"EmptyLine"}, {"CenterText", 0x880000, "Здорово, ебана!"}, {"EmptyLine"}, {"Input", 0x262626, 0x880000, "Сюда вводить можно"}, {"Selector", 0x262626, 0x880000, "Выбор формата", "PNG", "JPG", "GIF", "PSD"}, {"EmptyLine"}, {"WrappedText", 0x262626, "Тест автоматического переноса букв в зависимости от ширины данного окна. Пока что тупо режет на куски, не особо красиво."}, {"EmptyLine"}, {"Select", 0x262626, 0x880000, "Я пидор", "Я не пидор"}, {"Slider", 0x262626, 0x880000, 1, 100, 50, "Убито ", " младенцев"}, {"EmptyLine"}, {"Separator", 0xaaaaaa}, {"Switch", 0xF2B233, 0xffffff, 0x262626, "✈ Авиарежим", false}, {"EmptyLine"}, {"Switch", 0x3366CC, 0xffffff, 0x262626, "☾ Не беспокоить", true}, {"Separator", 0xaaaaaa}, {"EmptyLine"}, {"TextField", 5, 0xffffff, 0x262626, 0xcccccc, 0x3366CC, "Тест текстового информационного поля. По сути это тот же самый WrappedText, разве что эта хрень ограничена по высоте, и ее можно скроллить. Ну же, поскролль меня! Скролль меня полностью! Моя жадная пизда жаждет твой хуй!"}, {"EmptyLine"}, {"Button", {0x57A64E, 0xffffff, "Да"}, {0xF2B233, 0xffffff, "Нет"}, {0xCC4C4C, 0xffffff, "Отмена"}}) --Еще раз ставим курсор на 1, 1 windows.prepareToExit() --С помощью цикла выводим данные из массива data, полученные после взаимодействия с окном print(" ") print("Вывод данных из окна:") for i = 1, #data do print("["..i.."] = " .. tostring(data[i])) end print(" ")
На экране отобразится следующее:
Далее давайте введем в текстовое поле какую-то белиберду:
Затем выберем формат файла "JPG":
Затем укажем программе, что у нас все в порядке с сексуальной ориентацией:
Cдвинем ползунок влево, указав, что никакие младенцы не были убиты:
Переключим оба слайдера в значение "ON":
И наконец, кликнем на кнопку "Да". Экран очистится, а в левом верхнем углу выведется содержимое массива, возвращенного окном после работы.
Подытожив, можно сказать, что на экране отобразилось содержимое всех интерактивных объектов окна, то бишь:
privetEpta - значение объекта Input
JPG - значение объекта Selector
Я не пидор - значение объекта Select
0 - значение объекта Slider
true - значение первого объекта Switch
true - значение второго объекта Switch
Да - значение объекта Button, т.е. название кнопки, на которую мы нажали
Надеюсь, общий принцип работы данной библиотеки ясен, поэтому расписывать все досканально в мельчайших деталях не вижу смысла. Главное, чтобы данные "окошки" послужили вам верой и правдой.
Мдаа уж... Очень классные у тебя параметры) (нет(это слишком(уж очень)))
-
01.01.2019 в 17:28, ECS сказал:
Мяу, не надо каждый файл, надо одну единственную документацию. Если возникают вопросы или желания по реализации каких-то фич, то пиши в тему либы или мне в личку ВК. Если лень изучать конкретно эту либу или же она по каким-то причинам не устраивает, то есть аналоги, например, forms.Вот именно! ДОКУМЕНТАЦИЮ, НЕ КОД
-
25.12.2018 в 13:07, Fronun сказал:Тут никто не виноват, что ты ленишься прочитать код, вот я допустим узнал два новых фич пока я читал код.
Ага изучать месяц каждый луа файл. В-время
-
В 30.12.2018 в 18:51, ECS сказал:8х4 псевдо-пикселя
спасибо
-
Хотел спрсить, а какое разрешение иконок
-
спасибо вам. Просто я закопался. Я не знаю Lua. И я не хочу юзать чужой софт. Я хочу писать все сам. спасибо

MineOS
в Операционные системы
Опубликовано: · Изменено пользователем MisterFunny01
Уже давным давно, там только текст может это вызвать, а так цвет там не розвовый, а я бы сказал бордово-фиолетовый