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

Текстовый буфер

Строка собирается по кусочкам и лежит внутри процессора, пока её не отдадут наружу

У каждого процессора есть текстовый буфер — строка, в которую print дописывает значения одно за другим. Пока она внутри, её никто не видит: ни игрок, ни соседние блоки.

тик 0
Информация0
=
у
Печать1
Печать2
Печать3
Печать4
@counter0number
медьnullnull
textBufferstring

Нажмите «шаг» пять раз и смотрите на нижнюю строку таблицы: в буфере соберётся меди: 120 из 300. Четыре print — четыре куска, склеенных в том порядке, в каком выполнялись строки.

Привычного "меди: " + медь в mlog не бывает: op add со строкой даёт не строку, а число. Соединять текст умеет только буфер, и делает он это единственным способом — по кусочку за инструкцию.

Отсюда обычный вид такой программы:

print "меди: "
print медь
print " из "
print 300

Четыре строки ради одной надписи — это нормально. Если кусков становится много, на помощь приходит format: он подставляет значения в готовый шаблон.

В нём помещается 400 символов. Всё, что не влезло, просто не дописывается: ошибки не будет, предупреждения тоже — в конце строки окажется обрезанный кусок.

Четыреста символов — это много для надписи и мало для отчёта. Если печатать в цикле, буфер переполнится незаметно, и на дисплее или в блоке появится ровно первая часть.

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