Переменные другого процессора
Ячейка для обмена нужна не всегда: переменную соседа можно взять прямо у него, назвав её по имени
Процессор — такой же блок, как ячейка, и читается он так же. Только адресом служит не номер места, а имя переменной в кавычках:
read чужиеИтерации processor1 "итераций"На карте два процессора. Верхний просто считает итерации; нижний — тот, чья программа показана — достаёт его счётчик по имени и печатает. Ячейки между ними нет вовсе.
Что может стоять адресом
Заголовок раздела «Что может стоять адресом»| Адрес | Что получаем |
|---|---|
"итераций" — у соседа есть такая переменная |
её значение, число или объект |
"container1" — переменной нет, но есть связь с этим именем |
подключённое к соседу здание |
"чушь" — нет ни того, ни другого |
пустоту |
0, 1, … числом |
связь соседа по номеру — то же, что его getlink |
Вторая строка примера как раз такая: read чужойСклад processor1 "container1". Своей связи
со складом у нижнего процессора нет, а спросить у него запас меди он всё равно может —
здание берётся у соседа.
И на себе тоже
Заголовок раздела «И на себе тоже»@this — это сам процессор, и читать его можно тем же способом:
read копия @this "счёт"read блок @this 0Первое — копия собственной переменной, второе — собственная связь по номеру, то есть
getlink другими словами. Особой пользы в первом нет, а второе иногда удобнее.
Кому процессор отвечает
Заголовок раздела «Кому процессор отвечает»Проверка стоит в самом блоке, и она короткая: отвечают своим и не мировым.
- чужой процессор — пустота, даже если он рядом и связь есть;
- мировой процессор обычному — пустота: привилегированный блок отвечает только привилегированному;
- мировому — отвечают все, включая чужих.
Запись подчиняется тем же правилам: что нельзя прочитать, того нельзя и переписать.
Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.