From e438021e847d365ec0710dd253dd1eeee5205e0a Mon Sep 17 00:00:00 2001 From: GaLi <3096147684@qq.com> Date: Fri, 20 Mar 2026 16:01:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B3=A8=E5=86=8C=E9=95=9C=E5=83=8F=E6=A0=B7?= =?UTF-8?q?=E6=9D=BF=E4=BE=9B=E5=BA=94=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/extendedae_plus/ExtendedAEPlus.java | 8 ++++++++ .../content/ae2/MirrorPatternProviderBlock.java | 10 ++++++++++ .../ae2/MirrorPatternProviderBlockEntity.java | 12 ++++++++++++ .../com/extendedae_plus/init/ModBlockEntities.java | 7 +++++++ .../java/com/extendedae_plus/init/ModBlocks.java | 6 ++++++ .../com/extendedae_plus/init/ModCapabilities.java | 12 ++++++++++++ .../com/extendedae_plus/init/ModCreativeTabs.java | 3 ++- .../java/com/extendedae_plus/init/ModItems.java | 4 ++++ .../blockstates/mirror_pattern_provider.json | 9 +++++++++ .../assets/extendedae_plus/lang/en_us.json | 2 ++ .../assets/extendedae_plus/lang/zh_cn.json | 2 ++ .../models/block/mirror_pattern_provider.json | 3 +++ .../models/item/mirror_pattern_provider.json | 3 +++ .../loot_table/blocks/mirror_pattern_provider.json | 14 ++++++++++++++ 14 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlock.java create mode 100644 src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlockEntity.java create mode 100644 src/main/resources/assets/extendedae_plus/blockstates/mirror_pattern_provider.json create mode 100644 src/main/resources/assets/extendedae_plus/models/block/mirror_pattern_provider.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/mirror_pattern_provider.json create mode 100644 src/main/resources/data/extendedae_plus/loot_table/blocks/mirror_pattern_provider.json diff --git a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java index e077606..00dd8bb 100644 --- a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java +++ b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java @@ -9,6 +9,7 @@ import appeng.items.parts.PartModelsHelper; import com.extendedae_plus.api.ids.EAPComponents; import com.extendedae_plus.api.storage.InfinityBigIntegerCellHandler; import com.extendedae_plus.config.ModConfigs; +import com.extendedae_plus.content.ae2.MirrorPatternProviderBlockEntity; import com.extendedae_plus.content.matrix.CrafterCorePlusBlockEntity; import com.extendedae_plus.content.matrix.PatternCorePlusBlockEntity; import com.extendedae_plus.content.matrix.SpeedCorePlusBlockEntity; @@ -140,6 +141,13 @@ public class ExtendedAEPlus { null ); + ((AEBaseEntityBlock) ModBlocks.MIRROR_PATTERN_PROVIDER_BLOCK.get()).setBlockEntity( + MirrorPatternProviderBlockEntity.class, + ModBlockEntities.MIRROR_PATTERN_PROVIDER_BE.get(), + null, + null + ); + LOGGER.info("Bound UploadCoreBlockEntity to assembler matrix upload core block."); } catch (Throwable t) { LOGGER.error("Failed to bind block entities: {}", t.toString()); diff --git a/src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlock.java b/src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlock.java new file mode 100644 index 0000000..a4bd79c --- /dev/null +++ b/src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlock.java @@ -0,0 +1,10 @@ +package com.extendedae_plus.content.ae2; + +import appeng.block.crafting.PatternProviderBlock; + +public class MirrorPatternProviderBlock extends PatternProviderBlock { + + public MirrorPatternProviderBlock() { + super(); + } +} diff --git a/src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlockEntity.java b/src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlockEntity.java new file mode 100644 index 0000000..b8e7b72 --- /dev/null +++ b/src/main/java/com/extendedae_plus/content/ae2/MirrorPatternProviderBlockEntity.java @@ -0,0 +1,12 @@ +package com.extendedae_plus.content.ae2; + +import appeng.blockentity.crafting.PatternProviderBlockEntity; +import com.extendedae_plus.init.ModBlockEntities; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.state.BlockState; + +public class MirrorPatternProviderBlockEntity extends PatternProviderBlockEntity { + public MirrorPatternProviderBlockEntity(BlockPos pos, BlockState blockState) { + super(ModBlockEntities.MIRROR_PATTERN_PROVIDER_BE.get(), pos, blockState); + } +} diff --git a/src/main/java/com/extendedae_plus/init/ModBlockEntities.java b/src/main/java/com/extendedae_plus/init/ModBlockEntities.java index 069aed6..1de8e62 100644 --- a/src/main/java/com/extendedae_plus/init/ModBlockEntities.java +++ b/src/main/java/com/extendedae_plus/init/ModBlockEntities.java @@ -1,6 +1,7 @@ package com.extendedae_plus.init; import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.content.ae2.MirrorPatternProviderBlockEntity; import com.extendedae_plus.content.matrix.CrafterCorePlusBlockEntity; import com.extendedae_plus.content.matrix.PatternCorePlusBlockEntity; import com.extendedae_plus.content.matrix.SpeedCorePlusBlockEntity; @@ -77,4 +78,10 @@ public final class ModBlockEntities { BLOCK_ENTITY_TYPES.register("assembler_matrix_pattern_plus", ()-> BlockEntityType.Builder.of(PatternCorePlusBlockEntity::new, ModBlocks.ASSEMBLER_MATRIX_PATTERN_PLUS.get()).build(null)); + + //镜像样板供应器 + public static final DeferredHolder,BlockEntityType> MIRROR_PATTERN_PROVIDER_BE= + BLOCK_ENTITY_TYPES.register("mirror_pattern_provider", + ()-> BlockEntityType.Builder.of(MirrorPatternProviderBlockEntity::new, + ModBlocks.MIRROR_PATTERN_PROVIDER_BLOCK.get()).build(null)); } diff --git a/src/main/java/com/extendedae_plus/init/ModBlocks.java b/src/main/java/com/extendedae_plus/init/ModBlocks.java index 51a275b..677d7cf 100644 --- a/src/main/java/com/extendedae_plus/init/ModBlocks.java +++ b/src/main/java/com/extendedae_plus/init/ModBlocks.java @@ -1,6 +1,7 @@ package com.extendedae_plus.init; import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.content.ae2.MirrorPatternProviderBlock; import com.extendedae_plus.content.controller.NetworkPatternControllerBlock; import com.extendedae_plus.content.matrix.CrafterCorePlusBlock; import com.extendedae_plus.content.matrix.PatternCorePlusBlock; @@ -125,4 +126,9 @@ public final class ModBlocks { .requiresCorrectToolForDrops() ) ); + + public static final DeferredBlock MIRROR_PATTERN_PROVIDER_BLOCK = BLOCKS.register( + "mirror_pattern_provider", + MirrorPatternProviderBlock::new + ); } diff --git a/src/main/java/com/extendedae_plus/init/ModCapabilities.java b/src/main/java/com/extendedae_plus/init/ModCapabilities.java index 5a2150b..7c3b5e8 100644 --- a/src/main/java/com/extendedae_plus/init/ModCapabilities.java +++ b/src/main/java/com/extendedae_plus/init/ModCapabilities.java @@ -35,6 +35,18 @@ public final class ModCapabilities { (be, ctx) -> (IInWorldGridNodeHost) be ); + event.registerBlockEntity( + AECapabilities.IN_WORLD_GRID_NODE_HOST, + ModBlockEntities.MIRROR_PATTERN_PROVIDER_BE.get(), + (be, ctx) -> (IInWorldGridNodeHost) be + ); + + event.registerBlockEntity( + AECapabilities.GENERIC_INTERNAL_INV, + ModBlockEntities.MIRROR_PATTERN_PROVIDER_BE.get(), + (be, ctx) -> be.getLogic().getReturnInv() + ); + // 并行处理单元(CraftingUnitBlock -> CraftingBlockEntity 实现了 IInWorldGridNodeHost) // 未注册该能力时,AE 电缆通过 GridHelper.getNodeHost(...) 无法发现节点,导致节点不入网, // 方块虽然能成型并提供并行度,但 getMainNode().isOnline() 为 false,从而显示“设备离线”。 diff --git a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java index 1eb9320..c056b67 100644 --- a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java +++ b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java @@ -34,7 +34,8 @@ public final class ModCreativeTabs { ModItems.INFINITY_BIGINTEGER_CELL_ITEM.get().getDefaultInstance(), ModItems.ASSEMBLER_MATRIX_SPEED_PLUS.get().getDefaultInstance(), ModItems.ASSEMBLER_MATRIX_CRAFTER_PLUS.get().getDefaultInstance(), - ModItems.ASSEMBLER_MATRIX_PATTERN_PLUS.get().getDefaultInstance() + ModItems.ASSEMBLER_MATRIX_PATTERN_PLUS.get().getDefaultInstance(), + ModItems.MIRROR_PATTERN_PROVIDER.get().getDefaultInstance() ).forEach(output::accept); // 放入四个预设的 stacks(x2,x4,x8,x16),使用 ModItems 工厂创建 diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index 4739b30..18d73ff 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -80,6 +80,10 @@ public final class ModItems { "assembler_matrix_pattern_plus", () -> new BlockItem(ModBlocks.ASSEMBLER_MATRIX_PATTERN_PLUS.get(), new Item.Properties()) ); + public static final DeferredItem MIRROR_PATTERN_PROVIDER = ITEMS.register( + "mirror_pattern_provider", + () -> new BlockItem(ModBlocks.MIRROR_PATTERN_PROVIDER_BLOCK.get(), new Item.Properties()) + ); static final DeferredItem NETWORK_PATTERN_CONTROLLER = ITEMS.register( "network_pattern_controller", () -> new BlockItem(ModBlocks.NETWORK_PATTERN_CONTROLLER.get(), new Item.Properties()) diff --git a/src/main/resources/assets/extendedae_plus/blockstates/mirror_pattern_provider.json b/src/main/resources/assets/extendedae_plus/blockstates/mirror_pattern_provider.json new file mode 100644 index 0000000..a68180e --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/blockstates/mirror_pattern_provider.json @@ -0,0 +1,9 @@ +{ + "multipart": [ + { + "apply": { + "model": "extendedae_plus:block/mirror_pattern_provider" + } + } + ] +} diff --git a/src/main/resources/assets/extendedae_plus/lang/en_us.json b/src/main/resources/assets/extendedae_plus/lang/en_us.json index 3e67268..4288b7d 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -17,6 +17,7 @@ "item.extendedae_plus.256x_crafting_accelerator": "256x Crafting Accelerator", "item.extendedae_plus.1024x_crafting_accelerator": "1024x Crafting Accelerator", "item.extendedae_plus.network_pattern_controller": "Pattern Provider Status Controller", + "item.extendedae_plus.mirror_pattern_provider": "Mirror Pattern Provider", "item.extendedae_plus.assembler_matrix_upload_core": "Assembly Matrix Upload Core", "item.extendedae_plus.channel_card": "Channel Card", "item.extendedae_plus.virtual_crafting_card": "Virtual Crafting Card", @@ -46,6 +47,7 @@ "block.extendedae_plus.256x_crafting_accelerator": "256x Crafting Accelerator", "block.extendedae_plus.1024x_crafting_accelerator": "1024x Crafting Accelerator", "block.extendedae_plus.network_pattern_controller": "Pattern Provider Status Controller", + "block.extendedae_plus.mirror_pattern_provider": "Mirror Pattern Provider", "block.extendedae_plus.assembler_matrix_upload_core": "Assembly Matrix Upload Core", "block.extendedae_plus.assembler_matrix_speed_plus": "Assembler Matrix Speed Core Plus", "block.extendedae_plus.assembler_matrix_crafter_plus": "Assembler Matrix Crafter Core Plus", diff --git a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json index 783796d..aa0b5ab 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -17,6 +17,7 @@ "item.extendedae_plus.256x_crafting_accelerator": "256x并行处理单元", "item.extendedae_plus.1024x_crafting_accelerator": "1024x并行处理单元", "item.extendedae_plus.network_pattern_controller": "样板供应器状态控制器", + "item.extendedae_plus.mirror_pattern_provider": "镜像样板供应器", "item.extendedae_plus.assembler_matrix_upload_core": "装配矩阵上传核心", "item.extendedae_plus.channel_card": "频道卡", "item.extendedae_plus.virtual_crafting_card": "虚拟合成卡", @@ -46,6 +47,7 @@ "block.extendedae_plus.256x_crafting_accelerator": "256x并行处理单元", "block.extendedae_plus.1024x_crafting_accelerator": "1024x并行处理单元", "block.extendedae_plus.network_pattern_controller": "样板供应器状态控制器", + "block.extendedae_plus.mirror_pattern_provider": "镜像样板供应器", "block.extendedae_plus.assembler_matrix_upload_core": "装配矩阵上传核心", "block.extendedae_plus.assembler_matrix_speed_plus": "超级装配矩阵速度核心", "block.extendedae_plus.assembler_matrix_crafter_plus": "超级装配矩阵合成核心", diff --git a/src/main/resources/assets/extendedae_plus/models/block/mirror_pattern_provider.json b/src/main/resources/assets/extendedae_plus/models/block/mirror_pattern_provider.json new file mode 100644 index 0000000..40cbea7 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/block/mirror_pattern_provider.json @@ -0,0 +1,3 @@ +{ + "parent": "ae2:block/pattern_provider_oriented" +} diff --git a/src/main/resources/assets/extendedae_plus/models/item/mirror_pattern_provider.json b/src/main/resources/assets/extendedae_plus/models/item/mirror_pattern_provider.json new file mode 100644 index 0000000..08c5436 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/mirror_pattern_provider.json @@ -0,0 +1,3 @@ +{ + "parent": "extendedae_plus:block/mirror_pattern_provider" +} diff --git a/src/main/resources/data/extendedae_plus/loot_table/blocks/mirror_pattern_provider.json b/src/main/resources/data/extendedae_plus/loot_table/blocks/mirror_pattern_provider.json new file mode 100644 index 0000000..df53edd --- /dev/null +++ b/src/main/resources/data/extendedae_plus/loot_table/blocks/mirror_pattern_provider.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { "type": "minecraft:item", "name": "extendedae_plus:mirror_pattern_provider" } + ], + "conditions": [ + { "condition": "minecraft:survives_explosion" } + ] + } + ] +}