From 4ca02b923cdc59d2f3f8434f50772c1dc6fee680 Mon Sep 17 00:00:00 2001 From: GaLi <133291877+GaLicn@users.noreply.github.com> Date: Sat, 23 Aug 2025 22:30:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=8E=89=E8=90=BD=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/extendedae_plus/hooks/WrenchHook.java | 24 +++++++++++++++++++ .../mixin/ae2/PatternProviderScreenMixin.java | 2 +- .../blocks/1024x_crafting_accelerator.json | 12 ++++++++++ .../blocks/16x_crafting_accelerator.json | 12 ++++++++++ .../blocks/256x_crafting_accelerator.json | 12 ++++++++++ .../blocks/4x_crafting_accelerator.json | 12 ++++++++++ .../blocks/64x_crafting_accelerator.json | 12 ++++++++++ .../tags/blocks/mineable/pickaxe.json | 7 +++++- .../tags/blocks/needs_stone_tool.json | 11 +++++++++ 9 files changed, 102 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/data/extendedae_plus/loot_tables/blocks/1024x_crafting_accelerator.json create mode 100644 src/main/resources/data/extendedae_plus/loot_tables/blocks/16x_crafting_accelerator.json create mode 100644 src/main/resources/data/extendedae_plus/loot_tables/blocks/256x_crafting_accelerator.json create mode 100644 src/main/resources/data/extendedae_plus/loot_tables/blocks/4x_crafting_accelerator.json create mode 100644 src/main/resources/data/extendedae_plus/loot_tables/blocks/64x_crafting_accelerator.json create mode 100644 src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json diff --git a/src/main/java/com/extendedae_plus/hooks/WrenchHook.java b/src/main/java/com/extendedae_plus/hooks/WrenchHook.java index 093b6cc..f098b45 100644 --- a/src/main/java/com/extendedae_plus/hooks/WrenchHook.java +++ b/src/main/java/com/extendedae_plus/hooks/WrenchHook.java @@ -3,6 +3,8 @@ package com.extendedae_plus.hooks; import appeng.util.InteractionUtil; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.content.wireless.WirelessTransceiverBlockEntity; +import appeng.block.crafting.CraftingUnitBlock; +import appeng.blockentity.crafting.CraftingBlockEntity; import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; @@ -61,6 +63,28 @@ public final class WrenchHook { event.setCanceled(true); event.setCancellationResult(InteractionResult.sidedSuccess(level.isClientSide)); } + // AE2 并行处理器系列(CraftingUnitBlock)潜行扳手拆除:直接入背包 + else { + var pos = hit.getBlockPos(); + BlockState state = level.getBlockState(pos); + if (state.getBlock() instanceof CraftingUnitBlock) { + if (!level.isClientSide) { + var drops = Block.getDrops(state, (net.minecraft.server.level.ServerLevel) level, pos, level.getBlockEntity(pos), player, stack); + for (var item : drops) { + player.getInventory().placeItemBackInInventory(item); + } + } + + level.playSound(player, hit.getBlockPos(), SoundEvents.ITEM_FRAME_REMOVE_ITEM, SoundSource.BLOCKS, 0.7F, 1.0F); + + state.getBlock().playerWillDestroy(level, pos, state, player); + level.removeBlock(pos, false); + state.getBlock().destroy(level, pos, state); + + event.setCanceled(true); + event.setCancellationResult(InteractionResult.sidedSuccess(level.isClientSide)); + } + } } else if (!InteractionUtil.isInAlternateUseMode(player) && InteractionUtil.canWrenchRotate(stack)) { // 未潜行 + 扳手:切换锁定状态 BlockEntity be = level.getBlockEntity(hit.getBlockPos()); diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java index eb23423..fe2a81e 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/PatternProviderScreenMixin.java @@ -66,7 +66,7 @@ public abstract class PatternProviderScreenMixin boolean enabled = eap$AdvancedBlockingEnabled; var title = net.minecraft.network.chat.Component.literal("智能阻挡"); var line = enabled - ? net.minecraft.network.chat.Component.literal("已启用:对于同一种配方将不再阻挡") + ? net.minecraft.network.chat.Component.literal("已启用:对于同一种配方将不再阻挡(需要开启原版的阻挡模式)") : net.minecraft.network.chat.Component.literal("已禁用:这么好的功能为什么不打开呢"); return java.util.List.of(title, line); } diff --git a/src/main/resources/data/extendedae_plus/loot_tables/blocks/1024x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/loot_tables/blocks/1024x_crafting_accelerator.json new file mode 100644 index 0000000..d509338 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/loot_tables/blocks/1024x_crafting_accelerator.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { "type": "minecraft:item", "name": "extendedae_plus:1024x_crafting_accelerator" } + ], + "conditions": [ { "condition": "minecraft:survives_explosion" } ] + } + ] +} diff --git a/src/main/resources/data/extendedae_plus/loot_tables/blocks/16x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/loot_tables/blocks/16x_crafting_accelerator.json new file mode 100644 index 0000000..44ffcb5 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/loot_tables/blocks/16x_crafting_accelerator.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { "type": "minecraft:item", "name": "extendedae_plus:16x_crafting_accelerator" } + ], + "conditions": [ { "condition": "minecraft:survives_explosion" } ] + } + ] +} diff --git a/src/main/resources/data/extendedae_plus/loot_tables/blocks/256x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/loot_tables/blocks/256x_crafting_accelerator.json new file mode 100644 index 0000000..96d7909 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/loot_tables/blocks/256x_crafting_accelerator.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { "type": "minecraft:item", "name": "extendedae_plus:256x_crafting_accelerator" } + ], + "conditions": [ { "condition": "minecraft:survives_explosion" } ] + } + ] +} diff --git a/src/main/resources/data/extendedae_plus/loot_tables/blocks/4x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/loot_tables/blocks/4x_crafting_accelerator.json new file mode 100644 index 0000000..de2609b --- /dev/null +++ b/src/main/resources/data/extendedae_plus/loot_tables/blocks/4x_crafting_accelerator.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { "type": "minecraft:item", "name": "extendedae_plus:4x_crafting_accelerator" } + ], + "conditions": [ { "condition": "minecraft:survives_explosion" } ] + } + ] +} diff --git a/src/main/resources/data/extendedae_plus/loot_tables/blocks/64x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/loot_tables/blocks/64x_crafting_accelerator.json new file mode 100644 index 0000000..689564c --- /dev/null +++ b/src/main/resources/data/extendedae_plus/loot_tables/blocks/64x_crafting_accelerator.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { "type": "minecraft:item", "name": "extendedae_plus:64x_crafting_accelerator" } + ], + "conditions": [ { "condition": "minecraft:survives_explosion" } ] + } + ] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 64b885e..a01207f 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -1,6 +1,11 @@ { "replace": false, "values": [ - "extendedae_plus:wireless_transceiver" + "extendedae_plus:wireless_transceiver", + "extendedae_plus:4x_crafting_accelerator", + "extendedae_plus:16x_crafting_accelerator", + "extendedae_plus:64x_crafting_accelerator", + "extendedae_plus:256x_crafting_accelerator", + "extendedae_plus:1024x_crafting_accelerator" ] } diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json new file mode 100644 index 0000000..a01207f --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "extendedae_plus:wireless_transceiver", + "extendedae_plus:4x_crafting_accelerator", + "extendedae_plus:16x_crafting_accelerator", + "extendedae_plus:64x_crafting_accelerator", + "extendedae_plus:256x_crafting_accelerator", + "extendedae_plus:1024x_crafting_accelerator" + ] +}