From e8dbbffa8e3d707a3622762c111c28ba970b6cc3 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 19 May 2022 23:00:17 +0200 Subject: [PATCH] Addressed multiple ToDo's --- .../bclib/api/features/BCLFeatureBuilder.java | 3 -- .../bclib/blocks/BaseDoublePlantBlock.java | 1 - .../betterx/bclib/blocks/BasePlantBlock.java | 1 - .../bclib/blocks/BaseTerrainBlock.java | 2 - .../betterx/bclib/recipes/AnvilRecipe.java | 44 ++++++++++++++----- src/main/resources/fabric.mod.json | 8 ++-- 6 files changed, 36 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/betterx/bclib/api/features/BCLFeatureBuilder.java b/src/main/java/org/betterx/bclib/api/features/BCLFeatureBuilder.java index d03c97a1..e678eda9 100644 --- a/src/main/java/org/betterx/bclib/api/features/BCLFeatureBuilder.java +++ b/src/main/java/org/betterx/bclib/api/features/BCLFeatureBuilder.java @@ -128,13 +128,10 @@ public class BCLFeatureBuilder getDrops(BlockState state, LootContext.Builder builder) { ItemStack tool = builder.getParameter(LootContextParams.TOOL); - //TODO: 1.18.2 Test if shearing still works if (tool != null && BaseShearsItem.isShear(tool) || EnchantmentHelper.getItemEnchantmentLevel( Enchantments.SILK_TOUCH, tool diff --git a/src/main/java/org/betterx/bclib/blocks/BaseTerrainBlock.java b/src/main/java/org/betterx/bclib/blocks/BaseTerrainBlock.java index 12437273..a555df0e 100644 --- a/src/main/java/org/betterx/bclib/blocks/BaseTerrainBlock.java +++ b/src/main/java/org/betterx/bclib/blocks/BaseTerrainBlock.java @@ -77,9 +77,7 @@ public class BaseTerrainBlock extends BaseBlock { Player player, InteractionHand hand, BlockHitResult hit) { - //TODO: 1.18.2 check if (pathBlock != null && TagAPI.isToolWithMineableTag(player.getMainHandItem(), NamedMineableTags.SHOVEL)) { - //if (pathBlock != null && FabricTagProvider.SHOVELS.contains(player.getMainHandItem().getItem())) { world.playSound(player, pos, SoundEvents.SHOVEL_FLATTEN, SoundSource.BLOCKS, 1.0F, 1.0F); if (!world.isClientSide) { world.setBlockAndUpdate(pos, pathBlock.defaultBlockState()); diff --git a/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java b/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java index ac1f69cd..182588a1 100644 --- a/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java +++ b/src/main/java/org/betterx/bclib/recipes/AnvilRecipe.java @@ -34,6 +34,7 @@ import org.betterx.bclib.util.ItemUtil; import org.betterx.bclib.util.RecipeHelper; import java.util.Objects; +import org.jetbrains.annotations.NotNull; public class AnvilRecipe implements Recipe, UnknownReceipBookCategory { public final static String GROUP = "smithing"; @@ -102,41 +103,60 @@ public class AnvilRecipe implements Recipe, UnknownReceipBookCategory } @Override - public boolean matches(Container craftingInventory, Level world) { + public boolean matches(@NotNull Container craftingInventory, @NotNull Level world) { return this.matches(craftingInventory); } @Override - public ItemStack assemble(Container craftingInventory) { + public ItemStack assemble(@NotNull Container craftingInventory) { return this.output.copy(); } + public ItemStack getHammer(Container c) { + ItemStack h = c.getItem(1); + if (!h.isEmpty() && h.is(CommonItemTags.HAMMERS)) return h; + h = c.getItem(0); + if (!h.isEmpty() && h.is(CommonItemTags.HAMMERS)) return h; + return null; + } + + public ItemStack getIngredient(Container c) { + ItemStack i = c.getItem(0); + if (i.is(CommonItemTags.HAMMERS)) i = c.getItem(1); + return i; + } + public ItemStack craft(Container craftingInventory, Player player) { if (!player.isCreative()) { if (!checkHammerDurability(craftingInventory, player)) return ItemStack.EMPTY; - ItemStack hammer = craftingInventory.getItem(1); - hammer.hurtAndBreak(this.damage, player, entity -> entity.broadcastBreakEvent((InteractionHand) null)); + ItemStack hammer = getHammer(craftingInventory); + if (hammer != null) { + hammer.hurtAndBreak(this.damage, player, entity -> entity.broadcastBreakEvent((InteractionHand) null)); + return ItemStack.EMPTY; + } } return this.assemble(craftingInventory); } public boolean checkHammerDurability(Container craftingInventory, Player player) { if (player.isCreative()) return true; - ItemStack hammer = craftingInventory.getItem(1); - int damage = hammer.getDamageValue() + this.damage; - return damage < hammer.getMaxDamage(); + ItemStack hammer = getHammer(craftingInventory); + if (hammer != null) { + int damage = hammer.getDamageValue() + this.damage; + return damage < hammer.getMaxDamage(); + } + return true; } public boolean matches(Container craftingInventory) { - ItemStack hammer = craftingInventory.getItem(1); - //TODO: 1.18.2 Test if hammer still works - if (hammer.isEmpty() || !hammer.is(CommonItemTags.HAMMERS)) { + ItemStack hammer = getHammer(craftingInventory); + if (hammer == null) { return false; } - ItemStack material = craftingInventory.getItem(0); + ItemStack material = getIngredient(craftingInventory); int materialCount = material.getCount(); int level = ((TieredItem) hammer.getItem()).getTier().getLevel(); - return this.input.test(craftingInventory.getItem(0)) && materialCount >= this.inputCount && level >= this.toolLevel; + return this.input.test(getIngredient(craftingInventory)) && materialCount >= this.inputCount && level >= this.toolLevel; } public int getDamage() { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 8c9bb428..43d3795d 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -1,18 +1,18 @@ { "schemaVersion": 1, "id": "bclib", - "version": "2.0.0", + "version": "${version}", "name": "BCLib", "description": "A library for BetterX team mods", "authors": [ - "paulevs", "Quiqueck", + "paulevs", "Bulldog83" ], "contact": { "homepage": "https://www.curseforge.com/minecraft/mc-mods/bclib", - "issues": "https://github.com/paulevsGitch/bclib/issues", - "sources": "https://github.com/paulevsGitch/bclib" + "issues": "https://github.com/quiqueck/bclib/issues", + "sources": "https://github.com/quiqueck/bclib" }, "license": "MIT", "icon": "assets/bclib/icon.png",