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

Set Block

Правка карты на ходу: блок появляется мгновенно, без стройки, ресурсов и очереди

тик 0
Установить блок0
слойблокиxyкомандавращение
Установить блок1
слойблокиxyкомандавращение
Установить блок2
слойблокиxyкомандавращение
Установить блок3
слойблокиxyкомандавращение
Получить блок4
слойрезультатxy
Получить блок5
слойрезультатxy
Получить блок6
слойрезультатxy
Получить блок7
слойрезультатxy
Стоп8
@counter0number
полnullnull
рудаnullnull
стенаnullnull
снеслиnullnull
setblock floor @metal-floor 6 4 @sharded 0
setblock ore @ore-titanium 6 4 @sharded 0
setblock block @copper-wall 8 4 @sharded 0
setblock block @air 12 4 @sharded 0

Четыре строки меняют карту: пол становится металлическим, поверх него появляется титановая руда, рядом вырастает медная стена — а маршрутизатор на клетке 12 4 исчезает.

Поле Что в нём
первое слой: floor, ore или block
второе что ставим: константа блока или @air
третье и четвёртое координаты клетки
пятое команда — только для слоя block
шестое поворот, от 0 до 3 — для конвейеров и буров

Отдельной инструкции «снести» нет: в слой кладут воздух, и то, что там стояло, пропадает. Без обломков, без возврата ресурсов, без анимации.

Так же убирается и руда: setblock ore @air 6 4 очищает наложение, оставляя пол.

setblock floor @router не поставит маршрутизатор на пол и не положит пол-маршрутизатор. Он просто ничего не сделает — молча, как почти всё в mlog.

Слой Что примет
floor только полы: @sand-floor, @metal-floor, @water
ore только руды и наложения: @ore-copper, @air
block всё, что строится, плюс природные стены и @air

Слоя building у setblock нет вовсе: здание так не поставить, можно только поставить блок — а здание у него появится само.

Координаты усекаются, а у соседа — округляются

Заголовок раздела «Координаты усекаются, а у соседа — округляются»
тик 0
Установить блок0
слойблокиxyкомандавращение
Получить блок1
слойрезультатxy
Получить блок2
слойрезультатxy
Стоп3
@counter0number
гдеПоставилиnullnull
поТемЖеЧисламnullnull

Вот неочевидное, и это не наша вольность, а поведение игры:

setblock block @copper-wall 7.9 4.9 @sharded 0
getblock block поТемЖеЧислам 7.9 4.9

Стена встанет на клетку 7 4 — дробная часть отброшена. А getblock по тем же самым числам посмотрит на клетку 8 5, потому что округляет. Результат: только что поставленную стену программа не находит.

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