diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt index 5aa004f90..7b2f9a31a 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt @@ -13,6 +13,7 @@ import net.minecraft.world.level.block.state.properties.DoorHingeSide import net.minecraft.world.level.block.state.properties.DoubleBlockHalf import net.minecraft.world.level.block.state.properties.Half import net.minecraftforge.client.model.generators.ModelFile +import net.minecraftforge.common.data.ForgeAdvancementProvider import net.minecraftforge.eventbus.api.SubscribeEvent import net.minecraftforge.fml.common.Mod import net.minecraftforge.data.event.GatherDataEvent @@ -29,7 +30,6 @@ import ru.dbotthepony.mc.otm.datagen.models.MatteryBlockModelProvider import ru.dbotthepony.mc.otm.datagen.recipes.MatteryRecipeProvider import ru.dbotthepony.mc.otm.registry.* import ru.dbotthepony.mc.otm.core.registryName -import ru.dbotthepony.mc.otm.datagen.advancements.AdvancementProvider import ru.dbotthepony.mc.otm.datagen.advancements.addAdvancements import ru.dbotthepony.mc.otm.datagen.advancements.addAndroidAdvancements import ru.dbotthepony.mc.otm.datagen.advancements.addMachineAdvancements @@ -419,7 +419,13 @@ object DataGen { this.matterData = matterData val tagsProvider = TagsProvider(event) - val advancementProvider = AdvancementProvider(event) + val advancementProvider = object : ForgeAdvancementProvider(event.generator.packOutput, event.lookupProvider, event.existingFileHelper, listOf( + AdvancementGenerator { registries, saver, existingFileHelper -> + addAdvancements(saver, existingFileHelper, languageProvider) + addAndroidAdvancements(saver, existingFileHelper, languageProvider) + addMachineAdvancements(saver, existingFileHelper, languageProvider) + } + )) {} addTags(tagsProvider) @@ -464,12 +470,6 @@ object DataGen { addOreSmeltingRecipes(consumer) } - advancementProvider.exec { it, files -> - addAdvancements(it, files, languageProvider) - addAndroidAdvancements(it, files, languageProvider) - addMachineAdvancements(it, files, languageProvider) - } - addPlatePressRecipes(recipeProvider) lootModifier.lambda { diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/SoundDataProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/SoundDataProvider.kt index 6e4c5ac76..eb5539c1a 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/SoundDataProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/SoundDataProvider.kt @@ -11,7 +11,7 @@ fun SoundDefinition.subtitle(value: SoundEvent): SoundDefinition { return subtitle("otm.sound." + value.location.path) } -class SoundDataProvider(event: GatherDataEvent) : SoundDefinitionsProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) { +class SoundDataProvider(event: GatherDataEvent) : SoundDefinitionsProvider(event.generator.packOutput, DataGen.MOD_ID, event.existingFileHelper) { override fun registerSounds() { add(MSoundEvents.PLASMA_WEAPON_OVERHEAT, definition().subtitle("otm.sound.plasma_weapon_overheat") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementProvider.kt deleted file mode 100644 index fb18e1e70..000000000 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementProvider.kt +++ /dev/null @@ -1,28 +0,0 @@ -package ru.dbotthepony.mc.otm.datagen.advancements - -import net.minecraft.advancements.Advancement -import net.minecraft.core.HolderLookup -import net.minecraftforge.common.data.ExistingFileHelper -import net.minecraftforge.data.event.GatherDataEvent -import java.util.LinkedList -import java.util.function.Consumer - -class AdvancementProvider(event: GatherDataEvent) : net.minecraft.data.advancements.AdvancementProvider(event.generator.packOutput, event.lookupProvider, listOf(), event.existingFileHelper) { - private val callbacks = LinkedList<(Consumer, ExistingFileHelper) -> Unit>() - - fun exec(callback: (Consumer, ExistingFileHelper) -> Unit) { - callbacks.add(callback) - } - - fun exec(callback: (Consumer) -> Unit) { - callbacks.add { it, _ -> - callback.invoke(it) - } - } - - override fun registerAdvancements(registries: HolderLookup.Provider, consumer: Consumer, fileHelper: ExistingFileHelper) { - for (callback in callbacks) { - callback.invoke(consumer, fileHelper) - } - } -} diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/Banks.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/Banks.kt index 6fc3c2bb1..cdbe2bcca 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/Banks.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/Banks.kt @@ -17,7 +17,7 @@ private fun nothingOrNumber(input: Int): String { return (input - 1).toString() } -open class BatteryBankProvider(event: GatherDataEvent) : BlockStateProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) { +open class BatteryBankProvider(event: GatherDataEvent) : BlockStateProvider(event.generator.packOutput, DataGen.MOD_ID, event.existingFileHelper) { protected var block = "battery_bank" protected var batteryPath = "block/battery/battery" protected var registry: Block = MBlocks.BATTERY_BANK diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/MatteryBlockStateProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/MatteryBlockStateProvider.kt index 441942236..ffd7cf4ed 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/MatteryBlockStateProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/MatteryBlockStateProvider.kt @@ -41,7 +41,7 @@ private fun initialTransform(it: BlockState, modelPath: String, builder: Configu return modelPath } -class MatteryBlockStateProvider(event: GatherDataEvent) : BlockStateProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) { +class MatteryBlockStateProvider(event: GatherDataEvent) : BlockStateProvider(event.generator.packOutput, DataGen.MOD_ID, event.existingFileHelper) { private val callbacks = LinkedList<() -> Unit>() fun exec(lambda: () -> Unit): MatteryBlockStateProvider { diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt index 985082d3d..75e41c5d2 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt @@ -9,7 +9,7 @@ import ru.dbotthepony.mc.otm.datagen.DataGen import ru.dbotthepony.mc.otm.core.registryName import java.util.LinkedList -class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) { +class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event.generator.packOutput, DataGen.MOD_ID, event.existingFileHelper) { private val callbacks = LinkedList<() -> Unit>() fun exec(func: () -> Unit): MatteryItemModelProvider { diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt index 2b84bf75b..9c16c52a6 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/lang/MatteryLanguageProvider.kt @@ -35,7 +35,7 @@ private fun researchString(key: AndroidResearchType): String { } class MatteryLanguageProvider(private val gen: DataGenerator) { - private inner class Slave(language: String) : LanguageProvider(gen, OverdriveThatMatters.MOD_ID, language) { + private inner class Slave(language: String) : LanguageProvider(gen.packOutput, OverdriveThatMatters.MOD_ID, language) { override fun addTranslations() {} } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiers.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiers.kt index cc119d648..af9dc0737 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiers.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/loot/LootModifiers.kt @@ -51,7 +51,7 @@ fun PlainLootAppender( vararg items: Pair ) = PlainLootAppender(conditions, Arrays.stream(items)) -class LootModifiers(generator: DataGenerator) : GlobalLootModifierProvider(generator, DataGen.MOD_ID) { +class LootModifiers(generator: DataGenerator) : GlobalLootModifierProvider(generator.packOutput, DataGen.MOD_ID) { private val lambdas = ArrayList<(LootModifiers) -> Unit>() fun lambda(lambda: (LootModifiers) -> Unit) { diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelBuilder.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelBuilder.kt index 65b3cd2c6..9c69f35ba 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelBuilder.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelBuilder.kt @@ -145,7 +145,7 @@ class MatteryModelBuilder(resourceLocation: ResourceLocation, existingFileHelper } (v["emissivity"] as? JsonPrimitive)?.asInt?.also { emissivity -> - emissivity(emissivity) + emissivity(emissivity, 0) } (v["ao"] as? JsonPrimitive)?.asBoolean?.also { ao -> diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelProvider.kt index dd0d3d415..b7d1dca22 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/models/MatteryModelProvider.kt @@ -14,7 +14,7 @@ import java.util.LinkedList private typealias Callback = (MatteryModelProvider) -> Unit -sealed class MatteryModelProvider(event: GatherDataEvent, folder: String) : ModelProvider(event.generator, DataGen.MOD_ID, folder, ::MatteryModelBuilder, event.existingFileHelper) { +sealed class MatteryModelProvider(event: GatherDataEvent, folder: String) : ModelProvider(event.generator.packOutput, DataGen.MOD_ID, folder, ::MatteryModelBuilder, event.existingFileHelper) { private fun extendWithFolder(rl: ResourceLocation): ResourceLocation { return if (rl.path.contains("/")) rl else ResourceLocation(rl.namespace, folder + "/" + rl.path) }