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

Переменные другого процессора

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

среднийНужно знать: Ячейка памяти, Связи и getlink

Процессор — такой же блок, как ячейка, и читается он так же. Только адресом служит не номер места, а имя переменной в кавычках:

read чужиеИтерации processor1 "итераций"
тик 0
Чтение0
=
Чтение1
=
Информация2
=
у
Печать3
Печать4
Печать5
Печать6
Вывод печати7
@counter0number
итерацийnullnull
чужойСкладnullnull
медьnullnull

На карте два процессора. Верхний просто считает итерации; нижний — тот, чья программа показана — достаёт его счётчик по имени и печатает. Ячейки между ними нет вовсе.

Адрес Что получаем
"итераций" — у соседа есть такая переменная её значение, число или объект
"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.