From afcbaf75aee75d7ba7d0ee851c8508e096eaa02d Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Fri, 13 Jan 2023 17:39:47 +0700 Subject: [PATCH] =?UTF-8?q?=D1=87=D1=82=D0=BE=20=D0=B2=D1=8B=20=D0=BA?= =?UTF-8?q?=D1=83=D1=80=D0=B8=D0=BB=D0=B8=20mojang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Revert "One more data provider" This reverts commit be2dcc6bae8c39b2970ff9439cc28a6d00c91158. Revert "Update datagen class" This reverts commit ee53b85aff6a268bcdc55ce4304f39f5e5193c81. --- .../ru/dbotthepony/mc/otm/datagen/DataGen.kt | 2 +- .../android/AndroidResearchDataProvider.kt | 15 ++++-------- .../mc/otm/matter/MatterDataProvider.kt | 24 +++++++++---------- 3 files changed, 17 insertions(+), 24 deletions(-) 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 b58581093..fccf96442 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt @@ -406,7 +406,7 @@ object DataGen { val lootModifier = LootModifiers(event.generator) val languageProvider = MatteryLanguageProvider(event.generator) val matterData = MatterDataProvider(event) - val researchProvider = AndroidResearchDataProvider(event.generator).also { it.exec { addResearchData(it, languageProvider) } } + val researchProvider = AndroidResearchDataProvider(event.generator, MOD_ID).also { it.exec { addResearchData(it, languageProvider) } } this.blockModelProvider = blockModelProvider this.blockStateProvider = blockStateProvider diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearchDataProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearchDataProvider.kt index 74ab0d7fa..550c2a973 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearchDataProvider.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/android/AndroidResearchDataProvider.kt @@ -4,15 +4,15 @@ import it.unimi.dsi.fastutil.objects.ObjectArraySet import net.minecraft.data.CachedOutput import net.minecraft.data.DataGenerator import net.minecraft.data.DataProvider -import net.minecraft.data.PackOutput import net.minecraft.resources.ResourceLocation import java.util.Collections import java.util.LinkedList -import java.util.concurrent.CompletableFuture import java.util.function.Consumer @Suppress("unused") -open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerator, val modid: String) : DataProvider { +open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerator) : DataProvider { + protected val pathProvider: DataGenerator.PathProvider = dataGenerator.createPathProvider(DataGenerator.Target.DATA_PACK, AndroidResearchManager.DIRECTORY) + protected val callbacks = LinkedList<(Consumer) -> Unit>() private val generated = LinkedList() @@ -35,18 +35,15 @@ open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerato return this } - final override fun run(output: CachedOutput): CompletableFuture<*> { + final override fun run(output: CachedOutput) { AndroidResearchManager.fireRegistrationEvent() val set = ObjectArraySet() val added = LinkedList() - val futures = ArrayList>() - - val path = dataGenerator.packOutput.getOutputFolder(PackOutput.Target.DATA_PACK).resolve(modid).resolve(AndroidResearchManager.DIRECTORY) addEverything { if (set.add(it.id)) { - futures.add(DataProvider.saveStable(output, it.toJson(), path.resolve("${it.id}.json"))) + DataProvider.saveStable(output, it.toJson(), pathProvider.json(it.id)) AndroidResearchManager.put(it) added.add(it) } else { @@ -58,8 +55,6 @@ open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerato value.validate() generated.add(value) } - - return CompletableFuture.allOf(*futures.toTypedArray()) } override fun getName(): String { diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterDataProvider.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterDataProvider.kt index df5927d60..e2a37e01d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterDataProvider.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/matter/MatterDataProvider.kt @@ -3,7 +3,6 @@ package ru.dbotthepony.mc.otm.matter import net.minecraft.data.CachedOutput import net.minecraft.data.DataGenerator import net.minecraft.data.DataProvider -import net.minecraft.data.PackOutput import net.minecraft.resources.ResourceLocation import net.minecraft.tags.TagKey import net.minecraft.world.item.Item @@ -12,13 +11,13 @@ import net.minecraftforge.data.event.GatherDataEvent import ru.dbotthepony.mc.otm.core.Decimal import ru.dbotthepony.mc.otm.core.registryName import java.util.Collections -import java.util.concurrent.CompletableFuture import java.util.function.Consumer @Suppress("FunctionName", "unused") -open class MatterDataProvider(protected val dataGenerator: DataGenerator, val modid: String) : DataProvider { +open class MatterDataProvider(protected val dataGenerator: DataGenerator, val namespace: String?) : DataProvider { constructor(event: GatherDataEvent) : this(event.generator, event.modContainer.namespace) + protected val pathProvider: DataGenerator.PathProvider = dataGenerator.createPathProvider(DataGenerator.Target.DATA_PACK, MatterManager.MATTER_DIRECTORY) protected val actions = LinkedHashMap() sealed class Configuration(val name: ResourceLocation) { @@ -912,10 +911,14 @@ open class MatterDataProvider(protected val dataGenerator: DataGenerator, val mo } protected fun updateLocation(input: ResourceLocation, prefix: String): ResourceLocation { - if (input.namespace == modid) { - return ResourceLocation(input.namespace, prefix + input.path) + if (namespace != null) { + if (input.namespace == namespace) { + return ResourceLocation(input.namespace, prefix + input.path) + } else { + return ResourceLocation(namespace, prefix + input.namespace + "/" + input.path) + } } else { - return ResourceLocation(modid, prefix + input.namespace + "/" + input.path) + return ResourceLocation(input.namespace, prefix + input.path) } } @@ -1201,18 +1204,13 @@ open class MatterDataProvider(protected val dataGenerator: DataGenerator, val mo protected val added = ArrayList() val addedView: List = Collections.unmodifiableList(added) - final override fun run(output: CachedOutput): CompletableFuture<*> { + final override fun run(output: CachedOutput) { addActions() - val promises = ArrayList>() - val path = dataGenerator.packOutput.getOutputFolder(PackOutput.Target.DATA_PACK).resolve(modid).resolve(MatterManager.MATTER_DIRECTORY) - for ((key, value) in actions) { - promises.add(DataProvider.saveStable(output, value.toJson(), path.resolve("$key.json"))) + DataProvider.saveStable(output, value.toJson(), pathProvider.json(key)) added.add(value) } - - return CompletableFuture.allOf(*promises.toTypedArray()) } override fun getName(): String {