Files
fantasysmp_fabric/src/main/kotlin/dev/zxq5/Fantasysmp.kt
T

74 lines
2.3 KiB
Kotlin

package dev.zxq5
import dev.zxq5.items.ModItems
import dev.zxq5.items.template.GenericItemSet
import net.fabricmc.api.ModInitializer
import net.fabricmc.fabric.api.datagen.v1.FabricPackOutput
import net.fabricmc.fabric.api.datagen.v1.provider.FabricLanguageProvider
import net.fabricmc.fabric.api.datagen.v1.provider.FabricRecipeProvider
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagsProvider
import net.minecraft.core.HolderLookup
import net.minecraft.core.registries.BuiltInRegistries
import net.minecraft.core.registries.Registries
import net.minecraft.data.recipes.RecipeOutput
import net.minecraft.data.recipes.RecipeProvider
import net.minecraft.resources.ResourceKey
import org.slf4j.LoggerFactory
import java.util.concurrent.CompletableFuture
object Fantasysmp : ModInitializer {
const val MOD_ID = "fantasysmp"
private val logger = LoggerFactory.getLogger("fantasysmp")
override fun onInitialize() {
logger.info("Hello Fabric world!")
ModItems.onLoad();
}
}
class ModRecipeProvider(
output: FabricPackOutput,
registriesFuture: CompletableFuture<HolderLookup.Provider>
) : FabricRecipeProvider(output, registriesFuture) {
override fun createRecipeProvider(
registries: HolderLookup.Provider,
exporter: RecipeOutput
): RecipeProvider {
return object : RecipeProvider(registries, exporter) {
override fun buildRecipes() {
GenericItemSet.all.forEach {
it.generateRecipes(registries, exporter)
}
}
}
}
override fun getName(): String = "Fantasysmp Recipes"
}
class ModItemTagProvider(output: FabricPackOutput, registriesFuture: CompletableFuture<HolderLookup.Provider>) :
FabricTagsProvider.ItemTagsProvider(output, registriesFuture) {
override fun addTags(provider: HolderLookup.Provider) {
GenericItemSet.all.forEach {
it.generateItemTags(provider).forEach { (item, keys) ->
keys.forEach { key ->
builder(key)
.add(ResourceKey.create(Registries.ITEM, BuiltInRegistries.ITEM.getKey(item)))
}
}
}
}
}
class ModLanguageProvider(
output: FabricPackOutput, registriesFuture: CompletableFuture<HolderLookup.Provider>) :
FabricLanguageProvider(output, registriesFuture) {
override fun generateTranslations(
registryLookup: HolderLookup.Provider,
translationBuilder: TranslationBuilder
) {
GenericItemSet.all.forEach { it.generateTranslations(translationBuilder) }
}
}