From 32a44239ea225157abca6b6ceb6008f75631510d Mon Sep 17 00:00:00 2001 From: Leo40Git <7997354+Leo40Git@users.noreply.github.com> Date: Wed, 11 Aug 2021 12:14:26 +0300 Subject: [PATCH 1/6] Add tool interaction recipe hooks --- .../hooks/item/tool/AxeItemHooks.java | 19 +++++++++ .../hooks/item/tool/HoeItemHooks.java | 23 +++++++++++ .../hooks/item/tool/ShovelItemHooks.java | 20 ++++++++++ .../main/resources/architectury.accessWidener | 8 +++- .../main/resources/architectury.accessWidener | 8 +++- .../resources/META-INF/accesstransformer.cfg | 3 ++ .../java/dev/architectury/test/TestMod.java | 2 + .../architectury/test/recipe/TestRecipes.java | 39 +++++++++++++++++++ 8 files changed, 120 insertions(+), 2 deletions(-) create mode 100644 common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java create mode 100644 common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java create mode 100644 common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java create mode 100644 testmod-common/src/main/java/dev/architectury/test/recipe/TestRecipes.java diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java new file mode 100644 index 00000000..b7ff4252 --- /dev/null +++ b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java @@ -0,0 +1,19 @@ +package dev.architectury.hooks.item.tool; + +import com.google.common.collect.ImmutableMap; +import net.minecraft.world.item.AxeItem; +import net.minecraft.world.level.block.Block; + +import java.util.HashMap; + +public final class AxeItemHooks { + private AxeItemHooks() { + } + + public static void addStrippingRecipe(Block src, Block dst) { + if (AxeItem.STRIPPABLES instanceof ImmutableMap) { + AxeItem.STRIPPABLES = new HashMap<>(AxeItem.STRIPPABLES); + } + AxeItem.STRIPPABLES.put(src, dst); + } +} diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java new file mode 100644 index 00000000..302fb637 --- /dev/null +++ b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java @@ -0,0 +1,23 @@ +package dev.architectury.hooks.item.tool; + +import com.google.common.collect.ImmutableMap; +import com.mojang.datafixers.util.Pair; +import net.minecraft.world.item.HoeItem; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.Block; + +import java.util.HashMap; +import java.util.function.Consumer; +import java.util.function.Predicate; + +public class HoeItemHooks { + private HoeItemHooks() { + } + + public static void addTillingRecipe(Block src, Predicate predicate, Consumer action) { + if (HoeItem.TILLABLES instanceof ImmutableMap) { + HoeItem.TILLABLES = new HashMap<>(HoeItem.TILLABLES); + } + HoeItem.TILLABLES.put(src, new Pair<>(predicate, action)); + } +} diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java new file mode 100644 index 00000000..91f48c50 --- /dev/null +++ b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java @@ -0,0 +1,20 @@ +package dev.architectury.hooks.item.tool; + +import com.google.common.collect.ImmutableMap; +import net.minecraft.world.item.ShovelItem; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; + +import java.util.HashMap; + +public final class ShovelItemHooks { + private ShovelItemHooks() { + } + + public static void addFlatteningRecipe(Block src, BlockState dst) { + if (ShovelItem.FLATTENABLES instanceof ImmutableMap) { + ShovelItem.FLATTENABLES = new HashMap<>(ShovelItem.FLATTENABLES); + } + ShovelItem.FLATTENABLES.put(src, dst); + } +} diff --git a/common/src/main/resources/architectury.accessWidener b/common/src/main/resources/architectury.accessWidener index 9376d749..c20dffd6 100644 --- a/common/src/main/resources/architectury.accessWidener +++ b/common/src/main/resources/architectury.accessWidener @@ -40,4 +40,10 @@ mutable field net/minecraft/world/level/biome/BiomeSpecialEffects ambientAdditio accessible field net/minecraft/world/level/biome/BiomeSpecialEffects backgroundMusic Ljava/util/Optional; mutable field net/minecraft/world/level/biome/BiomeSpecialEffects backgroundMusic Ljava/util/Optional; accessible method net/minecraft/world/level/storage/LevelResource (Ljava/lang/String;)V -accessible class net/minecraft/world/level/block/entity/BlockEntityType$BlockEntitySupplier \ No newline at end of file +accessible class net/minecraft/world/level/block/entity/BlockEntityType$BlockEntitySupplier +accessible field net/minecraft/world/item/AxeItem STRIPPABLES Ljava/util/Map; +mutable field net/minecraft/world/item/AxeItem STRIPPABLES Ljava/util/Map; +accessible field net/minecraft/world/item/ShovelItem FLATTENABLES Ljava/util/Map; +mutable field net/minecraft/world/item/ShovelItem FLATTENABLES Ljava/util/Map; +accessible field net/minecraft/world/item/HoeItem TILLABLES Ljava/util/Map; +mutable field net/minecraft/world/item/HoeItem TILLABLES Ljava/util/Map; \ No newline at end of file diff --git a/fabric/src/main/resources/architectury.accessWidener b/fabric/src/main/resources/architectury.accessWidener index 5e44d25c..dd39e916 100644 --- a/fabric/src/main/resources/architectury.accessWidener +++ b/fabric/src/main/resources/architectury.accessWidener @@ -98,4 +98,10 @@ mutable field net/minecraft/world/level/biome/BiomeSpecialEffects ambientAdditio accessible field net/minecraft/world/level/biome/BiomeSpecialEffects backgroundMusic Ljava/util/Optional; mutable field net/minecraft/world/level/biome/BiomeSpecialEffects backgroundMusic Ljava/util/Optional; accessible method net/minecraft/world/level/storage/LevelResource (Ljava/lang/String;)V -accessible class net/minecraft/world/level/block/entity/BlockEntityType$BlockEntitySupplier \ No newline at end of file +accessible class net/minecraft/world/level/block/entity/BlockEntityType$BlockEntitySupplier +accessible field net/minecraft/world/item/AxeItem STRIPPABLES Ljava/util/Map; +mutable field net/minecraft/world/item/AxeItem STRIPPABLES Ljava/util/Map; +accessible field net/minecraft/world/item/ShovelItem FLATTENABLES Ljava/util/Map; +mutable field net/minecraft/world/item/ShovelItem FLATTENABLES Ljava/util/Map; +accessible field net/minecraft/world/item/HoeItem TILLABLES Ljava/util/Map; +mutable field net/minecraft/world/item/HoeItem TILLABLES Ljava/util/Map; \ No newline at end of file diff --git a/forge/src/main/resources/META-INF/accesstransformer.cfg b/forge/src/main/resources/META-INF/accesstransformer.cfg index 2cbec00e..a18e70b5 100644 --- a/forge/src/main/resources/META-INF/accesstransformer.cfg +++ b/forge/src/main/resources/META-INF/accesstransformer.cfg @@ -45,3 +45,6 @@ public net.minecraft.world.level.GameRules$IntegerValue m_46294_(ILjava/util/fun public net.minecraft.client.particle.ParticleEngine f_107296_ # textureAtlas public net.minecraft.client.particle.ParticleEngine$MutableSpriteSet public net.minecraft.client.particle.ParticleEngine$MutableSpriteSet f_107406_ # sprites +public-f net.minecraft.world.item.AxeItem f_150683_ # STRIPPABLES +public-f net.minecraft.world.item.ShovelItem f_43110_ # FLATTENABLES +public-f net.minecraft.world.item.HoeItem f_41332_ # TILLABLES diff --git a/testmod-common/src/main/java/dev/architectury/test/TestMod.java b/testmod-common/src/main/java/dev/architectury/test/TestMod.java index bdc91ad1..19172b68 100644 --- a/testmod-common/src/main/java/dev/architectury/test/TestMod.java +++ b/testmod-common/src/main/java/dev/architectury/test/TestMod.java @@ -29,6 +29,7 @@ import dev.architectury.test.events.DebugEvents; import dev.architectury.test.gamerule.TestGameRules; import dev.architectury.test.networking.TestModNet; import dev.architectury.test.particle.TestParticles; +import dev.architectury.test.recipe.TestRecipes; import dev.architectury.test.registry.TestRegistries; import dev.architectury.test.registry.client.TestKeybinds; import dev.architectury.test.tags.TestTags; @@ -52,6 +53,7 @@ public class TestMod { TestTrades.init(); TestParticles.initialize(); TestModNet.initialize(); + TestRecipes.init(); if (Platform.getEnvironment() == Env.CLIENT) { initializeClient(); } diff --git a/testmod-common/src/main/java/dev/architectury/test/recipe/TestRecipes.java b/testmod-common/src/main/java/dev/architectury/test/recipe/TestRecipes.java new file mode 100644 index 00000000..f5112a10 --- /dev/null +++ b/testmod-common/src/main/java/dev/architectury/test/recipe/TestRecipes.java @@ -0,0 +1,39 @@ +package dev.architectury.test.recipe; + +import dev.architectury.hooks.item.tool.AxeItemHooks; +import dev.architectury.hooks.item.tool.HoeItemHooks; +import dev.architectury.hooks.item.tool.ShovelItemHooks; +import net.minecraft.Util; +import net.minecraft.core.BlockPos; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.Blocks; + +public final class TestRecipes { + private TestRecipes() { + } + + public static void init() { + AxeItemHooks.addStrippingRecipe(Blocks.QUARTZ_PILLAR, Blocks.OAK_LOG); + ShovelItemHooks.addFlatteningRecipe(Blocks.IRON_ORE, Blocks.DIAMOND_BLOCK.defaultBlockState()); + HoeItemHooks.addTillingRecipe(Blocks.COAL_BLOCK, ctx -> { + if (!ctx.getLevel().isNight()) { + if (!ctx.getLevel().isClientSide) { + Player player = ctx.getPlayer(); + if (player != null) + player.sendMessage(new TextComponent("These dark arts can only be done at night!"), Util.NIL_UUID); + } + return false; + } + return true; + }, ctx -> { + BlockPos pos = ctx.getClickedPos(); + ctx.getLevel().setBlock(pos, Blocks.DIAMOND_BLOCK.defaultBlockState(), 3); + if (!ctx.getLevel().isClientSide) { + Player player = ctx.getPlayer(); + if (player != null) + player.sendMessage(new TextComponent("Thou has successfully committed the dark arts of alchemy!!"), Util.NIL_UUID); + } + }); + } +} From c8f790448142d60b43f1a6869710507c68fd65c1 Mon Sep 17 00:00:00 2001 From: Leo40Git <7997354+Leo40Git@users.noreply.github.com> Date: Wed, 11 Aug 2021 15:51:32 +0300 Subject: [PATCH 2/6] Validate stripping recipe before adding --- .../java/dev/architectury/hooks/item/tool/AxeItemHooks.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java index b7ff4252..cef62dc8 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java @@ -3,6 +3,7 @@ package dev.architectury.hooks.item.tool; import com.google.common.collect.ImmutableMap; import net.minecraft.world.item.AxeItem; import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RotatedPillarBlock; import java.util.HashMap; @@ -11,6 +12,10 @@ public final class AxeItemHooks { } public static void addStrippingRecipe(Block src, Block dst) { + if (!src.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) + throw new IllegalArgumentException("Source block is missing required 'AXIS' property!"); + if (!dst.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) + throw new IllegalArgumentException("Destination block is missing required 'AXIS' property!"); if (AxeItem.STRIPPABLES instanceof ImmutableMap) { AxeItem.STRIPPABLES = new HashMap<>(AxeItem.STRIPPABLES); } From 64be307c1b1919600d3ddabcfdf9b359f58c65b6 Mon Sep 17 00:00:00 2001 From: Leo40Git <7997354+Leo40Git@users.noreply.github.com> Date: Thu, 12 Aug 2021 22:35:11 +0300 Subject: [PATCH 3/6] Rename parameters to be less cryptic --- .../architectury/hooks/item/tool/AxeItemHooks.java | 12 ++++++------ .../architectury/hooks/item/tool/HoeItemHooks.java | 2 +- .../hooks/item/tool/ShovelItemHooks.java | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java index cef62dc8..2ef21544 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java @@ -11,14 +11,14 @@ public final class AxeItemHooks { private AxeItemHooks() { } - public static void addStrippingRecipe(Block src, Block dst) { - if (!src.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) - throw new IllegalArgumentException("Source block is missing required 'AXIS' property!"); - if (!dst.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) - throw new IllegalArgumentException("Destination block is missing required 'AXIS' property!"); + public static void addStrippingRecipe(Block input, Block result) { + if (!input.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) + throw new IllegalArgumentException("Input block is missing required 'AXIS' property!"); + if (!result.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) + throw new IllegalArgumentException("Result block is missing required 'AXIS' property!"); if (AxeItem.STRIPPABLES instanceof ImmutableMap) { AxeItem.STRIPPABLES = new HashMap<>(AxeItem.STRIPPABLES); } - AxeItem.STRIPPABLES.put(src, dst); + AxeItem.STRIPPABLES.put(input, result); } } diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java index 302fb637..c29e2cd4 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java @@ -10,7 +10,7 @@ import java.util.HashMap; import java.util.function.Consumer; import java.util.function.Predicate; -public class HoeItemHooks { +public final class HoeItemHooks { private HoeItemHooks() { } diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java index 91f48c50..b13b069a 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java @@ -11,10 +11,10 @@ public final class ShovelItemHooks { private ShovelItemHooks() { } - public static void addFlatteningRecipe(Block src, BlockState dst) { + public static void addFlatteningRecipe(Block input, BlockState result) { if (ShovelItem.FLATTENABLES instanceof ImmutableMap) { ShovelItem.FLATTENABLES = new HashMap<>(ShovelItem.FLATTENABLES); } - ShovelItem.FLATTENABLES.put(src, dst); + ShovelItem.FLATTENABLES.put(input, result); } } From 0c1aaa98b28cffcc067bd68459c40b8386d9ef8b Mon Sep 17 00:00:00 2001 From: Leo40Git <7997354+Leo40Git@users.noreply.github.com> Date: Thu, 12 Aug 2021 22:45:31 +0300 Subject: [PATCH 4/6] Javadoc I definitely went ham on --- .../hooks/item/tool/AxeItemHooks.java | 15 ++++++++++++- .../hooks/item/tool/HoeItemHooks.java | 21 ++++++++++++++++--- .../hooks/item/tool/ShovelItemHooks.java | 15 ++++++++++++- 3 files changed, 46 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java index 2ef21544..117ec67c 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java @@ -10,7 +10,20 @@ import java.util.HashMap; public final class AxeItemHooks { private AxeItemHooks() { } - + + /** + * Adds a new stripping (interact with axe) recipe to the game.

+ * + * Note that both the input block and the result block must have the + * {@link net.minecraft.world.level.block.state.properties.BlockStateProperties#AXIS AXIS} property, + * and that the value of this property will be copied from the input block to the result block when the recipe + * is performed. + * + * @param input input block + * @param result result block + * @throws IllegalArgumentException if the input or result blocks do not have the + * {@link net.minecraft.world.level.block.state.properties.BlockStateProperties#AXIS AXIS} property. + */ public static void addStrippingRecipe(Block input, Block result) { if (!input.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) throw new IllegalArgumentException("Input block is missing required 'AXIS' property!"); diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java index c29e2cd4..d226cebe 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java @@ -13,11 +13,26 @@ import java.util.function.Predicate; public final class HoeItemHooks { private HoeItemHooks() { } - - public static void addTillingRecipe(Block src, Predicate predicate, Consumer action) { + + /** + * Adds a new tilling (interact with hoe) recipe to the game.

+ * + * Tilling uses a predicate/consumer pair system: + *

    + *
  • First, the game tests the context using the predicate.
  • + *
  • Then, if the predicate returns {@code true}, the game will, on the server side only, + * invoke the action and then damage the hoe item by 1.
  • + *
  • Otherwise, no action will be invoked.
  • + *
+ * + * @param input input block + * @param predicate context predicate + * @param action action to run + */ + public static void addTillingRecipe(Block input, Predicate predicate, Consumer action) { if (HoeItem.TILLABLES instanceof ImmutableMap) { HoeItem.TILLABLES = new HashMap<>(HoeItem.TILLABLES); } - HoeItem.TILLABLES.put(src, new Pair<>(predicate, action)); + HoeItem.TILLABLES.put(input, new Pair<>(predicate, action)); } } diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java index b13b069a..f08d2493 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java @@ -10,7 +10,20 @@ import java.util.HashMap; public final class ShovelItemHooks { private ShovelItemHooks() { } - + + /** + * Adds a new flattening (interact with shovel) recipe to the game.

+ * + * Notes: + *

    + *
  • Blocks can only be flattened if they have no block above them.
  • + *
  • {@linkplain net.minecraft.world.level.block.CampfireBlock Campfires} have a special case for being extinguished by a shovel, + * though you can override that using this method due to the check order.
  • + *
+ * + * @param input input block + * @param result result block state + */ public static void addFlatteningRecipe(Block input, BlockState result) { if (ShovelItem.FLATTENABLES instanceof ImmutableMap) { ShovelItem.FLATTENABLES = new HashMap<>(ShovelItem.FLATTENABLES); From aba773f07aafb93cc91837d3e1afb9ab48651f4e Mon Sep 17 00:00:00 2001 From: Leo40Git <7997354+Leo40Git@users.noreply.github.com> Date: Fri, 13 Aug 2021 12:00:20 +0300 Subject: [PATCH 5/6] These aren't actually recipes, so... --- .../architectury/hooks/item/tool/AxeItemHooks.java | 4 ++-- .../architectury/hooks/item/tool/HoeItemHooks.java | 4 ++-- .../hooks/item/tool/ShovelItemHooks.java | 4 ++-- .../src/main/java/dev/architectury/test/TestMod.java | 4 ++-- .../TestBlockInteractions.java} | 12 ++++++------ 5 files changed, 14 insertions(+), 14 deletions(-) rename testmod-common/src/main/java/dev/architectury/test/{recipe/TestRecipes.java => item/TestBlockInteractions.java} (78%) diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java index 117ec67c..5a291e09 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/AxeItemHooks.java @@ -12,7 +12,7 @@ public final class AxeItemHooks { } /** - * Adds a new stripping (interact with axe) recipe to the game.

+ * Adds a new stripping (interact with axe) interaction to the game.

* * Note that both the input block and the result block must have the * {@link net.minecraft.world.level.block.state.properties.BlockStateProperties#AXIS AXIS} property, @@ -24,7 +24,7 @@ public final class AxeItemHooks { * @throws IllegalArgumentException if the input or result blocks do not have the * {@link net.minecraft.world.level.block.state.properties.BlockStateProperties#AXIS AXIS} property. */ - public static void addStrippingRecipe(Block input, Block result) { + public static void addStrippable(Block input, Block result) { if (!input.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) throw new IllegalArgumentException("Input block is missing required 'AXIS' property!"); if (!result.defaultBlockState().hasProperty(RotatedPillarBlock.AXIS)) diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java index d226cebe..ef2f0468 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/HoeItemHooks.java @@ -15,7 +15,7 @@ public final class HoeItemHooks { } /** - * Adds a new tilling (interact with hoe) recipe to the game.

+ * Adds a new tilling (interact with hoe) interaction to the game.

* * Tilling uses a predicate/consumer pair system: *

    @@ -29,7 +29,7 @@ public final class HoeItemHooks { * @param predicate context predicate * @param action action to run */ - public static void addTillingRecipe(Block input, Predicate predicate, Consumer action) { + public static void addTillable(Block input, Predicate predicate, Consumer action) { if (HoeItem.TILLABLES instanceof ImmutableMap) { HoeItem.TILLABLES = new HashMap<>(HoeItem.TILLABLES); } diff --git a/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java index f08d2493..b709b339 100644 --- a/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java +++ b/common/src/main/java/dev/architectury/hooks/item/tool/ShovelItemHooks.java @@ -12,7 +12,7 @@ public final class ShovelItemHooks { } /** - * Adds a new flattening (interact with shovel) recipe to the game.

    + * Adds a new flattening (interact with shovel) interaction to the game.

    * * Notes: *

      @@ -24,7 +24,7 @@ public final class ShovelItemHooks { * @param input input block * @param result result block state */ - public static void addFlatteningRecipe(Block input, BlockState result) { + public static void addFlattenable(Block input, BlockState result) { if (ShovelItem.FLATTENABLES instanceof ImmutableMap) { ShovelItem.FLATTENABLES = new HashMap<>(ShovelItem.FLATTENABLES); } diff --git a/testmod-common/src/main/java/dev/architectury/test/TestMod.java b/testmod-common/src/main/java/dev/architectury/test/TestMod.java index 19172b68..03ce539d 100644 --- a/testmod-common/src/main/java/dev/architectury/test/TestMod.java +++ b/testmod-common/src/main/java/dev/architectury/test/TestMod.java @@ -29,7 +29,7 @@ import dev.architectury.test.events.DebugEvents; import dev.architectury.test.gamerule.TestGameRules; import dev.architectury.test.networking.TestModNet; import dev.architectury.test.particle.TestParticles; -import dev.architectury.test.recipe.TestRecipes; +import dev.architectury.test.item.TestBlockInteractions; import dev.architectury.test.registry.TestRegistries; import dev.architectury.test.registry.client.TestKeybinds; import dev.architectury.test.tags.TestTags; @@ -53,7 +53,7 @@ public class TestMod { TestTrades.init(); TestParticles.initialize(); TestModNet.initialize(); - TestRecipes.init(); + TestBlockInteractions.init(); if (Platform.getEnvironment() == Env.CLIENT) { initializeClient(); } diff --git a/testmod-common/src/main/java/dev/architectury/test/recipe/TestRecipes.java b/testmod-common/src/main/java/dev/architectury/test/item/TestBlockInteractions.java similarity index 78% rename from testmod-common/src/main/java/dev/architectury/test/recipe/TestRecipes.java rename to testmod-common/src/main/java/dev/architectury/test/item/TestBlockInteractions.java index f5112a10..18150e79 100644 --- a/testmod-common/src/main/java/dev/architectury/test/recipe/TestRecipes.java +++ b/testmod-common/src/main/java/dev/architectury/test/item/TestBlockInteractions.java @@ -1,4 +1,4 @@ -package dev.architectury.test.recipe; +package dev.architectury.test.item; import dev.architectury.hooks.item.tool.AxeItemHooks; import dev.architectury.hooks.item.tool.HoeItemHooks; @@ -9,14 +9,14 @@ import net.minecraft.network.chat.TextComponent; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.block.Blocks; -public final class TestRecipes { - private TestRecipes() { +public final class TestBlockInteractions { + private TestBlockInteractions() { } public static void init() { - AxeItemHooks.addStrippingRecipe(Blocks.QUARTZ_PILLAR, Blocks.OAK_LOG); - ShovelItemHooks.addFlatteningRecipe(Blocks.IRON_ORE, Blocks.DIAMOND_BLOCK.defaultBlockState()); - HoeItemHooks.addTillingRecipe(Blocks.COAL_BLOCK, ctx -> { + AxeItemHooks.addStrippable(Blocks.QUARTZ_PILLAR, Blocks.OAK_LOG); + ShovelItemHooks.addFlattenable(Blocks.IRON_ORE, Blocks.DIAMOND_BLOCK.defaultBlockState()); + HoeItemHooks.addTillable(Blocks.COAL_BLOCK, ctx -> { if (!ctx.getLevel().isNight()) { if (!ctx.getLevel().isClientSide) { Player player = ctx.getPlayer(); From 7087b65647f89422cfcf6f9413093108254e4820 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 16 Aug 2021 16:38:38 +0200 Subject: [PATCH 6/6] Bump minor version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ac1bf7d6..61be9db0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,7 @@ cf_type=release archives_base_name=architectury archives_base_name_snapshot=architectury-snapshot -base_version=2.3 +base_version=2.4 maven_group=dev.architectury fabric_loader_version=0.11.6