Перейти к основному содержимому

Универсальная регистрация

Те, кто когда-либо писал моды под разные загрузчики наверняка заметили, что у каждого из них есть свои уникальные инструменты для регистрации игровых объектов (блоки, предметы, мобы и т.п.) HollowCore позволяет вам не париться с регистрацией объектов под каждый загрузчик, предоставляя удобную систему регистрации.

Создание нового регистратора

Итак, прежде всего создайте object-класс, наследуемый от HollowRegistry, в нём и будет проходить вся регистрация.

Пример
object ModItems : HollowRegistry() {

}

Регистрация игрового объекта

HollowCore позволяет регистрировать практически все игровые объекты. Определяет тип регистратора он автоматически, вам лишь нужно создать делегат с помощью метода register(location: ResourceLocation, () -> T): RegistryObject<T>, где T - класс вашего объекта.

Пример
object ModItems : HollowRegistry() {
val MY_ITEM by register("modid:my_item".rl) { // .rl - сокращение от ResourceLocation. На разных версиях он создаётся по-разному, так что был создан универсальный вариант.
MyItem() // Объект вашего предмета
}
}

Аналогично регистрируются и все остальные игровые объекты, просто передаёте нужный объект.

Использование игрововых объектов

Теперь, когда объект зарегистрирован вы можете его получить с помочью метода RegistryObject<T>.get().

Пример
fun getMyItem(): MyItem {
return ModItems.MY_ITEM.get()
}