Универсальная регистрация
Те, кто когда-либо писал моды под разные загрузчики наверняка заметили, что у каждого из них есть свои уникальные инструменты для регистрации игровых объектов (блоки, предметы, мобы и т.п.) 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()
}