OpenComputers/Дрон
**Дрон** — беспилотный летающий аппарат. Он проще, чем робот, и более ограничен в функционале. Но при этом он основан на другом принципе передвижения, так как является сущностью. В отличие от робота, который передвигается последовательно переходя из куба в куб, дрон двигается от точки к точке в любом направлении. Кроме того, дрон способен преодолевать открытые дверные проемы, ворота и т. д. Робот не может находиться в блоке, где уже находится какой-либо объект. Даже если это — открытая дверь.

Дрон не имеет своей видеокарты (и монитора). Вместо неё он использует небольшой (на две строки) экранчик в своём интерфейсе.

У дрона отсутствует файловая система. Программа дрона записывается на чип EEPROM (наподобие микроконтроллера). Для этого вы можете воспользоваться командами компонента `eeprom`

или программой `flash`

, которая входит в состав OpenOS.

Для того чтобы заменить старый чип, положите дрон и новый чип в верстак. Чипы поменяются местами.

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

Дрон имеет небольшой внутренний инвентарь, и способен управлять апгрейдами - контроллерами инвентаря и внутренних цистерн.

## Создание дрона

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

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

Вы можете установить на дрона уже записанный чип EEPROM. Или заменить его потом, использовав в процессе сборки пустой чип.

## API

Название компонента: `drone`


`getStatusText():string`


Возвращает текст, отображаемый в дисплее дрона.

`setStatusText(value:string):string`


Изменяет текст в дисплее дрона.

Для того чтобы отобразить текст в две строчки, используйте в тексте управляющий символ переноса строки: `\n`

.

`drone.setLightColor(value:hexademical)`


Изменяет цвет дрона на заданный.

`move(dx:number, dy:number, dz:number)`


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

`getOffset():number`


Возвращает текущее расстояние до конечной точки.

`getVelocity():number`


Возвращает текущую скорость, в м/с.

`getMaxVelocity():number`


Возвращает максимальную скорость, в м/с.

`getAcceleration():number`


Возвращает ускорение дрона.

`setAcceleration(value:number):number`


Изменяет ускорение на заданное, и возвращает результат.

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

, `suck`

, `drop`

, `drain`

, `fill`

.

## Смотрите также

## История версий

- OpenComputers
**1.4.3 Beta 1**: добавлены дроны.