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 8c7c77943..a704b5a5b 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt @@ -4,8 +4,10 @@ import net.minecraftforge.eventbus.api.SubscribeEvent import net.minecraftforge.fml.common.Mod import net.minecraftforge.forge.event.lifecycle.GatherDataEvent import ru.dbotthepony.mc.otm.OverdriveThatMatters +import ru.dbotthepony.mc.otm.Registry import ru.dbotthepony.mc.otm.datagen.blocks.BatteryBankProvider import ru.dbotthepony.mc.otm.datagen.blocks.MatterBankProvider +import ru.dbotthepony.mc.otm.datagen.blocks.SimpleBlockStateProvider @Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) object DataGen { @@ -17,5 +19,12 @@ object DataGen { fun onGatherData(event: GatherDataEvent) { event.generator.addProvider(MatterBankProvider(event)) event.generator.addProvider(BatteryBankProvider(event)) + + event.generator.addProvider(with(SimpleBlockStateProvider(event)) { + addBlock(*Registry.Blocks.CRATES) + return@with this + }) + + } } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/SimpleBlockStateProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/SimpleBlockStateProvider.kt new file mode 100644 index 000000000..31a028e0a --- /dev/null +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/SimpleBlockStateProvider.kt @@ -0,0 +1,25 @@ +package ru.dbotthepony.mc.otm.datagen.blocks + +import net.minecraft.resources.ResourceLocation +import net.minecraft.world.level.block.Block +import net.minecraftforge.client.model.generators.BlockStateProvider +import net.minecraftforge.client.model.generators.ConfiguredModel +import net.minecraftforge.forge.event.lifecycle.GatherDataEvent +import ru.dbotthepony.mc.otm.datagen.DataGen + +class SimpleBlockStateProvider(event: GatherDataEvent) : BlockStateProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) { + private val blocks = ArrayList() + + fun addBlock(vararg block: Block) { + blocks.addAll(block) + } + + override fun registerStatesAndModels() { + for (block in blocks) { + getVariantBuilder(block).forAllStates { + check(block.registryName != null) {"$block registry name is null!"} + return@forAllStates arrayOf(ConfiguredModel(models().getExistingFile(block.registryName))) + } + } + } +}