IMPORTANT
Статус: Поддерживается
Минимальная версия: 1.4
Прогресс бар веса
Обзор
В actor_menu.xml можно включить строку веса через контейнер actor_weight_row. Внутри строки поддерживаются два варианта: прогресс бар веса или текстовое значение веса.
Полная логика actor_weight_row
- Движок сначала ищет узел
actor_weight_row. - Если узел найден:
- создается контейнер строки веса
- обязательно создается
actor_weight_row:actor_weight_caption - затем проверяется
actor_weight_row:weight_status_bar
- Если
weight_status_barнайден:- создается
CUIProgressBar - прогресс бар включается и показывается
- текстовый
actor_weight_row:actor_weightне создается
- создается
- Если
weight_status_barне найден:- создается
actor_weight_row:actor_weightкак fallback
- создается
- В обоих случаях обязательно создается
actor_weight_row:actor_weight_max. - Если
actor_weight_rowотсутствует полностью, движок переходит в старый layout и ищет корневые узлыactor_weight_caption,actor_weight,actor_weight_max.
Логика тултипа для weight_status_bar
- Тултип работает только если есть
weight_status_bar. - Тултип показывается при наведении курсора на бар.
- Есть задержка перед показом 700 мс после получения фокуса.
- Если в данный момент открыт другой hint, новый не показывается.
- Текст тултипа содержит:
- текущий суммарный вес инвентаря
- максимальный переносимый вес
- Позиция тултипа подбирается рядом с курсором в пределах экрана.
Готовый XML
xml
<actor_weight_row x="810" y="736" width="210" height="16">
<actor_weight_caption x="0" y="0" width="71" height="16">
<text font="ui_font_arial_14" align="l" color="ui_1">ui_inv_weight</text>
</actor_weight_caption>
<weight_status_bar x="73" y="4" width="90" height="8" horz="1" min="0" max="100" pos="0">
<background><texture>ui_inGame2_hint_wnd_bar_16</texture></background>
<progress><texture a="180">ui_inGame2_hint_wnd_bar_alfa_line_16</texture></progress>
<color_less color="pda_green"/>
<color_more color="pda_red"/>
</weight_status_bar>
<actor_weight_max x="166" y="0" width="44" height="16">
<text font="ui_font_arial_14" align="r" color="ui_1"/>
</actor_weight_max>
</actor_weight_row>XML fallback без progress bar
xml
<actor_weight_row x="810" y="736" width="210" height="16">
<actor_weight_caption x="0" y="0" width="71" height="16">
<text font="ui_font_arial_14" align="l" color="ui_1">ui_inv_weight</text>
</actor_weight_caption>
<actor_weight x="73" y="0" width="44" height="16">
<text font="ui_font_arial_14" align="r" color="ui_1"/>
</actor_weight>
<actor_weight_max x="121" y="0" width="44" height="16">
<text font="ui_font_arial_14" align="r" color="ui_1"/>
</actor_weight_max>
</actor_weight_row>Применение
- Добавьте блок в
configs/ui/actor_menu.xml. - Для режима прогресс бара добавьте
weight_status_barи проверьте диапазонminиmax. - Для режима текста не добавляйте
weight_status_bar, оставьтеactor_weight. - Проверьте:
- отображение в норме
- отображение при перегрузе
- тултип при наведении на progress bar
Смежный материал: обзор UI.