[PMMP4] [Свои интерфейсы] VPacks - генерация ресурс-паков!

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

12 лайков

Похвастался формами и доволен :woozy_face: :-1:

Даже для начала это годно :grinning: молодец

а что такое, этот ваш json-ui? и с чем его едят?

надо поэкспериментировать с ним

Костыль майнкрафта, на котором написаны 90% его интерфейсов.
формы, сундуки, худ, меню паузы и куча другого. Соответственно каждый из этих интерфейсов можно заменить

1 лайк

Со временем майнкрафт будет переходить на ore-ui, но я думаю json-ui ещё года два точно будет актуальным способом изменения UI’ев

1 лайк

лайк

Офигенный плагин

Где Обнова

Не обязан :sob:

Обязан

обнова