custom items now use new builder DSL syntax, implementing first new set begins tmr
build / build (push) Failing after 3m16s

This commit is contained in:
2026-07-08 00:58:10 +01:00
parent 5f6350943e
commit 5b57baafb1
6 changed files with 192 additions and 361 deletions
@@ -0,0 +1,54 @@
package dev.zxq5.items
import dev.zxq5.Fantasysmp
import dev.zxq5.items.core.GenericGearSet
import dev.zxq5.items.core.GenericItemSet
import net.fabricmc.fabric.api.creativetab.v1.FabricCreativeModeTab
import net.minecraft.core.Registry
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.network.chat.Component
import net.minecraft.resources.Identifier
import net.minecraft.resources.ResourceKey
import net.minecraft.world.item.CreativeModeTab
import net.minecraft.world.item.Item
import net.minecraft.world.item.ItemStack
object ModItems {
fun <T : Item> register(
name: String,
itemFactory: (Item.Properties) -> T,
settings: Item.Properties
): T {
val itemKey = ResourceKey.create(Registries.ITEM, Identifier.fromNamespaceAndPath(Fantasysmp.MOD_ID, name))
val item = itemFactory(settings.setId(itemKey))
Registry.register(BuiltInRegistries.ITEM, itemKey, item)
return item
}
val CUSTOM_CREATIVE_TAB_KEY: ResourceKey<CreativeModeTab> = ResourceKey.create(
BuiltInRegistries.CREATIVE_MODE_TAB.key(), Identifier.fromNamespaceAndPath(Fantasysmp.MOD_ID, "creative_tab")
)
val CUSTOM_CREATIVE_TAB: CreativeModeTab = FabricCreativeModeTab.builder()
.icon { ItemStack(Witherite.SWORD) }
.title(Component.translatable("Fantasysmp"))
.displayItems { _, output ->
GenericItemSet.all.forEach {
it.items.forEach(output::accept)
}
}
.build()
private val eagerLoad = listOf<GenericGearSet>(
Witherite,
Dragonite,
)
fun onLoad() {
// ensure that implementations such as creative tab are loaded and initialised
eagerLoad
GenericItemSet.all.forEach { it.onLoad() }
Registry.register(BuiltInRegistries.CREATIVE_MODE_TAB, CUSTOM_CREATIVE_TAB_KEY, CUSTOM_CREATIVE_TAB);
}
}