Fix some issues regarding datagen
This commit is contained in:
parent
ee2bb3d24e
commit
37a91c525e
@ -528,12 +528,11 @@ object DataGen {
|
|||||||
event.generator.addProvider(event.includeServer(), matterData)
|
event.generator.addProvider(event.includeServer(), matterData)
|
||||||
|
|
||||||
val registrySetBuilder = RegistrySetBuilder()
|
val registrySetBuilder = RegistrySetBuilder()
|
||||||
val set = registrySetBuilder
|
|
||||||
.add(Registries.DAMAGE_TYPE, ::registerDamageTypes)
|
.add(Registries.DAMAGE_TYPE, ::registerDamageTypes)
|
||||||
.add(Registries.CONFIGURED_FEATURE, ::registerConfiguredFeatures)
|
.add(Registries.CONFIGURED_FEATURE, ::registerConfiguredFeatures)
|
||||||
.add(Registries.PLACED_FEATURE, ::registerPlacedFeatures)
|
.add(Registries.PLACED_FEATURE, ::registerPlacedFeatures)
|
||||||
|
|
||||||
event.generator.addProvider(event.includeServer(), DatapackBuiltinEntriesProvider(event.generator.packOutput, event.lookupProvider, set, setOf(MOD_ID)))
|
event.generator.addProvider(event.includeServer(), DatapackBuiltinEntriesProvider(event.generator.packOutput, event.lookupProvider, registrySetBuilder, setOf(MOD_ID)))
|
||||||
|
|
||||||
registerDamageTypeTags(tagsProvider.damageTypes)
|
registerDamageTypeTags(tagsProvider.damageTypes)
|
||||||
|
|
||||||
|
@ -46,35 +46,29 @@ class TagsProvider(private val event: GatherDataEvent) {
|
|||||||
inner class Appender(val tag: TagKey<T>) {
|
inner class Appender(val tag: TagKey<T>) {
|
||||||
constructor(tag: ResourceLocation) : this(TagKey.create(registryKey, tag))
|
constructor(tag: ResourceLocation) : this(TagKey.create(registryKey, tag))
|
||||||
|
|
||||||
|
init {
|
||||||
|
require(tag.registry == registryKey) { "Trying to create appender for $tag inside registry $registryKey" }
|
||||||
|
}
|
||||||
|
|
||||||
private val locations by lazy { tags.computeIfAbsent(tag) { ObjectArraySet() } }
|
private val locations by lazy { tags.computeIfAbsent(tag) { ObjectArraySet() } }
|
||||||
private val rigidLocations by lazy { rigidTags.computeIfAbsent(tag) { ObjectArraySet() } }
|
private val rigidLocations by lazy { rigidTags.computeIfAbsent(tag) { ObjectArraySet() } }
|
||||||
private val tagsInTags by lazy { tagInTag.computeIfAbsent(tag) { ObjectArraySet() } }
|
private val tagsInTags by lazy { tagInTag.computeIfAbsent(tag) { ObjectArraySet() } }
|
||||||
|
|
||||||
fun add(value: ResourceLocation): Appender {
|
fun add(value: ResourceLocation): Appender {
|
||||||
if (!locations.add(value)) {
|
check(locations.add(value)) { "Tag ${tag.location} of registry ${registryKey.location()} already contains $value" }
|
||||||
throw IllegalStateException("Tag $tag of registry $registryKey already contains $value")
|
|
||||||
}
|
|
||||||
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(value: ResourceKey<T>): Appender {
|
fun add(value: ResourceKey<T>): Appender {
|
||||||
require(value.registry() == registryKey.location()) { "Invalid registry in provided ResourceKey: ${value.registry()} (this tag appender is for $registryKey)" }
|
require(value.registry() == registryKey.location()) { "Invalid registry in provided ResourceKey: ${value.registry()} (this tag appender is for ${registryKey.location()})" }
|
||||||
|
// check(rigidLocations.add(value)) { "Tag ${tag.location} of registry ${registryKey.location()} already contains $value" }
|
||||||
if (!rigidLocations.add(value)) {
|
// return this
|
||||||
throw IllegalStateException("Tag $tag of registry ${registryKey.location()} already contains $value")
|
return add(value.location())
|
||||||
}
|
|
||||||
|
|
||||||
return this
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun add(value: TagKey<T>): Appender {
|
fun add(value: TagKey<T>): Appender {
|
||||||
require(value.registry() == registryKey.location()) { "Invalid registry in provided ResourceKey: ${value.registry()} (this tag appender is for $registryKey)" }
|
require(value.registry() == registryKey) { "Invalid registry in provided ResourceKey: ${value.registry().location()} (this tag appender is for ${registryKey.location()})" }
|
||||||
|
check(tagsInTags.add(value)) { "Tag ${tag.location} of registry ${registryKey.location()} already contains $value" }
|
||||||
if (!tagsInTags.add(value)) {
|
|
||||||
throw IllegalStateException("Tag $tag of registry ${registryKey.location()} already contains $value")
|
|
||||||
}
|
|
||||||
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -128,10 +122,6 @@ class TagsProvider(private val event: GatherDataEvent) {
|
|||||||
fun forge(path: String) = Appender(ResourceLocation("forge", path))
|
fun forge(path: String) = Appender(ResourceLocation("forge", path))
|
||||||
|
|
||||||
override fun addTags(provider: HolderLookup.Provider) {
|
override fun addTags(provider: HolderLookup.Provider) {
|
||||||
if (tags.isEmpty()) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
for ((tag, values) in tags) {
|
for ((tag, values) in tags) {
|
||||||
val appender = tag(tag)
|
val appender = tag(tag)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user