Локализация
При использовании атрибутов обязательно указываются локализованные имена блоков в следующем виде:
[AttributeName(English: "text", Russian: "текст")]
При этом должна присутствовать как минимум, одна локаль
Модификаторы доступа
Блоки генерируется только для сущностей с модификаторами доступа public и internal
Пример
Например, для атрибута свойств [Variable] код выглядит следующим образом:
public class Cube : VarwinObject
{
private string _text;
[Variable(English: "text", Russian: "текст")]
public string TextPanel
{
get => _text;
internal set => _text = value;
}
}
Данный код сгенерирует следующие блоки для блокли

где 21 - имя конкретного экземпляра объекта Cube, созданного в Varwin XRMS
При переключении языка Varwin XRMS вид блоков изменится в соответствии с выбранным языком

Group Attributes
Для некоторых атрибутов существуют дополнительные атрибуты, так называемые атрибуты групп, позволяющие создавать группы блоков. Блоки с одинаковыми именами группы будут группироваться в один блок с выпадающим списком

Такие атрибуты можно использовать только в связке с основным атрибутом
Важно помнить, что можно группировать только блоки с одинаковыми сигнатурами (количество и типы входных параметров должны совпадать)
Например, для атрибута [Variable] атрибут групп [VariableGroup("group name")]
Пример
public class Cube : VarwinObject
{
private string _text;
private string _anotherText;
[VariableGroup("panel texts")]
[Variable(English: "text", Russian: "текст")]
public string TextPanel
{
get => _text;
set => _text = value;
}
[VariableGroup("panel texts")]
[Variable(English: "another text", Russian: "другой текст")]
internal string AnotherText
{
get => _anotherText;
set => _anotherText = value;
}
}
Для этого кода будут сгенерированы по одному геттеры и сеттеру с возможностью выбрать интересующее свойство в выпадающем списке


Список атрибутов
В Varwin определены следующие атрибуты групп:
- ActionGroup
- CheckerGroup
- EventGroup
- FunctionGroup
- VariableGroup