From b83d2421a1715a15fc3e05b6d0f489c1ee5a4631 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sun, 7 Jan 2024 11:59:21 +0700 Subject: [PATCH] Remove explosive hammer priming recipe --- .../datagen/recipes/CraftingTableRecipes.kt | 3 - .../mc/otm/item/tool/ExplosiveHammerItem.kt | 1 - .../recipe/ExplosiveHammerPrimingRecipe.kt | 84 ------------------- .../dbotthepony/mc/otm/registry/MRecipes.kt | 1 - 4 files changed, 89 deletions(-) delete mode 100644 src/main/kotlin/ru/dbotthepony/mc/otm/recipe/ExplosiveHammerPrimingRecipe.kt 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 460bfe781..205110756 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 @@ -16,7 +16,6 @@ import ru.dbotthepony.mc.otm.registry.MItems import ru.dbotthepony.mc.otm.registry.MRegistry 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 @@ -436,8 +435,6 @@ fun addCraftingTableRecipes(consumer: RecipeOutput) { .unlockedBy(MItemTags.TRITANIUM_INGOTS) .build(consumer) - consumer.accept(ExplosiveHammerPrimingRecipe(Ingredient.of(Tags.Items.NUGGETS_IRON)).toFinished(modLocation("hammer_priming"))) - MatteryRecipe(MItems.EXPLOSIVE_HAMMER, category = RecipeCategory.COMBAT) .rowB(Tags.Items.INGOTS_IRON) .rowAB(Tags.Items.INGOTS_IRON, Tags.Items.RODS_WOODEN) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt index 7537b407d..a5181c8b2 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/item/tool/ExplosiveHammerItem.kt @@ -306,7 +306,6 @@ class ExplosiveHammerItem(durability: Int = 512) : Item(Properties().stacksTo(1) } override fun finishUsingItem(stack: ItemStack, level: Level, entity: LivingEntity): ItemStack { - if (entity is Player && canPrime(entity)) { if (level is ServerLevel) { entity.inventory.clearOrCountMatchingItems(GUNPOWDER_PREDICATE, 1, entity.inventoryMenu.craftSlots) diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/ExplosiveHammerPrimingRecipe.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/ExplosiveHammerPrimingRecipe.kt deleted file mode 100644 index 884138e00..000000000 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/recipe/ExplosiveHammerPrimingRecipe.kt +++ /dev/null @@ -1,84 +0,0 @@ -package ru.dbotthepony.mc.otm.recipe - -import com.google.gson.JsonObject -import com.google.gson.JsonSyntaxException -import com.mojang.serialization.codecs.RecordCodecBuilder -import net.minecraft.core.NonNullList -import net.minecraft.core.RegistryAccess -import net.minecraft.data.recipes.FinishedRecipe -import net.minecraft.network.FriendlyByteBuf -import net.minecraft.resources.ResourceLocation -import net.minecraft.world.inventory.CraftingContainer -import net.minecraft.world.item.ItemStack -import net.minecraft.world.item.crafting.CraftingBookCategory -import net.minecraft.world.item.crafting.CraftingRecipe -import net.minecraft.world.item.crafting.Ingredient -import net.minecraft.world.item.crafting.RecipeSerializer -import net.minecraft.world.level.Level -import net.minecraftforge.common.Tags -import ru.dbotthepony.mc.otm.container.util.stream -import ru.dbotthepony.mc.otm.core.isActuallyEmpty -import ru.dbotthepony.mc.otm.core.isNotEmpty -import ru.dbotthepony.mc.otm.core.set -import ru.dbotthepony.mc.otm.data.Codec2RecipeSerializer -import ru.dbotthepony.mc.otm.item.tool.ExplosiveHammerItem -import ru.dbotthepony.mc.otm.registry.MItems - -class ExplosiveHammerPrimingRecipe(val payload: Ingredient) : CraftingRecipe { - override fun isIncomplete(): Boolean { - return payload.isActuallyEmpty - } - - override fun isSpecial(): Boolean { - return true - } - - override fun matches(pContainer: CraftingContainer, pLevel: Level): Boolean { - val result = pContainer.stream().filter { it.isNotEmpty }.toList() - if (result.size != 3) return false - return result.any { it.item is ExplosiveHammerItem && !(it.item as ExplosiveHammerItem).isPrimed(it) } && - result.any { it.`is`(Tags.Items.GUNPOWDER) } && - result.any { payload.test(it) } - } - - override fun assemble(pContainer: CraftingContainer, registry: RegistryAccess): ItemStack { - val hammer = pContainer.stream().filter { it.isNotEmpty && it.item is ExplosiveHammerItem }.findAny() - if (hammer.isEmpty) return ItemStack.EMPTY - - return hammer.orElseThrow().copyWithCount(1).also { - (it.item as ExplosiveHammerItem).prime(it) - } - } - - override fun canCraftInDimensions(pWidth: Int, pHeight: Int): Boolean { - return pWidth * pHeight >= 3 - } - - override fun getResultItem(registry: RegistryAccess): ItemStack { - return ItemStack.EMPTY - } - - override fun getSerializer(): RecipeSerializer<*> { - return CODEC - } - - override fun category(): CraftingBookCategory { - return CraftingBookCategory.EQUIPMENT - } - - override fun getIngredients(): NonNullList { - return NonNullList.of(Ingredient.of(), Ingredient.of(MItems.EXPLOSIVE_HAMMER), Ingredient.of(Tags.Items.GUNPOWDER), payload) - } - - fun toFinished(id: ResourceLocation) = CODEC.toFinished(this, id) - - companion object { - val CODEC = Codec2RecipeSerializer { p -> - RecordCodecBuilder.create { - it.group( - p.ingredients.fieldOf("payload").forGetter(ExplosiveHammerPrimingRecipe::payload) - ).apply(it, ::ExplosiveHammerPrimingRecipe) - } - } - } -} diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRecipes.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRecipes.kt index 48568dbf5..4130f31ef 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRecipes.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/registry/MRecipes.kt @@ -41,7 +41,6 @@ object MRecipes { serializers.register("plate_press") { PlatePressRecipe.SERIALIZER } serializers.register("energy_container") { EnergyContainerRecipe.Companion } serializers.register("upgrade") { UpgradeRecipe.CODEC } - serializers.register("hammer_priming") { ExplosiveHammerPrimingRecipe.CODEC } serializers.register("painter") { PainterRecipe.SERIALIZER } serializers.register("painter_armor_dye") { PainterArmorDyeRecipe.SERIALIZER } serializers.register("matter_entangler") { MatterEntanglerRecipe.SERIALIZER }