Simple block model provider

This commit is contained in:
DBotThePony 2022-01-06 19:40:23 +07:00
parent de16544f48
commit 24d673b5ac
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 50 additions and 7 deletions

View File

@ -1,5 +1,8 @@
package ru.dbotthepony.mc.otm.datagen 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.eventbus.api.SubscribeEvent
import net.minecraftforge.fml.common.Mod import net.minecraftforge.fml.common.Mod
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent 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.Registry
import ru.dbotthepony.mc.otm.datagen.blocks.BatteryBankProvider import ru.dbotthepony.mc.otm.datagen.blocks.BatteryBankProvider
import ru.dbotthepony.mc.otm.datagen.blocks.MatterBankProvider import ru.dbotthepony.mc.otm.datagen.blocks.MatterBankProvider
import ru.dbotthepony.mc.otm.datagen.blocks.SimpleBlockProvider
import ru.dbotthepony.mc.otm.datagen.blocks.SimpleBlockStateProvider import ru.dbotthepony.mc.otm.datagen.blocks.SimpleBlockStateProvider
@Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD) @Mod.EventBusSubscriber(modid = DataGen.MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD)
object DataGen { object DataGen {
const val MOD_ID = OverdriveThatMatters.MOD_ID 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 @SubscribeEvent
@JvmStatic @JvmStatic
@Suppress("unused") @Suppress("unused")
fun onGatherData(event: GatherDataEvent) { 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(MatterBankProvider(event))
event.generator.addProvider(BatteryBankProvider(event)) event.generator.addProvider(BatteryBankProvider(event))
event.generator.addProvider(with(SimpleBlockStateProvider(event)) {
addBlock(*Registry.Blocks.CRATES)
return@with this
})
} }
} }

View File

@ -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<CubeAllEntry>()
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}")))
}
}
}