MineOS/README.md
2018-02-22 16:13:46 +03:00

85 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Инструкция по установке MineOS:
-----------------------------------------------------------
Перед установкой убедитесь, что ваш компьютер соответствует минимальной конфигурации:
| Устройство | Tier | Количество, шт |
| ----- | ----- | ----- |
| Системный блок | 3 | 1 |
| Экран | 3 | 1 |
| Клавиатура | 1 | 1 |
| Центральный процессор | 3 | 1 |
| Видеокарта | 3 | 1 |
| Оперативная память | 3.5 | 2 |
| Интернет-карта | 2 | 1 |
| EEPROM (Lua BIOS) | 1 | 1 |
| Дискета с OpenOS | 1 | 1 |
Также рекомендуется добавить беспроводной модем для объединения компьютеров в домашнюю сеть.
Если вы используете какие-либо модификации, предоставляющие энерго-систему (IC2, TE, IE, Mekanism и т.п.), то вам также потребуется преобразователь энергии и ее источник. В итоге собранная система и конфигурация компонентов системного блока должны выглядеть схожим образом:
![](https://i.imgur.com/5O5dDSQ.png?1)
![](https://i.imgur.com/fIAa6m8.png?1)
Теперь вы можете включить компьютер. По умолчанию загрузится операционная система OpenOS со вставленной дискеты, вам остается лишь установить ее на жесткий диск по аналогии с установкой реальной ОС. Используйте команду **install**:
![](https://i.imgur.com/lpwwQD4.png?1)
После окончания процедуры установки вам будет предложено сделать жесткий диск загрузочным, а также перезагрузить компьютер. Соглашайтесь, после перезагрузки вы можете приступать к установке MineOS. Для этого введите в консоль команду:
pastebin run 0nm5b1ju
Компьютер будет проанализирован на соответствие минимальным требованиям, после чего перед вами откроется симпатичный установщик. Вы можете изменить некоторые системные опции на свой вкус, и, согласившись с лицензионным соглашением, установить MineOS:
![](https://i.imgur.com/tN9ua0J.gif)
Как создавать приложения MineOS
-----------------------------------------------------------
Каждое приложение MineOS - это директория с расширением **.app**, имеющая следующее содержимое:
![](https://i.imgur.com/o6uiNBJ.png)
Файл **Main.lua** исполняется при запуске приложения, а **Icon.pic** используется для отображения иконки на рабочем столе и в проводнике. Самый простой способ создать приложение - это кликнуть на соответствующую опцию в контекстом меню:
![](https://i.imgur.com/S16oFce.png)
Вам будет предложено выбрать имя вашего приложения, а также его иконку. Если иконка не выбрана, то будет использована системная. Для изменения исходного кода приложения достаточно отредактировать файл **Main.lua**. В примере ниже мы будем использовать методы системных библиотек **[GUI](https://github.com/IgorTimofeev/OpenComputers/blob/master/Documentation/GUI.md)**, **[MineOSInterface](https://github.com/IgorTimofeev/OpenComputers/blob/master/Documentation/MineOSInterface.md)** и **[doubleBuffering](https://github.com/IgorTimofeev/OpenComputers/blob/master/Documentation/doubleBuffering.md)**, поэтому базовое ознакомление с ними крайне рекомендуется:
```lua
local GUI = require("GUI")
local buffer = require("doubleBuffering")
local MineOSInterface = require("MineOSInterface")
------------------------------------------------------------------------------------------------------
local mainContainer, window = MineOSInterface.addWindow(MineOSInterface.filledWindow(1, 1, 88, 26, 0xF0F0F0))
-- Создаем лейаут для автоматического расположения элементов интерфейса
local layout = window:addChild(GUI.layout(1, 1, window.width, window.height, 1, 1))
-- Создаем текстовый лейбл, в котором будем отображать количество нажатий на кнопку
local label = layout:addChild(GUI.label(1, 1, window.width, 1, 0x0, "")):setAlignment(GUI.alignment.horizontal.center, GUI.alignment.vertical.top)
-- Создаем саму кнопку
local button = layout:addChild(GUI.roundedButton(1, 1, 32, 3, 0xBBBBBB, 0xFFFFFF, 0x999999, 0xFFFFFF, "Нажми на меня"))
-- Создаем callback-функцию, вызываемую при нажатии на кнопку
local counter = 0
button.onTouch = function()
label.text = "Число нажатий: " .. counter
counter = counter + 1
mainContainer:draw()
buffer.draw()
end
-- Разово обновляем текстовые данные лейбла
button.onTouch()
```
Вуаля! Ваше первое оконное приложение готово:
![](https://i.imgur.com/vNhLcbX.gif)