Handheld models

This commit is contained in:
DBotThePony 2022-01-13 17:18:52 +07:00
parent f92dd0ad9e
commit f726a9b6d5
Signed by: DBot
GPG Key ID: DCC23B5715498507
2 changed files with 21 additions and 8 deletions

View File

@ -144,7 +144,7 @@ object DataGen {
component(Items.TRITANIUM_INGOT)
resource(Items.TRITANIUM_ORE_CLUMP)
generated(*Items.TRITANIUM_TOOLS)
handheld(*Items.TRITANIUM_TOOLS)
generatedTiered(Items.BATTERIES, "battery_tier")
generated(Items.BATTERY_CREATIVE)

View File

@ -6,33 +6,45 @@ import net.minecraftforge.client.model.generators.ItemModelProvider
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent
import ru.dbotthepony.mc.otm.datagen.DataGen
private data class ItemModelGenerated(val item: String, val path: ResourceLocation)
private data class ItemModelDelegate(val item: String, val path: ResourceLocation)
private data class SimpleItemModel(val item: String, val path: ResourceLocation)
class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event.generator, DataGen.MOD_ID, event.existingFileHelper) {
private val generated = ArrayList<ItemModelGenerated>()
private val delegates = ArrayList<ItemModelDelegate>()
private val generated = ArrayList<SimpleItemModel>()
private val handheld = ArrayList<SimpleItemModel>()
private val delegates = ArrayList<SimpleItemModel>()
override fun registerModels() {
for ((item, path) in generated) {
withExistingParent(item, GENERATED).texture("layer0", path)
}
for ((item, path) in handheld) {
withExistingParent(item, HANDHELD).texture("layer0", path)
}
for ((item, path) in delegates) {
withExistingParent(item, path)
}
}
fun block(item: Item) = delegates.add(ItemModelDelegate(item.registryName!!.path, ResourceLocation(DataGen.MOD_ID, "block/${item.registryName!!.path}")))
fun block(item: Item, path: String) = delegates.add(ItemModelDelegate(item.registryName!!.path, ResourceLocation(DataGen.MOD_ID, "block/$path")))
fun block(item: Item) = delegates.add(SimpleItemModel(item.registryName!!.path, ResourceLocation(DataGen.MOD_ID, "block/${item.registryName!!.path}")))
fun block(item: Item, path: String) = delegates.add(SimpleItemModel(item.registryName!!.path, ResourceLocation(DataGen.MOD_ID, "block/$path")))
fun blocks(vararg items: Item) = items.forEach(this::block)
fun generated(item: Item, texture: ResourceLocation) {
generated.add(ItemModelGenerated(item.registryName!!.path, texture))
generated.add(SimpleItemModel(item.registryName!!.path, texture))
}
fun handheld(item: Item, texture: ResourceLocation) {
handheld.add(SimpleItemModel(item.registryName!!.path, texture))
}
fun generated(vararg items: Item) = items.forEach { generated(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
fun handheld(vararg items: Item) = items.forEach { handheld(it, ResourceLocation(DataGen.MOD_ID, "item/${it.registryName!!.path}")) }
fun generated(item: Item, prefix: String) = generated(item, ResourceLocation(DataGen.MOD_ID, "item/${prefix}${item.registryName!!.path}"))
fun handheld(item: Item, prefix: String) = handheld(item, ResourceLocation(DataGen.MOD_ID, "item/${prefix}${item.registryName!!.path}"))
fun component(item: Item) = generated(item, "component/")
fun components(vararg items: Item) = items.forEach(this::component)
fun resource(item: Item) = generated(item, "resources/")
@ -49,5 +61,6 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event
companion object {
private val GENERATED = ResourceLocation("minecraft", "item/generated")
private val HANDHELD = ResourceLocation("minecraft", "item/handheld")
}
}