Общие свойства атрибутов
Локализация
При использовании атрибутов обязательно указываются локализованные имена блоков в следующем виде:
[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