From 24d673b5ac4870877e4a55d7740f6675bf88a0e5 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Thu, 6 Jan 2022 19:40:23 +0700 Subject: [PATCH] Simple block model provider --- .../ru/dbotthepony/mc/otm/datagen/DataGen.kt | 32 +++++++++++++++---- .../otm/datagen/blocks/SimpleBlockProvider.kt | 25 +++++++++++++++ 2 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/SimpleBlockProvider.kt 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 a704b5a5b..5afe92f13 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/DataGen.kt @@ -1,5 +1,8 @@ package ru.dbotthepony.mc.otm.datagen +import net.minecraft.resources.ResourceLocation +import net.minecraft.world.level.block.Block +import net.minecraftforge.client.model.generators.BlockModelProvider import net.minecraftforge.eventbus.api.SubscribeEvent import net.minecraftforge.fml.common.Mod import net.minecraftforge.forge.event.lifecycle.GatherDataEvent @@ -7,24 +10,39 @@ 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.SimpleBlockProvider import ru.dbotthepony.mc.otm.datagen.blocks.SimpleBlockStateProvider @Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) object DataGen { const val MOD_ID = OverdriveThatMatters.MOD_ID + private lateinit var blockModelProvider: SimpleBlockProvider + private lateinit var blockStateProvider: SimpleBlockStateProvider + + private fun decorativeCubeAll(vararg blocks: Block) { + blockModelProvider.decorativeCubeAll(*blocks) + blockStateProvider.addBlock(*blocks) + } + @SubscribeEvent @JvmStatic @Suppress("unused") fun onGatherData(event: GatherDataEvent) { + blockModelProvider = SimpleBlockProvider(event) + blockStateProvider = SimpleBlockStateProvider(event) + + event.generator.addProvider(blockModelProvider) + event.generator.addProvider(blockStateProvider) + + decorativeCubeAll(*Registry.Blocks.CRATES) + decorativeCubeAll(Registry.Blocks.CARBON_FIBRE_BLOCK) + decorativeCubeAll(Registry.Blocks.TRITANIUM_BLOCK) + decorativeCubeAll(Registry.Blocks.TRITANIUM_STRIPED_BLOCK) + + blockStateProvider.addBlock(Registry.Blocks.BLACK_HOLE) + 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/SimpleBlockProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/SimpleBlockProvider.kt new file mode 100644 index 000000000..15ea2bcca --- /dev/null +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/blocks/SimpleBlockProvider.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.BlockModelProvider +import net.minecraftforge.forge.event.lifecycle.GatherDataEvent +import ru.dbotthepony.mc.otm.datagen.DataGen + +private data class CubeAllEntry(val path: String, val texture: ResourceLocation) + +class SimpleBlockProvider(event: GatherDataEvent) : BlockModelProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) { + private val cubeAll = ArrayList() + + override fun registerModels() { + for ((path, texture) in cubeAll) { + cubeAll(path, texture) + } + } + + fun decorativeCubeAll(vararg blocks: Block) { + for (it in blocks) { + cubeAll.add(CubeAllEntry(it.registryName!!.path, ResourceLocation("overdrive_that_matters:block/decorative/${it.registryName!!.path}"))) + } + } +}