From 1803d687ab8941e9adcddadc54bc43f2b4655b62 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 31 Dec 2023 22:18:43 +0700 Subject: [PATCH] Make mod compile against 1.20.1 --- .../datagen/advancements/AdvancementData.kt | 5 ++-- .../advancements/AndroidAdvancementsData.kt | 2 -- .../advancements/ExopackAdvancementsData.kt | 3 -- .../mc/otm/datagen/advancements/Helpers.kt | 7 +++-- .../advancements/MachineAdvancementsData.kt | 4 ++- .../mc/otm/datagen/recipes/CookingRecipes.kt | 2 -- .../datagen/recipes/CraftingTableRecipes.kt | 5 +--- .../datagen/recipes/MachineUpgradeRecipes.kt | 1 - .../datagen/recipes/MatterEntanglerRecipes.kt | 7 +++-- .../mc/otm/datagen/recipes/MatteryRecipe.kt | 13 +++----- .../datagen/recipes/MatteryRecipeProvider.kt | 30 ++++++++----------- .../mc/otm/datagen/recipes/PainterRecipes.kt | 20 ++++++------- .../otm/datagen/recipes/ShapelessRecipes.kt | 5 +++- 13 files changed, 47 insertions(+), 57 deletions(-) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt index 0cd43924e..4513da0a9 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AdvancementData.kt @@ -1,9 +1,8 @@ package ru.dbotthepony.mc.otm.datagen.advancements -import net.minecraft.advancements.AdvancementHolder import net.minecraft.advancements.AdvancementRewards import net.minecraft.advancements.FrameType -import net.minecraft.advancements.AdvancementRequirements.Strategy +import net.minecraft.advancements.RequirementsStrategy import net.minecraft.advancements.critereon.InventoryChangeTrigger import net.minecraft.world.item.DyeColor import net.minecraft.world.item.ItemStack @@ -17,6 +16,8 @@ import ru.dbotthepony.mc.otm.triggers.BlackHoleTrigger import ru.dbotthepony.mc.otm.triggers.NailedEntityTrigger import java.util.function.Consumer +typealias Strategy = RequirementsStrategy + fun addAdvancements(serializer: Consumer, lang: MatteryLanguageProvider) { val translation = lang.MultiBuilder("otm.advancements.regular") diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt index 2a9ed3bdf..591f3a24e 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/AndroidAdvancementsData.kt @@ -1,7 +1,5 @@ package ru.dbotthepony.mc.otm.datagen.advancements -import net.minecraft.advancements.AdvancementHolder -import net.minecraft.advancements.AdvancementRequirements.Strategy import net.minecraft.advancements.AdvancementRewards import net.minecraft.advancements.FrameType import net.minecraft.advancements.critereon.EntityPredicate diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt index 5e15965ce..8f228548e 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/ExopackAdvancementsData.kt @@ -1,12 +1,9 @@ package ru.dbotthepony.mc.otm.datagen.advancements -import net.minecraft.advancements.Advancement -import net.minecraft.advancements.AdvancementHolder import net.minecraft.advancements.FrameType import net.minecraft.advancements.critereon.ItemPredicate import net.minecraft.world.item.ItemStack import net.minecraft.world.item.Items -import net.minecraftforge.common.data.ExistingFileHelper import ru.dbotthepony.mc.otm.datagen.lang.MatteryLanguageProvider import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.MItems diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/Helpers.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/Helpers.kt index 83a4eef59..0e999e52a 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/Helpers.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/Helpers.kt @@ -16,6 +16,7 @@ import net.minecraft.world.item.Item import net.minecraft.world.item.ItemStack import net.minecraft.world.level.ItemLike import ru.dbotthepony.mc.otm.core.TextComponent +import java.util.function.Consumer fun AdvancementBuilder(): Advancement.Builder = Advancement.Builder.advancement() @@ -58,7 +59,7 @@ fun predicate(tag: TagKey): ItemPredicate { return ItemPredicate.Builder.item().of(tag).build() } -fun criterion(tag: TagKey): Criterion<*> { +fun criterion(tag: TagKey): CriterionTriggerInstance { return InventoryChangeTrigger.TriggerInstance.hasItems(predicate(tag)) } @@ -66,8 +67,10 @@ fun predicate(item: ItemLike): ItemPredicate { return ItemPredicate.Builder.item().of(item).build() } -fun criterion(item: ItemLike): Criterion<*> { +fun criterion(item: ItemLike): CriterionTriggerInstance { return InventoryChangeTrigger.TriggerInstance.hasItems(predicate(item)) } fun EntityPredicate.wrap(): ContextAwarePredicate = EntityPredicate.wrap(this) + +fun Advancement.Builder.save(advancement: Consumer, name: ResourceLocation) = save(advancement, name.toString()) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt index 36cdb7ff2..0181180fd 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/advancements/MachineAdvancementsData.kt @@ -1,6 +1,6 @@ package ru.dbotthepony.mc.otm.datagen.advancements -import net.minecraft.advancements.AdvancementHolder +import net.minecraft.advancements.Advancement import net.minecraft.advancements.FrameType import net.minecraft.advancements.critereon.ItemPredicate import net.minecraft.world.item.Item @@ -15,6 +15,8 @@ import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.triggers.TakeItemOutOfReplicatorTrigger import java.util.function.Consumer +typealias AdvancementHolder = Advancement + private data class CraftEntry( val item: Item, val englishName: String, diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CookingRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CookingRecipes.kt index c9e0e69b1..b1a73ef25 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CookingRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CookingRecipes.kt @@ -1,14 +1,12 @@ package ru.dbotthepony.mc.otm.datagen.recipes import net.minecraft.data.recipes.RecipeCategory -import net.minecraft.data.recipes.RecipeOutput import net.minecraft.data.recipes.SimpleCookingRecipeBuilder import net.minecraft.util.valueproviders.ConstantFloat import net.minecraft.world.item.Item import net.minecraft.world.item.ItemStack import net.minecraft.world.item.crafting.Ingredient import net.minecraft.world.level.ItemLike -import ru.dbotthepony.mc.otm.core.registryName import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.registry.MItemTags import ru.dbotthepony.mc.otm.registry.MItems diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt index a7db8cd40..db790ea62 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/CraftingTableRecipes.kt @@ -1,8 +1,6 @@ package ru.dbotthepony.mc.otm.datagen.recipes -import net.minecraft.data.recipes.FinishedRecipe import net.minecraft.data.recipes.RecipeCategory -import net.minecraft.data.recipes.RecipeOutput import net.minecraft.data.recipes.ShapelessRecipeBuilder import net.minecraft.tags.ItemTags import net.minecraft.world.item.ItemStack @@ -18,7 +16,6 @@ import ru.dbotthepony.mc.otm.core.registryName import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.recipe.ExplosiveHammerPrimingRecipe import ru.dbotthepony.mc.otm.recipe.UpgradeRecipe -import java.util.function.Consumer fun addCraftingTableRecipes(consumer: RecipeOutput) { val machinesCategory = RecipeCategory.DECORATIONS @@ -430,7 +427,7 @@ fun addCraftingTableRecipes(consumer: RecipeOutput) { .unlockedBy(MItemTags.TRITANIUM_INGOTS) .build(consumer) - consumer.accept(ExplosiveHammerPrimingRecipe(Ingredient.of(Tags.Items.NUGGETS_IRON)).toFinished(modLocation("hammer_priming"))) + consumer.accept(ExplosiveHammerPrimingRecipe(Ingredient.of(Tags.Items.NUGGETS_IRON), modLocation("hammer_priming")).toFinished()) MatteryRecipe(MItems.EXPLOSIVE_HAMMER, category = RecipeCategory.COMBAT) .rowB(Tags.Items.INGOTS_IRON) diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MachineUpgradeRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MachineUpgradeRecipes.kt index f11d03911..5b9ace528 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MachineUpgradeRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MachineUpgradeRecipes.kt @@ -1,6 +1,5 @@ package ru.dbotthepony.mc.otm.datagen.recipes -import net.minecraft.data.recipes.RecipeOutput import net.minecraft.world.item.Items import net.minecraftforge.common.Tags import ru.dbotthepony.mc.otm.registry.MItemTags diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatterEntanglerRecipes.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatterEntanglerRecipes.kt index 19378ec84..55c3f636e 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatterEntanglerRecipes.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatterEntanglerRecipes.kt @@ -1,6 +1,5 @@ package ru.dbotthepony.mc.otm.datagen.recipes -import net.minecraft.data.recipes.RecipeOutput import net.minecraft.world.item.ItemStack import net.minecraft.world.item.crafting.Ingredient import net.minecraftforge.common.Tags @@ -14,6 +13,7 @@ import ru.dbotthepony.mc.otm.registry.MItems fun addMatterEntanglerRecipes(consumer: RecipeOutput) { consumer.accept( MatterEntanglerRecipe( + modLocation("quantum_capacitor"), IngredientMatrix.of( listOf(Ingredient.of(MItems.ELECTRIC_PARTS), Ingredient.of(MItemTags.GOLD_WIRES), Ingredient.of(MItems.ELECTRIC_PARTS)), listOf(Ingredient.of(MItems.BATTERY_CAPACITOR), Ingredient.of(MItems.QUANTUM_TRANSCEIVER), Ingredient.of(MItems.BATTERY_CAPACITOR)), @@ -23,11 +23,12 @@ fun addMatterEntanglerRecipes(consumer: RecipeOutput) { 400.0, ItemStack(MItems.QUANTUM_CAPACITOR, 2), experience = 15f - ).energetic().toFinished(modLocation("quantum_capacitor")) + ).energetic().toFinished() ) consumer.accept( MatterEntanglerRecipe( + modLocation("quantum_battery"), IngredientMatrix.of( listOf(Ingredient.of(Tags.Items.STORAGE_BLOCKS_REDSTONE), Ingredient.of(MItemTags.GOLD_WIRES), Ingredient.of(Tags.Items.STORAGE_BLOCKS_REDSTONE)), listOf(Ingredient.of(MItems.BATTERY_DENSE), Ingredient.of(MItems.QUANTUM_TRANSCEIVER), Ingredient.of(MItems.BATTERY_DENSE)), @@ -37,6 +38,6 @@ fun addMatterEntanglerRecipes(consumer: RecipeOutput) { 600.0, ItemStack(MItems.QUANTUM_BATTERY, 2), experience = 20f - ).energetic().toFinished(modLocation("quantum_battery")) + ).energetic().toFinished() ) } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt index 7e2e75f89..2d02a538e 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipe.kt @@ -7,7 +7,6 @@ import net.minecraft.advancements.Criterion import net.minecraft.advancements.CriterionTriggerInstance import net.minecraft.data.recipes.FinishedRecipe import net.minecraft.data.recipes.RecipeCategory -import net.minecraft.data.recipes.RecipeOutput import net.minecraft.data.recipes.ShapedRecipeBuilder import net.minecraft.resources.ResourceLocation import net.minecraft.tags.TagKey @@ -62,10 +61,6 @@ private fun RecipeOutput.map(mapper: (FinishedRecipe) -> FinishedRecipe): Recipe override fun accept(recipe: FinishedRecipe) { this@map.accept(mapper(recipe)) } - - override fun advancement(): Advancement.Builder { - return this@map.advancement() - } } } @@ -77,11 +72,11 @@ class MatteryRecipe(val result: ItemLike, val count: Int = 1, val category: Reci private val rows = arrayOfNulls(3) private var index = 0 - private val unlockedBy = ArrayList>>().also { + private val unlockedBy = ArrayList>().also { it.add("has_result" to has(result)) } - fun unlockedBy(name: String, trigger: Criterion<*>): MatteryRecipe { + fun unlockedBy(name: String, trigger: CriterionTriggerInstance): MatteryRecipe { unlockedBy.add(name to trigger) return this } @@ -190,7 +185,7 @@ class MatteryRecipe(val result: ItemLike, val count: Int = 1, val category: Reci pJson["source"] = upgradeSource!!.toString() } - override fun type(): RecipeSerializer<*> { + override fun getType(): RecipeSerializer<*> { return UpgradeRecipe.CODEC } } @@ -222,7 +217,7 @@ class MatteryRecipe(val result: ItemLike, val count: Int = 1, val category: Reci fun buildEnergetic(consumer: RecipeOutput, name: String? = null) { build(consumer.map { object : FinishedRecipe by it { - override fun type(): RecipeSerializer<*> { + override fun getType(): RecipeSerializer<*> { return EnergyContainerRecipe.Companion } } diff --git a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipeProvider.kt b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipeProvider.kt index 6e36513b1..bb937d3ed 100644 --- a/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipeProvider.kt +++ b/src/data/kotlin/ru/dbotthepony/mc/otm/datagen/recipes/MatteryRecipeProvider.kt @@ -1,17 +1,13 @@ package ru.dbotthepony.mc.otm.datagen.recipes -import com.google.common.collect.ImmutableList -import net.minecraft.advancements.CriteriaTriggers import net.minecraft.advancements.Criterion +import net.minecraft.advancements.CriterionTriggerInstance import net.minecraft.advancements.critereon.ContextAwarePredicate -import net.minecraft.advancements.critereon.EntityPredicate import net.minecraft.advancements.critereon.InventoryChangeTrigger import net.minecraft.advancements.critereon.ItemPredicate import net.minecraft.advancements.critereon.MinMaxBounds import net.minecraft.data.DataGenerator -import net.minecraft.data.recipes.FinishedRecipe import net.minecraft.data.recipes.RecipeBuilder -import net.minecraft.data.recipes.RecipeOutput import net.minecraft.data.recipes.RecipeProvider import net.minecraft.resources.ResourceLocation import net.minecraft.tags.ItemTags @@ -27,31 +23,30 @@ import ru.dbotthepony.mc.otm.datagen.modLocation import ru.dbotthepony.mc.otm.recipe.MicrowaveRecipe import ru.dbotthepony.mc.otm.recipe.PlatePressRecipe import java.util.* -import java.util.function.Consumer import java.util.stream.Stream private typealias RecipeBuilderCallback = (MatteryRecipeProvider, consumer: RecipeOutput) -> Unit -fun has(p_176521_: MinMaxBounds.Ints, p_176522_: ItemLike): Criterion { +fun has(p_176521_: MinMaxBounds.Ints, p_176522_: ItemLike): CriterionTriggerInstance { return inventoryTrigger(ItemPredicate.Builder.item().of(p_176522_).withCount(p_176521_).build()) } -fun has(p_125978_: ItemLike): Criterion { +fun has(p_125978_: ItemLike): CriterionTriggerInstance { return inventoryTrigger(ItemPredicate.Builder.item().of(p_125978_).build()) } -fun has(p_125976_: TagKey): Criterion { +fun has(p_125976_: TagKey): CriterionTriggerInstance { return inventoryTrigger(ItemPredicate.Builder.item().of(p_125976_).build()) } -fun inventoryTrigger(vararg p_126012_: ItemPredicate): Criterion { - return CriteriaTriggers.INVENTORY_CHANGED.createCriterion(InventoryChangeTrigger.TriggerInstance( - Optional.empty(), +fun inventoryTrigger(vararg p_126012_: ItemPredicate): CriterionTriggerInstance { + return InventoryChangeTrigger.TriggerInstance( + ContextAwarePredicate.ANY, MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, - ImmutableList.copyOf(p_126012_) - )) + p_126012_ + ) } fun multiIngredient(vararg items: Any) : Ingredient { @@ -104,24 +99,25 @@ class MatteryRecipeProvider(generatorIn: DataGenerator) : RecipeProvider(generat fun plate(id: String, count: Int = 1, workTicks: Int = 200, experience: FloatProvider = ConstantFloat.ZERO) { exec { _, consumer -> consumer.accept(PlatePressRecipe( + modLocation("plates/$id"), Ingredient.of(ItemTags.create(ResourceLocation("forge", "ingots/$id"))), Ingredient.of(ItemTags.create(ResourceLocation("forge", "plates/$id"))), count, workTicks, experience = experience - ).toFinished(modLocation("plates/$id"))) + ).toFinished()) } } fun plate(id: String, ingredient: Ingredient, result: Ingredient, count: Int = 1, workTicks: Int = 200, experience: FloatProvider = ConstantFloat.ZERO) { exec { it, callback -> - callback.accept(PlatePressRecipe(ingredient, result, count, workTicks, experience = experience).toFinished(modLocation("plate_$id"))) + callback.accept(PlatePressRecipe(modLocation("plates/$id"), ingredient, result, count, workTicks, experience = experience).toFinished()) } } fun microwave(id: String, ingredient: Ingredient, result: Ingredient, count: Int = 1, workTicks: Int = 200, experience: FloatProvider = ConstantFloat.ZERO) { exec { it, callback -> - callback.accept(MicrowaveRecipe(ingredient, result, count, workTicks, experience = experience).toFinished(modLocation("microwave/$id"))) + callback.accept(MicrowaveRecipe(modLocation("microwave/$id"), ingredient, result, count, workTicks, experience = experience).toFinished()) } } } 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 f43737eca..ca1dbba7d 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 @@ -1,20 +1,16 @@ package ru.dbotthepony.mc.otm.datagen.recipes -import net.minecraft.data.recipes.FinishedRecipe -import net.minecraft.data.recipes.RecipeOutput import net.minecraft.world.item.DyeColor import net.minecraft.world.item.Item 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.PainterArmorDyeRecipe import ru.dbotthepony.mc.otm.recipe.PainterRecipe import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MRegistry -import java.util.function.Consumer private val Item.recipeName get() = registryName!!.namespace + "/" + registryName!!.path @@ -23,10 +19,11 @@ private fun generate(consumer: RecipeOutput, items: Map, am if (targetColor == null) continue 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(modLocation("painter/" + targetItem.recipeName))) + ).toFinished()) } } @@ -40,19 +37,21 @@ private fun generate(consumer: RecipeOutput, default: Item, items: Map) { consumer.accept(PainterRecipe( + modLocation("painter/cleaning/" + to.recipeName), Ingredient.of(from.entries.stream().filter { it.key != null }.map { ItemStack(it.value) }), ItemStack(to), mapOf(null to 15) - ).toFinished(modLocation("painter/cleaning/" + to.recipeName))) + ).toFinished()) } private fun striped(consumer: RecipeOutput, name: String, items: List>>, base: Map) { @@ -60,10 +59,11 @@ private fun striped(consumer: RecipeOutput, name: String, items: List fun hammerRecipe(output: ItemLike, input: ItemLike, consumer: RecipeOutput) { ShapelessRecipeBuilder(RecipeCategory.MISC, output, 1)