Update datagen class
This commit is contained in:
parent
bb52032364
commit
ee53b85aff
@ -4,15 +4,15 @@ import it.unimi.dsi.fastutil.objects.ObjectArraySet
|
|||||||
import net.minecraft.data.CachedOutput
|
import net.minecraft.data.CachedOutput
|
||||||
import net.minecraft.data.DataGenerator
|
import net.minecraft.data.DataGenerator
|
||||||
import net.minecraft.data.DataProvider
|
import net.minecraft.data.DataProvider
|
||||||
|
import net.minecraft.data.PackOutput
|
||||||
import net.minecraft.resources.ResourceLocation
|
import net.minecraft.resources.ResourceLocation
|
||||||
import java.util.Collections
|
import java.util.Collections
|
||||||
import java.util.LinkedList
|
import java.util.LinkedList
|
||||||
|
import java.util.concurrent.CompletableFuture
|
||||||
import java.util.function.Consumer
|
import java.util.function.Consumer
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerator) : DataProvider {
|
open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerator, val modid: String) : DataProvider {
|
||||||
protected val pathProvider: DataGenerator.PathProvider = dataGenerator.createPathProvider(DataGenerator.Target.DATA_PACK, AndroidResearchManager.DIRECTORY)
|
|
||||||
|
|
||||||
protected val callbacks = LinkedList<(Consumer<AndroidResearchType>) -> Unit>()
|
protected val callbacks = LinkedList<(Consumer<AndroidResearchType>) -> Unit>()
|
||||||
|
|
||||||
private val generated = LinkedList<AndroidResearchType>()
|
private val generated = LinkedList<AndroidResearchType>()
|
||||||
@ -35,15 +35,18 @@ open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerato
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun run(output: CachedOutput) {
|
final override fun run(output: CachedOutput): CompletableFuture<*> {
|
||||||
AndroidResearchManager.fireRegistrationEvent()
|
AndroidResearchManager.fireRegistrationEvent()
|
||||||
|
|
||||||
val set = ObjectArraySet<ResourceLocation>()
|
val set = ObjectArraySet<ResourceLocation>()
|
||||||
val added = LinkedList<AndroidResearchType>()
|
val added = LinkedList<AndroidResearchType>()
|
||||||
|
val futures = ArrayList<CompletableFuture<*>>()
|
||||||
|
|
||||||
|
val path = dataGenerator.packOutput.getOutputFolder(PackOutput.Target.DATA_PACK).resolve(modid).resolve(AndroidResearchManager.DIRECTORY)
|
||||||
|
|
||||||
addEverything {
|
addEverything {
|
||||||
if (set.add(it.id)) {
|
if (set.add(it.id)) {
|
||||||
DataProvider.saveStable(output, it.toJson(), pathProvider.json(it.id))
|
futures.add(DataProvider.saveStable(output, it.toJson(), path.resolve("${it.id}.json")))
|
||||||
AndroidResearchManager.put(it)
|
AndroidResearchManager.put(it)
|
||||||
added.add(it)
|
added.add(it)
|
||||||
} else {
|
} else {
|
||||||
@ -55,6 +58,8 @@ open class AndroidResearchDataProvider(protected val dataGenerator: DataGenerato
|
|||||||
value.validate()
|
value.validate()
|
||||||
generated.add(value)
|
generated.add(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return CompletableFuture.allOf(*futures.toTypedArray())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getName(): String {
|
override fun getName(): String {
|
||||||
|
Loading…
Reference in New Issue
Block a user