Перейти к содержимому

Свойства зданий

Запросить у связанного блока число — сколько внутри, сколько влезет, цел ли он

простоНужно знать: Как работает процессор

Рядом с процессором стоит контейнер, в нём 120 меди и 40 свинца. Процессор об этом не знает — пока не запросит.

В блоке sensor три поля: слева то, куда положить ответ, дальше — что запросить, и после подписи «у» — у кого.

Подписи в блоках игра переводит с версии 160. Кнопкой с книгой над примером их можно вернуть к английским — тогда та же подпись будет читаться in, как в чужих руководствах и старых видео.

тик 0
Информация0
=
у
Информация1
=
у
Информация2
=
у
Информация3
=
у
@counter0number
всегоnullnull
пределnullnull
здоровьеnullnull
типnullnull

Нажмите «шаг» четыре раза: значения появятся по одному, по строке за нажатие.

Что здесь на что

@totalItemsсвойство

Список закрыт: их 77, придумать новое нельзя — можно только выбрать из готовых, для того у поля и стоит карандаш.

container1у кого запрашиваем

Так называется связь: первый связанный контейнер. Имя даёт игра, менять его нельзя, зато можно положить в переменную и передавать дальше.

всегокуда кладём

Вот это уже ваше имя, и оно может быть каким угодно, хоть по-русски. В чужих программах чаще пишут латиницей, но язык от этого не меняется.

Имя переменной — ваше, а имена, которые игра уже заняла, только для чтения: про это разговор в группе set.

container1здание: вот этот контейнер, вот здесь, с этой медью внутри. Их на карте может стоять двадцать, и у каждого своё содержимое и своё здоровье.

@containerтип: одна на всю игру запись о том, каким контейнер бывает вообще. Сколько в него влезает, сколько он стоит, какого он размера.

Последняя строка примера запрашивает у здания, какого оно типа, и кладёт в тип не слово «container», а сам тип — тот же объект, что и константа @container. Поэтому сравнивают результат @type именно с константой: в блоке jump слева ставят переменную, справа выбирают @container тем же карандашом, что и свойство.

Так проверяют, что за блок попался: getlink перебирает связи, sensor @type запрашивает, что это, и программа решает, что с ним делать.

У самого типа тоже можно что-нибудь запросить: sensor @container @itemCapacity скажет, сколько влезает в любой контейнер.

Контейнер занимает две клетки на две, и sensor container1 @x отдаёт 6.5, а не 6: координата — это центр здания, а центр блока чётного размера приходится на стык клеток. У маршрутизатора размером 1 такого не бывает.

Это не мелочь: половину нельзя округлять «для красоты» — по этой координате потом ведут юнита или ставят блок, и центр здания там, где он есть.

Запросить можно что угодно, но ответит блок не на всё: у контейнера нет патронов, и sensor container1 @ammo отдаст null — не ноль, и это разные вещи. У кого какие свойства бывают вообще — последний урок группы.

Полный список того, что можно запросить, — в таблице свойств.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.