diff --git a/common/src/main/java/dev/dubhe/anvilcraft/api/depository/ItemDepository.java b/common/src/main/java/dev/dubhe/anvilcraft/api/depository/ItemDepository.java index 7f4b44493..26ec988a0 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/api/depository/ItemDepository.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/api/depository/ItemDepository.java @@ -41,6 +41,7 @@ public ItemStack insert(int slot, @NotNull ItemStack stack, boolean simulate, bo ItemStack stackInSlot = this.getStack(slot); int limit = this.getSlotLimit(slot); if (!stackInSlot.isEmpty() && !ItemStack.isSameItemSameTags(stackInSlot, stack)) return stack; + limit = Math.min(limit, stackInSlot.getItem().getMaxStackSize()); limit -= stackInSlot.getCount(); if (limit <= 0) return stack; boolean reachedLimit = stack.getCount() > limit; diff --git a/common/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java b/common/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java index 450fc65dd..990d9e441 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/block/entity/CorruptedBeaconBlockEntity.java @@ -12,7 +12,7 @@ import net.minecraft.tags.BlockTags; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; -import net.minecraft.world.entity.player.Player; +import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BeaconBeamBlock; import net.minecraft.world.level.block.Block; @@ -151,9 +151,9 @@ public void setRemoved() { private static void applyEffects(@NotNull Level level, BlockPos pos) { if (level.isClientSide) return; AABB aABB = new AABB(pos).expandTowards(0.0, level.getHeight(), 0.0); - List list = level.getEntitiesOfClass(Player.class, aABB); - for (Player player : list) { - player.addEffect(new MobEffectInstance(MobEffects.WITHER, 120, 0, true, true)); + List list = level.getEntitiesOfClass(LivingEntity.class, aABB); + for (LivingEntity livingEntity : list) { + livingEntity.addEffect(new MobEffectInstance(MobEffects.WITHER, 120, 0, true, true)); } } diff --git a/common/src/main/java/dev/dubhe/anvilcraft/init/ModBlocks.java b/common/src/main/java/dev/dubhe/anvilcraft/init/ModBlocks.java index 4a64a6dde..5304b19aa 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/init/ModBlocks.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/init/ModBlocks.java @@ -288,7 +288,7 @@ public class ModBlocks { .initialProperties(() -> Blocks.EMERALD_BLOCK) .simpleItem() .defaultLoot() - .tag(BlockTags.MINEABLE_WITH_PICKAXE) + .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.BEACON_BASE_BLOCKS) .recipe((ctx, provider) -> ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ctx.get()) .pattern("AAA") .pattern("AAA") @@ -302,7 +302,7 @@ public class ModBlocks { .initialProperties(() -> Blocks.EMERALD_BLOCK) .simpleItem() .defaultLoot() - .tag(BlockTags.MINEABLE_WITH_PICKAXE) + .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.BEACON_BASE_BLOCKS) .recipe((ctx, provider) -> ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ctx.get()) .pattern("AAA") .pattern("AAA") @@ -316,7 +316,7 @@ public class ModBlocks { .initialProperties(() -> Blocks.EMERALD_BLOCK) .simpleItem() .defaultLoot() - .tag(BlockTags.MINEABLE_WITH_PICKAXE) + .tag(BlockTags.MINEABLE_WITH_PICKAXE, BlockTags.BEACON_BASE_BLOCKS) .recipe((ctx, provider) -> ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ctx.get()) .pattern("AAA") .pattern("AAA") diff --git a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java index 28d2426ef..436adf6b6 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/init/ModItems.java @@ -383,6 +383,7 @@ public void appendHoverText(@NotNull ItemStack stack, @Nullable Level level, @No .register(); public static final ItemEntry TOPAZ = REGISTRATE .item("topaz", TopazItem::new) + .tag(ItemTags.BEACON_PAYMENT_ITEMS) .recipe((ctx, provider) -> ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ctx.get(), 9) .requires(ModBlocks.TOPAZ_BLOCK) .unlockedBy("hasitem", RegistrateRecipeProvider.has(ModBlocks.TOPAZ_BLOCK)) @@ -391,6 +392,7 @@ public void appendHoverText(@NotNull ItemStack stack, @Nullable Level level, @No .register(); public static final ItemEntry RUBY = REGISTRATE .item("ruby", Item::new) + .tag(ItemTags.BEACON_PAYMENT_ITEMS) .recipe((ctx, provider) -> ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ctx.get(), 9) .requires(ModBlocks.RUBY_BLOCK) .unlockedBy("hasitem", RegistrateRecipeProvider.has(ModBlocks.RUBY_BLOCK)) @@ -399,6 +401,7 @@ public void appendHoverText(@NotNull ItemStack stack, @Nullable Level level, @No .register(); public static final ItemEntry SAPPHIRE = REGISTRATE .item("sapphire", Item::new) + .tag(ItemTags.BEACON_PAYMENT_ITEMS) .recipe((ctx, provider) -> ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ctx.get(), 9) .requires(ModBlocks.SAPPHIRE_BLOCK) .unlockedBy("hasitem", RegistrateRecipeProvider.has(ModBlocks.SAPPHIRE_BLOCK)) diff --git a/common/src/main/java/dev/dubhe/anvilcraft/item/GeodeItem.java b/common/src/main/java/dev/dubhe/anvilcraft/item/GeodeItem.java index 1318650ed..398abb5bd 100644 --- a/common/src/main/java/dev/dubhe/anvilcraft/item/GeodeItem.java +++ b/common/src/main/java/dev/dubhe/anvilcraft/item/GeodeItem.java @@ -4,9 +4,11 @@ import dev.dubhe.anvilcraft.util.BlockHighlightUtil; import net.minecraft.core.BlockPos; import net.minecraft.tags.BlockTags; -import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; -import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.Heightmap; @@ -18,10 +20,10 @@ public GeodeItem(Properties properties) { } @Override - public @NotNull InteractionResult useOn(@NotNull UseOnContext context) { - Level level = context.getLevel(); - BlockPos pos = context.getClickedPos(); - if (!level.isClientSide) return InteractionResult.SUCCESS; + public @NotNull InteractionResultHolder use(Level level, Player player, @NotNull InteractionHand usedHand) { + ItemStack itemStack = player.getItemInHand(usedHand); + BlockPos pos = player.getOnPos().below(); + if (!level.isClientSide) return InteractionResultHolder.success(itemStack); int interval = AnvilCraft.config.geodeInterval; int radius = AnvilCraft.config.geodeRadius; for (int x = -radius; x <= radius; x += interval) { @@ -36,6 +38,6 @@ public GeodeItem(Properties properties) { } } } - return InteractionResult.SUCCESS; + return InteractionResultHolder.success(itemStack); } } diff --git a/fabric/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json b/fabric/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json index 607731ac6..4b2ce19d6 100644 --- a/fabric/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json +++ b/fabric/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json @@ -2,6 +2,9 @@ "replace": false, "values": [ "anvilcraft:royal_steel_block", - "anvilcraft:cursed_gold_block" + "anvilcraft:cursed_gold_block", + "anvilcraft:topaz_block", + "anvilcraft:ruby_block", + "anvilcraft:sapphire_block" ] } \ No newline at end of file diff --git a/fabric/src/generated/resources/data/minecraft/tags/items/beacon_payment_items.json b/fabric/src/generated/resources/data/minecraft/tags/items/beacon_payment_items.json index b8f541030..48440cdfe 100644 --- a/fabric/src/generated/resources/data/minecraft/tags/items/beacon_payment_items.json +++ b/fabric/src/generated/resources/data/minecraft/tags/items/beacon_payment_items.json @@ -2,6 +2,9 @@ "replace": false, "values": [ "anvilcraft:royal_steel_ingot", - "anvilcraft:cursed_gold_ingot" + "anvilcraft:cursed_gold_ingot", + "anvilcraft:topaz", + "anvilcraft:ruby", + "anvilcraft:sapphire" ] } \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_block_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_block_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..5af457156 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_block_from_royal_steel_block_stonecutting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_royal_steel_block": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:royal_steel_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_royal_steel_block_from_royal_steel_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_royal_steel_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_royal_steel_block_from_royal_steel_block_stonecutting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..ed43c92e6 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_royal_steel_block": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:cut_royal_steel_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_royal_steel_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_slab_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_slab_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..6df343893 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_slab_from_royal_steel_block_stonecutting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_royal_steel_block": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:royal_steel_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_royal_steel_slab_from_royal_steel_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_royal_steel_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_royal_steel_slab_from_royal_steel_block_stonecutting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..f93f9a6a7 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cut_royal_steel_block": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:cut_royal_steel_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_cut_royal_steel_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_stairs_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_stairs_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..39fef3a83 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/cut_royal_steel_stairs_from_royal_steel_block_stonecutting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_royal_steel_block": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:royal_steel_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cut_royal_steel_stairs_from_royal_steel_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_royal_steel_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cut_royal_steel_stairs_from_royal_steel_block_stonecutting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/smooth_royal_steel_block_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/smooth_royal_steel_block_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..90c03d662 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/building_blocks/smooth_royal_steel_block_from_royal_steel_block_stonecutting.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_royal_steel_block": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:royal_steel_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:smooth_royal_steel_block_from_royal_steel_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_royal_steel_block", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:smooth_royal_steel_block_from_royal_steel_block_stonecutting" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_1.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_1.json new file mode 100644 index 000000000..a67070139 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_1.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beef_mushroom_stew_raw": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:beef_mushroom_stew_raw" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:boil/beef_mushroom_stew_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_beef_mushroom_stew_raw", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:boil/beef_mushroom_stew_1" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_2.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_2.json new file mode 100644 index 000000000..1f723f229 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_2.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beef_mushroom_stew_raw": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:beef_mushroom_stew_raw" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:boil/beef_mushroom_stew_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_beef_mushroom_stew_raw", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:boil/beef_mushroom_stew_2" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_3.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_3.json new file mode 100644 index 000000000..d61e8309d --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/boil/beef_mushroom_stew_3.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_beef_mushroom_stew_raw": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:beef_mushroom_stew_raw" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:boil/beef_mushroom_stew_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_beef_mushroom_stew_raw", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:boil/beef_mushroom_stew_3" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/food/cook/utusan.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/cook/utusan.json new file mode 100644 index 000000000..7c0f3c618 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/food/cook/utusan.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:cook/utusan" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_utusan_raw": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:utusan_raw" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_utusan_raw", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:cook/utusan" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/ancient_debris.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/ancient_debris.json new file mode 100644 index 000000000..b342b7078 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/ancient_debris.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_netherite_coil": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:netherite_coil" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_soul_soil": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:soul_soil" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:ancient_debris" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_soul_soil", + "has_netherite_coil", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:ancient_debris" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/bone_block.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/bone_block.json new file mode 100644 index 000000000..c79af545c --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/bone_block.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bone": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:bone" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:bone_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_bone", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:bone_block" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/heart_of_the_sea.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/heart_of_the_sea.json new file mode 100644 index 000000000..3d9ff22cc --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/misc/heart_of_the_sea.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_kernel_of_the_sea": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:kernel_of_the_sea" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:heart_of_the_sea" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_kernel_of_the_sea", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:heart_of_the_sea" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/chipped_anvil.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/chipped_anvil.json new file mode 100644 index 000000000..893622ec7 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/chipped_anvil.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_block": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:iron_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:iron_ingot" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:chipped_anvil" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_iron_block", + "has_iron_ingot", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:chipped_anvil" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/damaged_anvil.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/damaged_anvil.json new file mode 100644 index 000000000..74a3dcef0 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/damaged_anvil.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_block": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:iron_block" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_iron_ingot": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:iron_ingot" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:damaged_anvil" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_iron_block", + "has_iron_ingot", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:damaged_anvil" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/elytra.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/elytra.json new file mode 100644 index 000000000..9422c66eb --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/elytra.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:elytra" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "hasitem": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:elytra_membrane" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "hasitem", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:elytra" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/trident.json b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/trident.json new file mode 100644 index 000000000..d0066ccc5 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/advancements/recipes/tools/trident.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:trident" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "hasitem": { + "conditions": { + "items": [ + { + "items": [ + "anvilcraft:blade_of_the_sea" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "hasitem", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "minecraft:trident" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/ancient_debris.json b/forge/src/generated/resources/data/minecraft/recipes/ancient_debris.json new file mode 100644 index 000000000..0ba7c2a89 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/ancient_debris.json @@ -0,0 +1,51 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:ancient_debris" + }, + "outcomes": [ + { + "type": "set_block", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "block": "minecraft:ancient_debris" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:soul_soil" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:netherite_coil" + ] + }, + "offset": [ + 0.0, + 0.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_1.json b/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_1.json new file mode 100644 index 000000000..58cf000f2 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_1.json @@ -0,0 +1,77 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:cauldron" + }, + "outcomes": [ + { + "type": "set_block", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "block": "minecraft:cauldron" + } + }, + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + 0.0, + 0.0 + ], + "result": { + "item": "anvilcraft:beef_mushroom_stew" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:water_cauldron" + ], + "state": { + "level": "1" + } + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_block", + "match_block": { + "tag": "minecraft:campfires" + }, + "offset": [ + 0.0, + -2.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:beef_mushroom_stew_raw" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_2.json b/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_2.json new file mode 100644 index 000000000..25ada3cc4 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_2.json @@ -0,0 +1,78 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:cauldron" + }, + "outcomes": [ + { + "type": "set_block", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "block": "minecraft:water_cauldron", + "state": "[level=1]" + } + }, + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + 0.0, + 0.0 + ], + "result": { + "item": "anvilcraft:beef_mushroom_stew" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:water_cauldron" + ], + "state": { + "level": "2" + } + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_block", + "match_block": { + "tag": "minecraft:campfires" + }, + "offset": [ + 0.0, + -2.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:beef_mushroom_stew_raw" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_3.json b/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_3.json new file mode 100644 index 000000000..6d74aea6d --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/boil/beef_mushroom_stew_3.json @@ -0,0 +1,78 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:cauldron" + }, + "outcomes": [ + { + "type": "set_block", + "chance": 1.0, + "offset": [ + 0.0, + -1.0, + 0.0 + ], + "result": { + "block": "minecraft:water_cauldron", + "state": "[level=2]" + } + }, + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + 0.0, + 0.0 + ], + "result": { + "item": "anvilcraft:beef_mushroom_stew" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:water_cauldron" + ], + "state": { + "level": "3" + } + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_block", + "match_block": { + "tag": "minecraft:campfires" + }, + "offset": [ + 0.0, + -2.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:beef_mushroom_stew_raw" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/bone_block.json b/forge/src/generated/resources/data/minecraft/recipes/bone_block.json new file mode 100644 index 000000000..af87c40c0 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/bone_block.json @@ -0,0 +1,51 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:bone_block" + }, + "outcomes": [ + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + 0.0, + 0.0 + ], + "result": { + "item": "minecraft:bone_block" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:cauldron" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 3 + }, + "items": [ + "minecraft:bone" + ] + }, + "offset": [ + 0.0, + 0.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/chipped_anvil.json b/forge/src/generated/resources/data/minecraft/recipes/chipped_anvil.json new file mode 100644 index 000000000..1b860b6fc --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/chipped_anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:iron_block" + }, + "B": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "AAB", + " B ", + "BBB" + ], + "result": { + "item": "minecraft:chipped_anvil" + }, + "show_notification": true +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/cook/utusan.json b/forge/src/generated/resources/data/minecraft/recipes/cook/utusan.json new file mode 100644 index 000000000..328d3e514 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/cook/utusan.json @@ -0,0 +1,62 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "anvilcraft:utusan" + }, + "outcomes": [ + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + 0.0, + 0.0 + ], + "result": { + "item": "anvilcraft:utusan" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:cauldron" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_block", + "match_block": { + "tag": "minecraft:campfires" + }, + "offset": [ + 0.0, + -2.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:utusan_raw" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_block_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_block_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..5b4bb91ef --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_block_from_royal_steel_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "item": "anvilcraft:royal_steel_block" + }, + "result": "anvilcraft:cut_royal_steel_block" +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..757926d55 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_slab_from_cut_royal_steel_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 2, + "ingredient": { + "item": "anvilcraft:cut_royal_steel_block" + }, + "result": "anvilcraft:cut_royal_steel_slab" +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_slab_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_slab_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..ceebd14da --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_slab_from_royal_steel_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 8, + "ingredient": { + "item": "anvilcraft:royal_steel_block" + }, + "result": "anvilcraft:cut_royal_steel_slab" +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..577455d62 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_stairs_from_cut_royal_steel_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 1, + "ingredient": { + "item": "anvilcraft:cut_royal_steel_block" + }, + "result": "anvilcraft:cut_royal_steel_stairs" +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_stairs_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_stairs_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..e6a10455c --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/cut_royal_steel_stairs_from_royal_steel_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "item": "anvilcraft:royal_steel_block" + }, + "result": "anvilcraft:cut_royal_steel_stairs" +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/damaged_anvil.json b/forge/src/generated/resources/data/minecraft/recipes/damaged_anvil.json new file mode 100644 index 000000000..51eb0a616 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/damaged_anvil.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "minecraft:iron_block" + }, + "B": { + "item": "minecraft:iron_ingot" + } + }, + "pattern": [ + "BAB", + " B ", + "BBB" + ], + "result": { + "item": "minecraft:damaged_anvil" + }, + "show_notification": true +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/elytra.json b/forge/src/generated/resources/data/minecraft/recipes/elytra.json new file mode 100644 index 000000000..bb97d4294 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/elytra.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "anvilcraft:elytra_membrane" + }, + "B": { + "item": "minecraft:string" + }, + "C": { + "item": "minecraft:feather" + } + }, + "pattern": [ + "ABA", + "C C", + "C C" + ], + "result": { + "item": "minecraft:elytra" + }, + "show_notification": true +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/heart_of_the_sea.json b/forge/src/generated/resources/data/minecraft/recipes/heart_of_the_sea.json new file mode 100644 index 000000000..269ab1295 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/heart_of_the_sea.json @@ -0,0 +1,63 @@ +{ + "type": "anvilcraft:anvil_processing", + "icon": { + "item": "minecraft:heart_of_the_sea" + }, + "outcomes": [ + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + 0.0, + 0.0 + ], + "result": { + "item": "minecraft:heart_of_the_sea" + } + }, + { + "type": "spawn_item", + "chance": 1.0, + "offset": [ + 0.0, + 0.0, + 0.0 + ], + "result": { + "item": "minecraft:prismarine_shard" + } + } + ], + "predicates": [ + { + "type": "has_block", + "match_block": { + "blocks": [ + "minecraft:smithing_table" + ] + }, + "offset": [ + 0.0, + -1.0, + 0.0 + ] + }, + { + "type": "has_item_ingredient", + "match_item": { + "count": { + "min": 1 + }, + "items": [ + "anvilcraft:kernel_of_the_sea" + ] + }, + "offset": [ + 0.0, + 0.0, + 0.0 + ] + } + ] +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/smooth_royal_steel_block_from_royal_steel_block_stonecutting.json b/forge/src/generated/resources/data/minecraft/recipes/smooth_royal_steel_block_from_royal_steel_block_stonecutting.json new file mode 100644 index 000000000..6bc012282 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/smooth_royal_steel_block_from_royal_steel_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "count": 4, + "ingredient": { + "item": "anvilcraft:royal_steel_block" + }, + "result": "anvilcraft:smooth_royal_steel_block" +} \ No newline at end of file diff --git a/forge/src/generated/resources/data/minecraft/recipes/trident.json b/forge/src/generated/resources/data/minecraft/recipes/trident.json new file mode 100644 index 000000000..a342d4de1 --- /dev/null +++ b/forge/src/generated/resources/data/minecraft/recipes/trident.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "A": { + "item": "anvilcraft:blade_of_the_sea" + }, + "B": { + "item": "minecraft:prismarine_shard" + } + }, + "pattern": [ + " AA", + " BA", + "B " + ], + "result": { + "item": "minecraft:trident" + }, + "show_notification": true +} \ No newline at end of file