OpenComputers

Для издания | |
---|---|

Авторы |
Sangar, payonel, Vexatos |

Дата выпуска |
14 декабря 2013 г. |

Совместимо с |
|

Установка |
См. Установка |

Требования | |

Ссылки |


**OpenComputers** — модификация с открытым исходным кодом. Она собирает в себе идеи ComputerCraft, Steve’s Carts и Modular Powersuits. Модификация добавляет в игру компьютеры, компоненты для их сборки и робототехнику. Программирование производится на языке Lua 5.2 или Lua 5.3

## Установка

- Установите Minecraft Forge.
- Скачайте
*OpenComputers*. - Скопируйте файл в папку

.*<папка игры>*/mods

## Ключевые особенности

### Надёжность

Ваши программы продолжат работать с того места, на котором остановились, когда чанк с компьютером был выгружен из памяти. Это особенно важно в одиночной игре и на серверах, где вы не можете контролировать загрузку чанков, а также при создании устройств на базе фреймов Redstone in Motion.

Важно: OpenComputers идет в комплекте с библиотекой Eris, которая содержит официальную реализацию Lua VM. Она уже включена в модификацию и работает на Windows, Mac OS X и Linux. Но её необходимо отдельно *установить для работы сервера* (установка автоматическая). Если библиотека будет отсутствовать в системе, модификация переключится на LuaJ. В этом режиме компьютеры не будут сохранять свое состояние при выгрузке чанка, а память не будет ограничена.

### Модульность

Вы можете добавлять и удалять компоненты, например — платы расширения или жёсткие диски. Таким образом, вам нужно затратить меньше усилий, чтобы собрать первый компьютер. При этом значительно повышается гибкость системы. Вы можете собрать «чистый» сервер, то есть компьютер с сетевой платой, но без видеокарты. Или «рабочую станцию», которая будет иметь несколько видеокарт, планок памяти, сетевую и красную плату.

### Ограниченность ресурсов

Кроме обычного ограничения размера диска, компьютеры имеют ограниченный размер оперативной памяти. Вы должны учитывать это при написании программ, иначе быстро «поймаете» ошибку переполнения памяти.

Это также уменьшает нагрузку модификации на игровой сервер. Модификация оптимизирует некоторые моменты для повышения производительности сервера: она не создает новый поток на каждую пользовательскую программу. Вместо этого используется ограниченное количество низко-приоритетных рабочих потоков для всех загруженных и работающих компьютеров. Также компьютеры вынуждены делать небольшие паузы в выполнении (по умолчанию — раз в секунду), чтобы избежать блокировки рабочим потоком. Если компьютер этого не сможет сделать, произойдет «крах системы».

### Энергия

Компьютеры и большинство компонентов нуждаются в энергии для работы. Например, компьютеры и мониторы тратят фиксированное количество энергии за такт при работе/выводе изображения. При недостатке энергии произойдет выключение. Видеокарты тратят энергию на изменение изображения на присоединенном экране. Беспроводные сети потребляют энергию, посылая сигнал. Мощность сигнала влияет на количество затраченной энергии. Роботы тратят энергию, когда двигаются или совершают действия.

Модификация не имеет своих способов генерации энергии (за исключением апгрейдов для робота). Предполагается, что она используется вместе с другими модификациями. OpenComputers может конвертировать энергию из BuildCraft, IndustrialCraft², ThermalExpansion 3, Applied Energistics 2 и Universal Electricity. Если ни одна модификация из вышеперечисленных не будет установлена, энергия не будет потребляться.

### Связь

В OpenComputers все устройства представлены в виде предметов или блоков — компонентов. То есть объектов, к которым можно обратиться из кода Lua.

Компоненты-блоки доступны из компьютеров с которыми они объединены в одну сеть. (Это похоже на то, как соединяются блоки в Applied Energistics.) К примеру, если установлен монитор, за ним вплотную дисковод, а за ним — компьютер, монитор будет доступен компьютеру. Самый простой способ соединить компоненты на расстоянии — использовать кабель.

Компоненты-предметы обычно доступны только тому компьютеру, в который они установлены. Исключения из правил: дискеты в дисководах и диски в RAID, которые работают как компонент-блок.

### Конфигурация

Практически каждый аспект модификации может быть настроен при помощи файла конфигурации. Например, энергопотребление, скорость роботов и многое другое. Файл конфигурации содержит подробный комментарий к каждому параметру.

## Блоки

Изображение | Название | Описание |
---|---|---|

Корпус компьютера | Базовый блок компьютера. Содержит слоты для остальных деталей: процессора, видеокарт, сетевых плат, памяти и жёстких дисков.
Корпус уровнем выше содержит дополнительные слоты. | |

Серверная стойка | Серверная стойка вмещает четыре сервера. Сервер — это компьютер в виде предмета. Их основное преимущество — использование нескольких процессоров. Это позволяет контролировать больше компонентов, чем обычным компьютером (в виде блока).
Кроме того серверная стойка работает как коммутатор и распределитель в одном блоке. Каждый слот стойки может быть настроен на работу с одной стороной блока. Это позволяет работать с внешними блоками, например — сетью красного камня. Радиус, на котором сервера доступны через портативный терминал, настраивается в интерфейсе стойки и действует на все сервера в слотах. | |

Монитор | Отображает текст. Экран получает изображение с видеокарты в корпусе компьютера.
В зависимости от уровня имеет разное разрешение (50x16/80x25/160x50) и глубину цвета (1/4/8). Мониторы уровня 2 и 3 имеют возможность взаимодействовать непосредственно мышью (без клавиатуры). | |

Клавиатура | Присоединяется к монитору.
Монитор сам по себе не дает возможности набирать текст. Он только отображает информацию. | |

Голографический проектор | Создает над собой голограмму. Размер голограммы может изменяться от 1х1х1 до 9х9х9 блоков.
Голограмма содержит 48x32x48 монохромных (или 3-х цветных) «вокселей». | |

Аккумулятор | Хранит энергию. Может быть быстро заряжен и разряжен.
Их удобно использовать для накопления энергетических резервов или подзарядки роботов на месте. | |

Конвертер | В модификации OpenComputers отсутствует способ генерировать необходимую для работы энергию. Для этого модификация использует блок конвертера и источники энергии из других модификаций.
Конвертирует энергию других модификаций в соотношении:
С версии 1.2.1 компьютеры и серверные стойки могут использовать энергию без конвертера. | |

Распределитель | Распределяет энергию между разными сетями. Это может быть удобно для питания нескольких подсетей, которые не должны соединяться друг с другом, чтобы не возникло путаницы компонентов. | |

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

Точка доступа | Точка доступа — это продвинутая версия коммутатора. Она позволяет вести обмен беспроводными сетевыми сообщениями, соединяя беспроводные и обычные сети. | |

Кабель | Связывает вместе компоненты и блоки, а также проводит энергию. | |

Дисковод | Позволяет читать и записывать дискеты. Дискеты ComputerCraft также поддерживаются. | |

Красный контроллер | Позволяет получать и излучать сигналы красного камня вокруг блока. Может управляться с компьютера. Ту же функциональность имеет красная плата. | |

Адаптер | Используется для управления блоками, которые не являются компонентами OpenComputers. К примеру, блоками из оригинального Minecraft или других модификаций.
| |

Геоанализатор | Он позволяет узнать плотность блоков в определённом радиусе. Может быть использован для обнаружения скоплений руд (которые обычно плотнее окружающего камня) или визуализации карты местности голографическим проектором. | |

Датчик движения | Детектор движения живых существ в области прямой видимости. | |

RAID | Блок для хранения данных. Объединяет три жёстких диска в одну файловую систему. | |

3D-Принтер | Предназначен для создания декоративных блоков любой формы и цвета. Возможна печать статичных блоков, дверей, люков, а также рычагов и кнопок. | |

Путевая точка | Позволяет отметить определённое место на карте навигационного апгрейда. | |

Транспозер | Позволяет автоматизировать перемещение блоков и жидкостей между соседними инвентарями и хранилищами жидкостей. | |

Сетевой переключатель | Работает как переключатель. Соединение каждой стороны переключается ключом. При подаче сигнала красного камня все соединения инвертируются. | |

Зарядное устройство | Передает энергию из аккумуляторов роботу. Скорость передачи зависит от поступающего сигнала красного камня. Отсутствие сигнала означает, что робот не заряжается, максимальный — что передача энергии идет на полную скорость. | |

Разборщик | Позволяет разобрать другие устройства OpenComputers на их составляющие части. Каждая из составляющих частей имеет 5 % шанс сломаться в процессе разборки (настраивается в конфиге).
| |

Сборщик роботов | Позволяет собрать робота или планшет любой конфигурации. Начиная с версии OpenComputers 1.3, роботов возможно создавать только при помощи сборщика.
| |

Робот | Мобильный компьютер с широкой функциональностью. |


## Дрон

Изображение | Название | Описание |
---|---|---|

Дрон | Небольшой беспилотный аппарат, который программируется через EEPROM. Имеет более простое строение чем робот. | |

Корпус дрона | Основа дрона. Из него в сборщике создается дрон. |


## Микроконтроллер

Изображение | Название | Описание |
---|---|---|

Микроконтроллер | Экономичный одноблочный мини-компьютер. Предназначен для простых задач (контроль сигнала красного камня, например). Создается в сборщике из комплектующих деталей. | |

Корпус микроконтроллера | Основная деталь микроконтроллера. При сборке в него укладываются компоненты. Извлечь их из готового микроконтроллера можно только при помощи разборщика. |


## Планшетный компьютер

Изображение | Название | Описание |
---|---|---|

Планшет | Карманный компьютер. Питается от встроенной батареи. Создается в сборщике из комплектующих деталей. | |

Корпус планшета | Корпус для карманного компьютера. Основная деталь. |


## Сервер

Изображение | Название | Описание |
---|---|---|

Сервер | Сервер содержит те же комплектующие, что и обычный компьютер. Конфигурированный сервер устанавливается в серверную стойку. | |

Терминальный сервер | Терминальный сервер устанавливается в серверную стойку представляет собой виртуальный Монитор и клавиатуру. используется с портативным терминалом . |


## Комплектующие компьютера/сервера

Изображение | Название | Описание |
---|---|---|

ЦПУ | Центральный процессор — основная комплектующая компьютера. | |

Шина | Шина компонентов — устанавливается в сервер, расширяя количество доступных для оперирования компонентов, наподобие дополнительного процессора. | |

EEPROM | Содержит в себе код загрузки компьютера (BIOS). Стандартный Lua BIOS при старте компьютера ищет файл init.lua и запускает его. | |

Видеокарта | Через видеокарту компьютер выводит изображение на монитор. | |

APU | APU (гибридный процессор) совмещает в себе функции центрального процессора и видеокарты, что позволяет освободить один слот для плат. | |

Оперативная память | Планки оперативной памяти имеют шесть поколений. Устанавливается в компьютер, что позволяет запускать более сложные программы. | |

Красная плата | Позволяет принимать и излучать сигналы красного камня вокруг компьютера или робота. Ту же функциональность имеет красный контроллер. | |

Сетевая плата | Позволяет компьютерам, соединенным другими блоками (типа кабелей), обмениваться сообщениями друг с другом. | |

Беспроводная сетевая плата | Улучшенная версия сетевой платы. Позволяет обмениваться сообщениями, без использования проводов, на больших расстояниях. Имеет 2 уровня улучшений. | |

Связанная плата | Эти платы изготовляются только парами. Каждая плата связана со своей парой. Они работают наподобие сетевых плат, позволяя посылать сигналы между двумя парными платами даже в другие измерения. | |

Интернет плата | Эта карта дает доступ к «паутине». Она позволяет делать HTTP запросы и открывать TCP сокеты. См. Internet API. | |

Плата отладчик | Доступна только в режиме Creative. Позволяет при помощи компьютера изменять окружающий мир. |


## Носители информации

Изображение | Название | Описание |
---|---|---|

Дискета | Небольшое и дешёвое устройство хранения информации. С ним можно работать через дисковод, компьютер третьего поколения или робота. | |

Жёсткий диск | Жёсткие диски позволяют хранить больше информации, чем простые дискеты (и с каждым уровнем — больше). |


## Апгрейды робота

Изображение | Название | Описание |
---|---|---|

Апгрейд-инвентарь | Один апгрейд-инвентарь имеет объём в 16 ячеек (слотов). Робот может иметь больше одного апгрейда. | |

Апгрейд-контроллер инвентаря | Позволяет роботу точнее взаимодействовать с сундуками, а также заменять предметы в своих дополнительных слотах (менять инструмент, например). | |

Апгрейд-ангел | Позволяет роботу ставить блоки в воздухе, без опоры. (Наподобии того, как могут ставить блоки черепашки ComputerCraft.) | |

Апгрейд-крафт | Позволяет роботу использовать верхний левый угол своего инвентаря как верстак. | |

Апгрейд-генератор | Позволяет роботу накапливать энергию, сжигая топливо из своего инвентаря. Лишняя выработанная энергия запасается. | |

Апгрейд-солнечная панель | Робот накапливает энергию, если находится днем под открытым небом. | |

Апгрейд-табличка | Позволяет роботу читать и писать на табличках. | |

Апгрейд-навигация | Робот может сообщать свое положение и направление. Отсчет ведется от центра карты, которая использовалась при крафте апгрейда. | |

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

Апгрейд-батарея | Увеличивает емкость встроенного аккумулятора робота. | |

Апгрейд-луч захвата | Позволяет роботу собирать предметы в некотором радиусе вокруг себя. | |

Апгрейд-опыт | Робот с этим апгрейдом получает способность «самообучаться». При работе (добыче руды, убийстве мобов) он накапливает опыт. Чем больше уровень робота, тем быстрее он двигается и выполняет операции, и тем меньше изнашивает инструменты. | |

Апгрейд-цистерна | Добавляет роботу внутреннюю цистерну для жидкостей. | |

Апгрейд-контроллер цистерн | Осуществляет расширенное управление внутренними цистернами. | |

Апгрейд-поршень | Позволяет роботу толкать блоки. (За исключением механизмов и устройств, включая блоки OpenComputers.)
| |

Апгрейд-база данных | Хранит в себе информацию о стеках предметов. Используется в основном для взаимодействия с сетями Applied Energistics. | |

Апгрейд-лассо | Апгрейд может использоваться роботом или дроном для того, чтобы перемещать (вести за собой) животных. | |

Апгрейд-полет | Апгрейд позволяет роботу подниматься на большую высоту над землей. |


## Контейнеры робота

Изображение | Название | Описание |
---|---|---|

Контейнер для платы | Контейнер позволяет присоединить к готовому роботу плату соответствующего уровня. | |

Контейнер для апгрейда | Контейнер позволяет добавить готовому роботу апгрейд соответствующего уровня. |


## Инструменты

Изображение | Название | Описание |
---|---|---|

Ключ | Аналогично гаечному ключу, или отвертке из других модификаций (IndustrialCraft 2, BuildCraft) позволяет поворачивать механизмы, а также снимать их без повреждения. | |

Анализатор | Показывает информацию о блоках. Например — адрес, название компонента. Также показывает ошибку которая привела к выключению компьютера. | |

Анализатор сети | Доступен только в режиме Creative. Позволяет узнать дополнительную информацию о блоках и сети. | |

Определитель текстур | При использовании на любом блоке, показывает название его текстуры, которое может быть использовано для моделей принтера. | |

Портативный терминал | Портативный терминал — что-то вроде переносного комплекса «монитор+клавиатура», для удаленной работы с сервером. |


## Прочее

Изображение | Название | Описание |
---|---|---|

Парящие ботинки | Наденьте — и вы будете парить над землей. Ботинки позволяют высоко прыгать, а также заскакивать на препятствия высотой в один блок без прыжка. | |

Кислота | Высокотоксичная псевдожидкость выводящая нанороботов из организма игрока. | |

Нанороботы | Блок управления и кучка нанороботов для приема внутрь. После поедания наносят некоторый урон игроку и наделяют его случайными эффектами, которые можно включать и выключать при помощи команд подаваемых через беспроводной модем. Требуется энергия для работы. | |

Кусочек железа | Получается из железного слитка (как кусочек золота из золотого). Ингредиент различных рецептов. | |

Транзистор | Радиоэлектронный компонент более сложных устройств. | |

Микрочип | Радиоэлектронный компонент более сложных устройств. | |

АЛУ | Арифметико-логическое устройство — одна из деталей процессора. | |

Управляющий автомат | Управляющий автомат — одна из деталей процессора. | |

Печатная масса | Материал, из которого трехмерный принтер создает модели. | |

Блок печатной массы | Спрессованная, для удобства хранения, масса для принтера. | |

Картридж | Картридж хранит в себе краску для принтера. | |

Пластинка | Пластинка — основной элемент носителей информации. | |

Группы клавиш | Из групп клавиш собирается клавиатура. | |

Интерпаутина | Элемент интернет платы. | |

Базовая карта | Базовая карта — основа всех карт (сетевые платы, видеокарты и т. д.) | |

Печатная плата | Печатная плата — основной элемент различных карт и плат. | |

Подарок | При крафте предметов и блоков из модификации OpenComputers в праздники, есть некоторый шанс получить подарок из которого выпадают случайные компоненты компьютера.
| |

Руководство | Карманный справочник по модификации Opencomputers.
|


## Уроки

### Lua

- Lua за 60 минут
- Справочное руководство по языку Lua 5.1
- Learn Lua in 15 Minutes
*(англ.)* - Lua 5.2 Reference Manual
*(англ.)* - Документация по модификации (
*англ.*)

### OpenComputers

- Конфигурация мода
- Туториал: Собираем компьютер
- Туториал: Пишем программу
- Туториал: Работаем с дисками
- Туториал: Работаем с Pastebin и GitHub
- Туториал: Автоматическая ферма
- Туториал: Сенсорный танцпол

## Программные интерфейсы OpenOS(API)

- Стандартные библиотеки Lua в OpenComputers
- Colors API — Управление цветами
- Component API — Взаимодействие с компонентами (см. также Сигналы)
- Computer API — Информация о компьютере
- Event API — Система событий (таймеры, обработка ошибок и т. д.)
- Filesystem API — Работа с файловой системой
- GPU API — Продвинутый функционал видеокарты
- Internet API — Сетевые карты
- Keyboard API — События клавиатуры и коды клавиш
- Note API — Музыкальные ноты (MIDI-код, частота)
- Process API — Менеджер процессов
- Robot API — Роботы
- Serialization API — Простая сериализация
- Shell API — Функциональность шелла
- Sides API — Обозначения различных сторон блока
- Term API — Работа с терминалом (ввод/вывод, форматирование)
- Text API — Операции над строками
- Unicode API — Поддержка Юникода

## Программы

- Шахтер: Бесконечная комната
- Шахтер: тоннель с колоннами
- Дровосек: одно дерево
- Программа: кодовый замок

## Дополнения

- OpenComponents — дополнение, раскрывающее возможности адаптера