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