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

MisterFunny01

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

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

  • Посещение

Сообщения, опубликованные пользователем MisterFunny01


  1. 3 часа назад, ECS сказал:

     

    Какие именно фичи интересуют? Какие фичи фиг найдешь? Создание окошка с кнопочками - дело пары минут, описанное в деталях в документации:

     

    
    local GUI = require("GUI")
    
    --------------------------------------------------------------------------------
    
    -- Создаем главный контейнер с черной фоновой палелью
    local mainContainer = GUI.fullScreenContainer()
    mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x0))
    
    -- Добавляем окошко в главный контейнер
    local window = mainContainer:addChild(GUI.titledWindow(50, 22, 60, 14, "Акошко", true))
    
    -- Добавляем лейаут размером 1х2 в окошко
    local layout = window:addChild(GUI.layout(1, 2, window.width, window.height - 1, 1, 2))
    
    -- Задаем размеры горизонтальных рядов для лейаута
    layout:setRowHeight(1, GUI.SIZE_POLICY_RELATIVE, 1)
    layout:setRowHeight(2, GUI.SIZE_POLICY_ABSOLUTE, 2)
    
    -- Задаем режим выравнивание объектов для второго ряда по правому нижнему углу
    layout:setAlignment(1, 2, GUI.ALIGNMENT_HORIZONTAL_RIGHT, GUI.ALIGNMENT_VERTICAL_BOTTOM)
    -- ... направленние
    layout:setDirection(1, 2, GUI.DIRECTION_HORIZONTAL)
    -- ... расстояние между объектами
    layout:setSpacing(1, 2, 3)
    -- ... и отступ от правого нижнего угла
    layout:setMargin(1, 2, 2, 1)
    
    -- Доавляем текст в первый ряд лейаута
    layout:addChild(GUI.text(1, 1, 0x0, "Я оч большой и важный текст"))
    
    -- Меняем дефолтный ряд, в который будут добавляться объекты (можно через layout:setPosition(object), но лень)
    layout.defaultRow = 2
    
    -- Добавляем кнопочки
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0xB4B4B4, 0xFFFFFF, 0x969696, 0xB4B4B4, "Отмена"))
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0xB4B4B4, 0xFFFFFF, 0x969696, 0xB4B4B4, "Еще тык"))
    -- При "тыке" на эту кнопочку комп будет вырубаться
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0x696969, 0xFFFFFF, 0x969696, 0xB4B4B4, "Тык")).onTouch = function()
      require("computer").shutdown()
    end
    
    --------------------------------------------------------------------------------
    
    -- Разово отрисовываем содержимое главного контейнера в принудительном режиме (для полной отрисовки буфера, вдруг опенось чет свое нарисует)
    mainContainer:drawOnScreen(true)
    -- Начинаем обработку событий
    mainContainer:startEventHandling()

     

    Результат:

     

    jaYThVi.png

    А если фон мне делать не надо. И как закрыть "АКОШКО"


  2. 3 часа назад, ECS сказал:

     

    Какие именно фичи интересуют? Какие фичи фиг найдешь? Создание окошка с кнопочками - дело пары минут, описанное в деталях в документации:

     

    
    local GUI = require("GUI")
    
    --------------------------------------------------------------------------------
    
    -- Создаем главный контейнер с черной фоновой палелью
    local mainContainer = GUI.fullScreenContainer()
    mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x0))
    
    -- Добавляем окошко в главный контейнер
    local window = mainContainer:addChild(GUI.titledWindow(50, 22, 60, 14, "Акошко", true))
    
    -- Добавляем лейаут размером 1х2 в окошко
    local layout = window:addChild(GUI.layout(1, 2, window.width, window.height - 1, 1, 2))
    
    -- Задаем размеры горизонтальных рядов для лейаута
    layout:setRowHeight(1, GUI.SIZE_POLICY_RELATIVE, 1)
    layout:setRowHeight(2, GUI.SIZE_POLICY_ABSOLUTE, 2)
    
    -- Задаем режим выравнивание объектов для второго ряда по правому нижнему углу
    layout:setAlignment(1, 2, GUI.ALIGNMENT_HORIZONTAL_RIGHT, GUI.ALIGNMENT_VERTICAL_BOTTOM)
    -- ... направленние
    layout:setDirection(1, 2, GUI.DIRECTION_HORIZONTAL)
    -- ... расстояние между объектами
    layout:setSpacing(1, 2, 3)
    -- ... и отступ от правого нижнего угла
    layout:setMargin(1, 2, 2, 1)
    
    -- Доавляем текст в первый ряд лейаута
    layout:addChild(GUI.text(1, 1, 0x0, "Я оч большой и важный текст"))
    
    -- Меняем дефолтный ряд, в который будут добавляться объекты (можно через layout:setPosition(object), но лень)
    layout.defaultRow = 2
    
    -- Добавляем кнопочки
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0xB4B4B4, 0xFFFFFF, 0x969696, 0xB4B4B4, "Отмена"))
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0xB4B4B4, 0xFFFFFF, 0x969696, 0xB4B4B4, "Еще тык"))
    -- При "тыке" на эту кнопочку комп будет вырубаться
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0x696969, 0xFFFFFF, 0x969696, 0xB4B4B4, "Тык")).onTouch = function()
      require("computer").shutdown()
    end
    
    --------------------------------------------------------------------------------
    
    -- Разово отрисовываем содержимое главного контейнера в принудительном режиме (для полной отрисовки буфера, вдруг опенось чет свое нарисует)
    mainContainer:drawOnScreen(true)
    -- Начинаем обработку событий
    mainContainer:startEventHandling()

     

    Результат:

     

    jaYThVi.png

    Кстати это как раз для твоей ОСи

     

     

     

     

    И НЕ ДАЙ БОГ КТО-ТО СКАЖЕТ ЧТО МАИНОС ЭТО ГРАФ. ОБОЛОЧКА


  3. 3 часа назад, ECS сказал:

     

    Какие именно фичи интересуют? Какие фичи фиг найдешь? Создание окошка с кнопочками - дело пары минут, описанное в деталях в документации:

     

    
    local GUI = require("GUI")
    
    --------------------------------------------------------------------------------
    
    -- Создаем главный контейнер с черной фоновой палелью
    local mainContainer = GUI.fullScreenContainer()
    mainContainer:addChild(GUI.panel(1, 1, mainContainer.width, mainContainer.height, 0x0))
    
    -- Добавляем окошко в главный контейнер
    local window = mainContainer:addChild(GUI.titledWindow(50, 22, 60, 14, "Акошко", true))
    
    -- Добавляем лейаут размером 1х2 в окошко
    local layout = window:addChild(GUI.layout(1, 2, window.width, window.height - 1, 1, 2))
    
    -- Задаем размеры горизонтальных рядов для лейаута
    layout:setRowHeight(1, GUI.SIZE_POLICY_RELATIVE, 1)
    layout:setRowHeight(2, GUI.SIZE_POLICY_ABSOLUTE, 2)
    
    -- Задаем режим выравнивание объектов для второго ряда по правому нижнему углу
    layout:setAlignment(1, 2, GUI.ALIGNMENT_HORIZONTAL_RIGHT, GUI.ALIGNMENT_VERTICAL_BOTTOM)
    -- ... направленние
    layout:setDirection(1, 2, GUI.DIRECTION_HORIZONTAL)
    -- ... расстояние между объектами
    layout:setSpacing(1, 2, 3)
    -- ... и отступ от правого нижнего угла
    layout:setMargin(1, 2, 2, 1)
    
    -- Доавляем текст в первый ряд лейаута
    layout:addChild(GUI.text(1, 1, 0x0, "Я оч большой и важный текст"))
    
    -- Меняем дефолтный ряд, в который будут добавляться объекты (можно через layout:setPosition(object), но лень)
    layout.defaultRow = 2
    
    -- Добавляем кнопочки
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0xB4B4B4, 0xFFFFFF, 0x969696, 0xB4B4B4, "Отмена"))
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0xB4B4B4, 0xFFFFFF, 0x969696, 0xB4B4B4, "Еще тык"))
    -- При "тыке" на эту кнопочку комп будет вырубаться
    layout:addChild(GUI.adaptiveRoundedButton(1, 1, 2, 0, 0x696969, 0xFFFFFF, 0x969696, 0xB4B4B4, "Тык")).onTouch = function()
      require("computer").shutdown()
    end
    
    --------------------------------------------------------------------------------
    
    -- Разово отрисовываем содержимое главного контейнера в принудительном режиме (для полной отрисовки буфера, вдруг опенось чет свое нарисует)
    mainContainer:drawOnScreen(true)
    -- Начинаем обработку событий
    mainContainer:startEventHandling()

     

    Результат:

     

    jaYThVi.png

    Ну да для тебя это пару мин. Я С ЛУА ТОЛЬКО ЗНАКОМЛЮСЬ. заранее соре за капс. Ну и спасибо за помощь


  4. 2 минуты назад, ECS сказал:

     

    Эта фраза уже бичом нервов стала, а чертовы доморощенные эксперты-казуисты продолжают лезть изо всех дыр. Элементарная ОСь на платформе опенкомпов состоит буквально из нескольких сот строк кода, реализующих методы работы с файловой системой, позволяющих монтировать физические дисковые носители, грузить библиотеки по предустановленным путям, обрабатывать события и имитировать многозадачность. Все остальное - это графическая оболочка, в моем случае состоящая из десятка тысяч строк кода, вылизанных до предела, чтобы уложиться в строгие рамки ресурсов, выделенных под каждую виртуальную машину в кубаче. Интерфейс майноси с базовым прикладным софтом по типу проводника/настроек/пикчредакторов/магазинов/IDE мы писали с большой командой товарищей около четырех с фигом лет, постоянно его совершенствуя.

     

    Эксперимента ради я решил отвязать майнось от опеноси, сделав ее полностью независимой. Это заняло несколько часов. Ценой нескольких, мать их, часов, а также нескольких написанных либ суммарным объемом в две сотни строк  майнось стала полностью удовлетворять определению "операционная система", загружаясь с очищенного от скверны жесткого диска и собственного EEPROM. Результат лежит на отдельном репозитории, законсервированный до лучших дней:

     

    https://github.com/IgorTimofeev/MineOSStandalone

     

    А теперь скажи мне, умник, не кажется ли тебе странным, что вся "ось" пишется на коленке за несколько часов, а "граф. оболочка" - пускай и не годами, но в значительно большие сроки? Может быть, термин "ось" переоценен, и основу современной интерфейсной операционной системы составляет все же графическая оболочка? Эх, мяу

    Вот именно!


  5. 46 минут назад, eu_tomat сказал:

    Так-так-так... А кто у нас пару дней назад в чатике мечтал написать свою операционку? Что поменялось за это время?

    Ну это только мечта, я тоже раньше хотел взять видеокарту MSI а потом сказал что MSI какаха.


  6. 2 минуты назад, eu_tomat сказал:

    Для начала надо определиться, как ты хочешь реализовать эти кнопки: напишешь сам или используешь готовую библиотеку.

     

    Использовать готовые библиотеки для новичка проще. Но надо изучить их API, который может оказаться бесполезным в других случаях.

    Писать самому сложнее, но такой подход позволит сосредоточиться только на знании API OpenComputers, не имея дела с особенностями работы чужих библиотек.

     

    Каков твой выбор?

    Я с луа не знаком вообще. Я с питоном хорошо так дружу и немного с джавой.


  7. 2 минуты назад, Fronun сказал:

    Хоспади, можешь воспользоваться библеотекой GUI от ECS, темболее там есть документация (правда, там тонна фич не задокументирована), посмотри исходники MineOS, я обычно так делаю когда пишу какую нибудь прошку.

    Эти фичи фиг найдешь.


  8. Только что, ECS сказал:

    @MisterFunny01, звучит несколько странно, но ладненько.

     

     

    loadfile("/bin/rm.lua")("Тут путь к иконкам и языкам прилог")

    (таких скоб будет много) Потом путь к (/bin/wget)("тут ссылка на скачку иконок и прочей фигни", тут отдельный путь куда и все и вся).

     


  9. 16 часов назад, ECS сказал:

    @MisterFunny01, меня полностью устраивают текущие иконки, я не собираюсь менять их из-за чьей-либо нетолерантности к мату. Все фиксы грамматических ошибок машинного перевода можно без проблем кинуть пулл реквестом на гит, если есть желание, я только рад буду. Что за установщик? Установщик чего? Установщик модифицированной оси с "православными" иконками без мата что ли? Повторюсь: мне подобные изменения не по нраву, сам кодь что пожелаешь, но меня не впутывай, мяу. Что за расположение ядра? Нет у оськи никакого ядра, либа "MineOSCore" названа так чисто по приколу, для симуляции "научности". Что подразумевается под "непереведенными" штуками? Настройки, да и вообще все локализованные приложения, с самого начала поддерживают все четыре системных языка, в том числе и украинский:

     

    7bJ0Eft.png?1

     

    Насчет прог для робота/дрона - их нет, я мало с роботами работал. Есть сборная солянка простеньких скриптов, оставшихся после выживания на сервере с поцыками, но никакой работоспособности не гарантируется:

     

    https://github.com/IgorTimofeev/MineOS/tree/master/Applications/Robot

    https://github.com/IgorTimofeev/MineOS/tree/master/Applications/DroneGrief

    https://github.com/IgorTimofeev/MineOS/tree/master/Applications/Drone farmer

    Я сказал что поправлю язык. А потом в маркет сделаю установщик, который заменит иконки, перевод и т.д


  10. 2 часа назад, ECS сказал:

    @MisterFunny01, меня полностью устраивают текущие иконки, я не собираюсь менять их из-за чьей-либо нетолерантности к мату. Все фиксы грамматических ошибок машинного перевода можно без проблем кинуть пулл реквестом на гит, если есть желание, я только рад буду. Что за установщик? Установщик чего? Установщик модифицированной оси с "православными" иконками без мата что ли? Повторюсь: мне подобные изменения не по нраву, сам кодь что пожелаешь, но меня не впутывай, мяу. Что за расположение ядра? Нет у оськи никакого ядра, либа "MineOSCore" названа так чисто по приколу, для симуляции "научности". Что подразумевается под "непереведенными" штуками? Настройки, да и вообще все локализованные приложения, с самого начала поддерживают все четыре системных языка, в том числе и украинский:

     

    7bJ0Eft.png?1

     

    Насчет прог для робота/дрона - их нет, я мало с роботами работал. Есть сборная солянка простеньких скриптов, оставшихся после выживания на сервере с поцыками, но никакой работоспособности не гарантируется:

     

    https://github.com/IgorTimofeev/MineOS/tree/master/Applications/Robot

    https://github.com/IgorTimofeev/MineOS/tree/master/Applications/DroneGrief

    https://github.com/IgorTimofeev/MineOS/tree/master/Applications/Drone farmer

    Без проблем. Мне только разрешение и надо было. Я сделаю обзор на свой канал. В описании кину ссылку на тебя и скажу типа накодил это про ты. И я заменил немного там пофиксированнее немного и все остальное, а также оставлю ссылку на оригинал. ВСЕ


  11. 14 часов назад, ECS сказал:

    @MisterFunny01, та делай шо хочешь, хоспаде, не жалко ж. Только в маркете, скорее всего, заминусуют, после чего он публикация автоматом удалится

    Я скину тебе уже установленную ось с другими иконками и другим переводом. Ну ещё поправлю украинский перевод. Ибо он немного кривоват. И да я из Украины. Либо на гитхаб залью и скину ссылочку. А потом установщик сделаю. Там мне только надо знать расположение ядра и все. Также переведу Настройки и прочие твои непереведённые штуки. Ну как переведу, попытаюсь по крайней мере. И хотел спросить, где твои все проги там на робота, Дрона и прочего?


  12. 4 часа назад, ECS сказал:

    @MisterFunny01, зараза, хоть бы стек ошибки скинул или вообще хоть какую-то инфу. А насчет матов - главное, что они нравятся мне, разбавляя скучную жизу прикладного кодерства подростковыми бунтарскими радостями. Но если прям совсем невмоготу, то можешь пилить собственный софт с идеалистичной культурой речи в иконочках, благо и документация, и площадка для публикации имеются.

    Ща скину, а я про иконки хотел спросить МОЖНО ЛИ сделать твой софт лучше. Ну оно тебе нравиться. А можно я вот прекожу и под твоим копирайтом буду распространять софт без матов. 


  13. Игорь, тут такая тема. Мне при установке ОС пилит синтаксическую ошибку. Либо я чет сделал либо что то не так. А ещё хотел спросить. Можно ли переходить твои иконки. Ибо мне больно смотреть на маты в прогах

×
×
  • Создать...