Skip to main content
Version: Legacy

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


Универсальные инструменты

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



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


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

Создайте объект-класса, наследуемый от HollowRegistry(), в нём и будет проходить вся регистрация:

Пример
object ModItems: HollowRegistry() {
... // Тут все регистрируемые предметы!
}


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


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

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

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

Аналогично регистрируются и все остальные игровые объекты.



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


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

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

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