74 lines
2.3 KiB
Kotlin
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) }
|
|
}
|
|
} |