- Можно изменить поле, используемое для хранения тегов категорий, для этого необходимо внести изменения в файл alias.txt, указав для синонима info новое значение. При этом важно помнить что один синоним не должен перекрывать несколько полей одного объекта.
- К тегам категорий можно добавить только один параметр для хранения метаданных, но с введением парсинга строк, содержащих запятые, можно перечислить в качестве параметра несколько значений через запятую(без пробелов), тогда можно будет получить отдельные значения с помощью конструкции объект.поле[номер], где номер это порядковый номер, начинающийся с 0.
- К строковым полям объектов можно применять директиву <list>, что позволяет перечислить все элементы строки, разделенные запятыми.
- Можно задавать собственные шаблонные переменные и изменять их значения с помощью директивы <assign>.
подробнее
<assign x = 0>
<assign x = x+1>
Это может быть полезно, например, в конструкции вида:
<assign i = 0>
<list units as u>
myArray[${i}] = u
<assign i = i+1>
</list>
В результате компиляции шаблона получим код, заполняющий массив типами юнитов.
пример для большого количества типов юнитов (< 8192)
<assign max = 100>
<assign i = 0>
<assign j = 0>
function init_units_${j} takes nothing returns nothing
<list units as u>
<if (i > 0) && (i %% max = 0)>
<assign j = j+1>
endfunction
function init_units_${j} takes nothing returns nothing
</if>
myArray[${i}] = u
<assign i = i+1>
</list>
endfunction
function init_units takes nothing returns nothing
<list 0..j as k>
ExecuteFunc("init_units_${j}")
</list>
endfunction
Этот код сгенерирует столько функций вида init_units_x чтобы в каждой из них было не больше чем 100 присвоений, также будет сгенерирована функция init_units, содержащая вызовы всех этих функций через ExecuteFunc.
- шаблонные переменные могут быть не только скалярными величинами и объектами, но и массивами. Для работы с массивами, как и со скалярными величинами используется директива <assign>, а с помощью директивы <list> можно перебрать все элементы такого массива.
подробнее
<assign x = ["1","2","3","4",]>
<assign x = x + ["4","5","6"]>
<list x as i>
${i}
</list>- для всех шаблонных переменных, включая те что содержат данные по объектам, доступны специальные встроенные функции.
подробнее
Обращение к таким функциям выполняется через добавление ? и имени функции после имени переменной.
Например так:
<assign x = ["1","2","3","b"]>
${x?size}
Получим количество элементов в массиве, а именно число 4
<assign x = ["1","2","3","b"]>
${x?size}
Получим количество элементов в массиве, а именно число 4
Для строк
| Функция | описание |
|---|---|
| length | возвращает длину строки |
| lower_case | возвращает строку в нижнем регистре |
| upper_case | возвращает строку в верхнем регистре |
| capitalize | возвращает строку, в которой все слова написаны с заглавной буквы |
| trim | возвращает строку без пробелов в начале и конце |
| number | возвращает числовое значение строки |
| word_list | возвращает массив строк, состоящий из разделенных пробелами слов в исходной строке |
Для чисел
| Функция | описание |
|---|---|
| byte | преобразование к byte (Java) |
| short | преобразование к short (Java) |
| int | преобразование к int (Java) |
| long | преобразование к long (Java) |
| float | преобразование к float (Java) |
| double | преобразование к double (Java) |
| string | преобразование числа к строке |
Для массивов
| Функция | описание |
|---|---|
| size | возвращает количество элементов в массиве |
| first | возвращает нулевой элемент массива |
| last | возвращает последний элемент массива |
| reverse | возвращает массив с элементами расположенными в обратном порядке |

FLY-DATA
