P.S.: Планируется полная генерация ресурс-паков. Как будет время, так запилю предметы, блоки и сущности.
VPacks json-ui
Для тех кто уже хочет сделать каждой своей форме другой внешний вид
К сожалению, на очень слабых устройствах цикл рендеринга будет занимать ощутимое время, так-что стоит ограничиться в количестве и сложности форм. Да и общий внешний вид, на мой взгляд, всегда лучше, чем городить на разные системки разный UI.
Кто работал с JSON-ui знает, что удобства в нём мало. VPacks хоть и предоставляет низкоуровневый, близкий к чистому json-ui, API, но имеет пару мощных моментов.
1) Типизация
Большая часть кода сгенерированная на основе документации от комьюнити
Спойлер
Что оказалось немного плохой идеей из-за кучи ошибок, повторений и отсутствии документации ко многим свойствам
2) Фабрики бойлер-плейт объектов
Работая с json-ui приходится явно прописывать жсон-объекты, например, visible биндинги по условию. Плагин добавляет немного (пока) упрощающих методов для создания таких сложных объектов.
3) Свитчеры
В сыром жсоне приходилось буквально прописывать, что этот контрол рендерится, когда в заголовке есть “меню”, этот когда есть “магазин”, этот когда есть “персонаж”, а этот, если ничего из этого нет
Слабонервным под спойлер не заглядывать
{
"long_form@server_form.long_form": {
"bindings": [
{
"binding_type": "view",
"source_property_name": "(((#title_text - '§v§p§a§c§k§s§0§0§0') = #title_text) and ((#title_text - '§v§p§a§c§k§s§0§0§1') = #title_text) and ((#title_text - '§v§p§a§c§k§s§0§0§2') = #title_text) and ((#title_text - '§v§p§a§c§k§s§0§0§3') = #title_text))",
"target_property_name": "#visible"
}
]
}
},
{
"vpacks000@vpacks_000_form.vpacks_smpl_000_index": {
"bindings": [
{
"binding_type": "view",
"source_property_name": "(not ((#title_text - '§v§p§a§c§k§s§0§0§0') = #title_text))",
"target_property_name": "#visible"
}
]
}
},
{
"vpacks001@vpacks_001_form.vpacks_smpl_001_index": {
"bindings": [
{
"binding_type": "view",
"source_property_name": "(not ((#title_text - '§v§p§a§c§k§s§0§0§1') = #title_text))",
"target_property_name": "#visible"
}
]
}
},
{
"vpacks002@vpacks_002_form.vpacks_smpl_002_index": {
"bindings": [
{
"binding_type": "view",
"source_property_name": "(not ((#title_text - '§v§p§a§c§k§s§0§0§2') = #title_text))",
"target_property_name": "#visible"
}
]
}
},
{
"vpacks003@vpacks_003_form.vpacks_smpl_003_index": {
"bindings": [
{
"binding_type": "view",
"source_property_name": "(not ((#title_text - '§v§p§a§c§k§s§0§0§3') = #title_text))",
"target_property_name": "#visible"
}
]
}
}
Внимание!
Плагин сейчас даже не в альфа версии, API будет меняться. Пока сделана перезапись SimpleForm и CustomForm, в будущем будет поддержка сундуков, наковален и прочего.
И куда же ставить звездочки?
А вот сюда: its-vezdehod/VPacks
Код со всеми формами, показанными в теме: SIMPLE_FORM.md


