diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt index 915de8993..f06049371 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/items/MatteryItemModelProvider.kt @@ -2,6 +2,7 @@ package ru.dbotthepony.mc.otm.datagen.items import net.minecraft.data.models.ItemModelGenerators import net.minecraft.resources.ResourceLocation +import net.minecraft.server.packs.PackType import net.minecraft.world.item.ArmorItem import net.minecraft.world.item.Item import net.minecraftforge.client.model.generators.ItemModelProvider @@ -85,20 +86,13 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event val mainModel = withExistingParent(item.registryName!!.path, GENERATED).texture("layer0", texture) if (item is ArmorItem) { - for (i in 0 until ARMOR_TRIM_MATERIALS.size) { - val material = ARMOR_TRIM_MATERIALS[i] + for ((i, material) in ARMOR_TRIM_MATERIALS.withIndex()) { + val trimLocation = ResourceLocation("trims/items/${item.type.getName()}_trim_${material}") + existingFileHelper.trackGenerated(trimLocation, PackType.CLIENT_RESOURCES, ".png", "textures") val overrideModel = withExistingParent("${item.registryName!!.path}_${material}_trim", GENERATED) .texture("layer0", texture) -// .texture("layer1", mcLoc("trims/items/${item.type.getName()}_trim_${material}")) - - // спасибо за проверку наличия файлов КОТОРЫЕ ГЕНЕРИРУЮТСЯ В РАНТАЙМЕ И В ДАТАГЕНЕ НЕ СУЩЕСТВУЮТ - val texturesField = ModelBuilder::class.java.getDeclaredField("textures") - texturesField.trySetAccessible() - - // произошёл троллинг - val textures = texturesField.get(overrideModel) as LinkedHashMap - textures["layer1"] = "minecraft:trims/items/${item.type.getName()}_trim_${material}" + .texture("layer1", trimLocation) mainModel.override() .predicate(ItemModelGenerators.TRIM_TYPE_PREDICATE_ID, (i + 1).toFloat() / ARMOR_TRIM_MATERIALS.size.toFloat()) @@ -106,7 +100,6 @@ class MatteryItemModelProvider(event: GatherDataEvent) : ItemModelProvider(event .end() } } - } fun armorWithTrims(vararg items: Item) = items.forEach { armorWithTrims(it, modLocation("item/${it.registryName!!.path}")) }