Константы контента
Предмет, жидкость, блок и юнит — такие же значения, как число: их кладут в переменные и передают инструкциям
@copper — это не число и не текст. Это сама медь: тот же предмет, что лежит в контейнере
и едет по ленте. Игра заводит такую константу на каждую вещь, которая у неё есть.
| Что | Сколько | Примеры |
|---|---|---|
| предметы | 20 | @copper, @silicon, @thorium |
| жидкости | 11 | @water, @slag, @cryofluid |
| блоки | 262 | @router, @vault, @duo, @air |
| типы юнитов | 56 | @poly, @mono, @flare |
Имена пишутся так же, как называется вещь в игре, только по-английски и через дефис:
@surge-alloy, @phase-fabric, @titanium-conveyor.
Их кладут в переменные
Заголовок раздела «Их кладут в переменные»Нажмите «шаг» пять раз.
В таблице у предмет, блок и юнит тип content — не число, не текст, а вещь. Никакой
арифметики с ними не выходит: сложить медь с роутером нельзя, зато можно передать их туда,
где ждут вещь.
Где это пригодится:
sensor— спросить у контейнера, сколько в нём меди;control config— настроить сортировщик на нужный предмет;ubind— взять под управление юнита нужного типа;draw image— нарисовать иконку вещи на дисплее.
Одно имя, две роли
Заголовок раздела «Одно имя, две роли»Последняя строка примера — sensor сколько container1 предмет, и в предмет лежит @copper.
Ответ: 120, столько меди в контейнере.
Тут стоит остановиться. @copper в поле свойства значит «сколько меди», а @copper в поле
значения значит «сама медь». Имя одно, а роль зависит от того, куда его положили, — и это
не путаница, а устройство языка: sensor смотрит, что ему передали, и отвечает по-разному
на вещь и на свойство вроде @health.
Для sensor нет разницы, вписано ли @copper прямо в поле или пришло из переменной.
Поэтому таким же образом можно перебирать предметы: сложить их в ячейку памяти
и спрашивать по очереди.
@this и соседи
Заголовок раздела «@this и соседи»Отдельная кучка констант — про сам процессор:
| Имя | Что это |
|---|---|
@this |
само здание процессора, тип building |
@thisx, @thisy |
его координаты в тайлах, числа |
@links |
сколько у него связей |
@ipt |
сколько инструкций он делает за тик |
@this — это здание, как container1: у него можно спросить свойства и передать его туда,
где ждут блок. В примере оно лежит в переменной сам, и в таблице видно имя процессора.
Когда имени недостаточно
Заголовок раздела «Когда имени недостаточно»Иногда предмет нужен не по имени, а по номеру: перебрать все двадцать, не выписывая каждый.
Для этого есть отдельная инструкция — lookup, она достаёт
вещь по её номеру в игре.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.