OpenComputers/3D-Принтер
Тип |
Твёрдый блок |
---|---|

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

Действует ли гравитация |
Нет |

Прозрачность |
Нет |

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

Взрывоустойчивость | |

Прочность | |

Инструмент | |

Возобновляемый |
Нет |

Складываемый |
Да (64) |

Воспламеняемый |
? |

Первое появление |
1.5.4 |


**3D-Принтер** — это специальное устройство, которое позволяет создавать декоративные блоки любой формы и цвета. Блоки могут быть декоративными, реагирующими на сигнал красного камня (двери, люки), или излучающими сигнал (кнопки, рычаги).

Форма блока задается программно, и состоит из нескольких параллелепипедов (максимальное количество по умолчанию — 24 штуки). Каждый параллелепипед определяется координатами своих углов и текстурой. Кроме того он может быть окрашен в какой-либо оттенок и принадлежать одному из двух состояний блока. Координаты лежат в пределах от (0,0,0) — левый передний нижний угол, до (16,16,16) — правый верхний дальний угол.

Будущий блок может иметь два состояния — неактивное (состояние по умолчанию) и активное (после активации блока игроком или сигналом красного камня). Блок должен иметь как минимум одну фигуру для неактивного состояния.

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

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

## Интерфейс блока

Верхний слот предназначен для специальной печатной массы. Принтер вмещает два стека (256 000 ед). Нижний слот занимает картридж с красителями. Объём внутреннего хранилища — два картриджа краски (100 000 ед).

По команде от компьютера, принтер берет немного печатной массы и краски и «распечатывает» в крайний правый слот запрограммированную модель.

Если модель получилась не совсем удачной, или распечатали не то, что надо, её можно повторно переработать в печатную массу, просто переместив неудачную модель в верхний слот принтера. Краску таким образом не вернуть.

## Крафт

Ингредиенты | Процесс |
---|---|

Поршень + Микрочип (Уровень 3) + Загрузочная воронка + Железный слиток + Печатная плата |


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

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


`reset()`


Cброс настроек модели и остановка печати

`setLabel(value:string)`


Задает название будущего блока

`getLabel():string`


Получает текущее название блока

`setTooltip(value:string)`


Задает описание блока

`getTooltip():string`


Получает текущее описание блока

`setRedstoneEmitter(value:boolean)`


Определяет, излучает ли блок сигнал красного камня в активированном состоянии

`isRedstoneEmitter():boolean`


Возвращает `true`

, если блок излучает сигнал в активном состоянии

`setButtonMode(value:boolean)`


Определяет поведение блока при активации. Если параметр равен `true`

, то блок автоматически возвращается в неактивное состояние через несколько секунд после активации (как кнопка)

`isButtonMode():boolean`


Возвращает `true`

, если блок находится в режиме «кнопки»

`addShape(minX:number, minY:number, minZ:number, maxX:number, maxY:number, maxZ:number, texture:string[, state:boolean=false][,tint:number])`


Добавляет новую «фигуру» к форме блока. Фигура представляет собой параллелепипед, и задана координатами двух противоположных углов. Параметр `texture`

— название текстуры, `state`

— для какого состояния фигура предназначена, `tint`

— цвет оттенка фигуры

`getShapeCount():number`


Возвращает количество фигур в модели

`getMaxShapeCount():number`


Возвращает максимально возможное количество фигур (по умолчанию — 24)

`commit([count:number])`


Посылает принтеру текущую конфигурацию модели и начинает печать (параметр `count`

— количество копий, если не задан — равен 1)

`status(): string, number or boolean`


Возвращает состояние принтера — `"buzy"`

(«занят») и процент готовности модели, или `"idle"`

(«простой») и готовность предмета (`true/false`

).

`setLightLevel(value:number)`


Устанавливает уровень свечения для 3D модели. Максимальный уровень 16, столько же дает свечение факела.

`getLightLevel():number`


Возвращает уровень свечения 3D модели.

`setCollidable(collideOff:boolean, collideOn:boolean)`


Устанавливает иллюзорный блок, который внешне никак не отличается от нормальной модели, но сквозь него можно пройти. Как работают параметры неясно, срабатывает иллюзия при передачи команд `"setCollidable(false, true)"`

и `"setCollidable(false, false)"`

.

`isCollidable():boolean, boolean`


Возвращает установленные параметры для печати иллюзорного блока.