EN
Hollow Horizon
Hollow Horizon
60 subscribers
goals
21 of 25 paid subscribers
Такое количество подписчиков позволяет мне регулярно работать и обновлять движок. А также иногда вкладываться в дизайн и удобство движка.
1 of 2

HollowCore: Сериализация

С самого моего знакомства с моддингом меня всегда раздражало писать энкодеры и декодеры для разных объектов, это очень быстро гасило всю мою мотивацию что-то кодить :D
Так что теперь я создал систему, позволяющую всего одной строкой превратить объект в nbt!
Для начала создадим новый класс и добавим ему аннотацию `@Serializable`.
И теперь стандартный сериализатор из ванилы будет выглядеть примерно так:
Довольно много кода, который, на первый взгляд, особо никак не автоматизировать... Но благодаря библиотеки kotlinx.serialization можно в разы упростить этот процесс, ведь эта библиотека поддерживает создание своих собственных форматов, что и было добавлено в HollowCore!
Теперь создадим новый объект, сериализуем его и всё, теперь у нас есть nbt прямо из Minecraft и далее мы можем спокойно это куда-то сохранить или создать пакет для отправки на клиент/сервер, совершенно не заморачиваясь с написанием своих декодеров и энкодеров!
В обратную сторону это тоже работает, при помощи метода NBTFormat::deserialize.
И это всё что может эта система, просто превращать простые структуры в nbt? - Нет, не только простые структуры)
Она также успешно справляется со списками, Map'ами и даже Generic'типами, хоть и с небольшими оговорками и костылями :) 
И наконец, HollowCore позволяет сериализовать даже интерфейсы или абстрактные классы, главное - указать его исходных тип при наследовании. Например у меня таким образом добавляются новые виджеты в систему серверных интерфейсов, и не нужно морочиться с созданием регистрации, пакетов и т.п.!
Ну а на этом у меня в принципе всё, хоть пожалуй и вышло довольно поверхностно, на надеюсь суть я донёс)
Пишите в комментариях, как вам этот формат "Обзора на мой код" и что хотели бы видеть в будущем!
avatar
расскажи про формат регистраций через аннотации, если там есть что-то особенное)
Show more replies
avatar
Hollow Horizon, делегаты фишка котлина?)
avatar
Amiri163, разумеется)

Subscription levels

Передовой Хеллоу-Вордер

$ 0,56 per month
Приобретя эту подписку вы сможете получить доступ к большинству постов и некоторым бета версиям мода. Ну а также отдельный чат в Discord.
+ chat

Продвинутый Скрипто-писец

$ 2,79 per month
Эта подписка уже открывает посты дороже, чаще всего это доступ к всяким глобальным обновлениям, объяснениям различных механик и прочих фишек мода, о которых большинству не известно. 
+ chat

HollowDeveloper

$ 11,2 per month
Это уже довольно солидная цена для подписки, так что с ней у вас будет больший приоритет на голосованиях и вашим идеям и предложениям будет уделено больше внимания :)
+ chat

Верховный Спонсор

$ 56 per month
Интересно, зачем нужна эта подписка?
+ chat
Go up