Свойства зданий
Запросить у связанного блока число — сколько внутри, сколько влезет, цел ли он
Рядом с процессором стоит контейнер, в нём 120 меди и 40 свинца. Процессор об этом не знает — пока не запросит.
В блоке sensor три поля: слева то, куда положить ответ, дальше — что запросить,
и после подписи «у» — у кого.
Подписи в блоках игра переводит с версии 160. Кнопкой с книгой над примером их можно
вернуть к английским — тогда та же подпись будет читаться in, как в чужих руководствах
и старых видео.
Нажмите «шаг» четыре раза: значения появятся по одному, по строке за нажатие.
Что здесь на что
@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.