From e08e6d783010944a5f1459c36d7037c5fabd8da1 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 16 Aug 2023 01:43:11 +0700 Subject: [PATCH] Reduce file count of painter recipes --- .../mc/otm/datagen/recipes/PainterRecipes.kt | 37 ++++++++----------- 1 file changed, 15 insertions(+), 22 deletions(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt index f700cb50d..2f290aa1e 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/PainterRecipes.kt @@ -7,6 +7,7 @@ import net.minecraft.world.item.ItemStack import net.minecraft.world.item.Items import net.minecraft.world.item.crafting.Ingredient import ru.dbotthepony.mc.otm.core.registryName +import ru.dbotthepony.mc.otm.core.stream import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.recipe.PainterRecipe import ru.dbotthepony.mc.otm.registry.MItems @@ -16,19 +17,15 @@ import java.util.function.Consumer private val Item.recipeName get() = registryName!!.namespace + "/" + registryName!!.path private fun generate(consumer: Consumer, items: Map, amount: Int = 1) { - for ((k1, v1) in items) { - if (k1 == null) continue - for ((k2, v2) in items) { - if (k2 == null || k1 == k2) continue + for ((targetColor, targetItem) in items) { + if (targetColor == null) continue - consumer.accept(PainterRecipe( - modLocation("painter/" + v2.recipeName + "/" + v1.recipeName), - Ingredient.of(v1), - ItemStack(v2), - //if (k1 == DyeColor.WHITE || k2 == DyeColor.BLACK) setOf(k2) else setOf(DyeColor.BLACK, k2) - mapOf(k2 to amount) - ).toFinished()) - } + consumer.accept(PainterRecipe( + modLocation("painter/" + targetItem.recipeName), + Ingredient.of(items.entries.stream().filter { it.key != null && it.key != targetColor }.map { ItemStack(it.value) }), + ItemStack(targetItem), + mapOf(targetColor to amount) + ).toFinished()) } } @@ -51,16 +48,12 @@ private fun generate(consumer: Consumer, default: Item, items: M } private fun cleaning(consumer: Consumer, to: Item, from: Map) { - for ((k1, v1) in from) { - if (k1 == null) continue - - consumer.accept(PainterRecipe( - modLocation("painter/cleaning/" + to.recipeName + "/" + v1.recipeName), - Ingredient.of(v1), - ItemStack(to), - setOf() - ).toFinished()) - } + consumer.accept(PainterRecipe( + modLocation("painter/cleaning/" + to.recipeName), + Ingredient.of(from.entries.stream().filter { it.key != null }.map { ItemStack(it.value) }), + ItemStack(to), + setOf() + ).toFinished()) } private fun striped(consumer: Consumer, name: String, items: List>>, base: Map) {