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

Get Block

У клетки не одно содержимое, а четыре слоя. getblock спрашивает про любой из них

тик 0
Получить блок0
слойрезультатxy
Получить блок1
слойрезультатxy
Получить блок2
слойрезультатxy
Получить блок3
слойрезультатxy
Получить блок4
слойрезультатxy
Получить блок5
слойрезультатxy
Получить блок6
слойрезультатxy
Стоп7
@counter0number
полnullnull
рудаnullnull
стенаnullnull
блокnullnull
зданиеnullnull
пустоnullnull
безРудыnullnull
getblock floor пол 6 4
getblock ore руда 9 4
getblock block стена 12 4
getblock building здание 6 7

Одна инструкция и четыре разных вопроса к карте. На этой карте она отвечает: металлический пол, медная руда, каменная стена и маршрутизатор.

Слой Что отдаёт Что там бывает
floor пол песок, камень, металлический пол, вода
ore наложение руда поверх пола, или @air, если её нет
block что стоит здание, статичная стена или @air
building здание объектом сам блок, с которым работает sensor

Разница между block и building тонкая, но важная:

  • block отдаёт тип: @router, @copper-wall, @stone-wall. Это контент, а не постройка на карте — сравнивать его надо с константами блоков;
  • building отдаёт саму постройку: то же самое, что даёт getlink. У неё можно спросить здоровье, запасы и команду.
getblock building склад 6 7
sensor меди склад @copper

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

Мировой процессор читает клетки ради сценария:

  • проверить, построил ли игрок то, что просили: getblock building в заданной клетке и сравнение типа;
  • следить за территорией: стоит ли ещё вражеская стена, не снесли ли ядро;
  • найти место под постройку: пусто ли, и годится ли пол;
  • дать задание «постройте здесь»: метка на карте плюс проверка клетки.

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