From 331acfccd6ab5dfb6b4ae9241af054a461169a07 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Tue, 11 Nov 2025 11:56:09 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=90=88=E6=88=90?= =?UTF-8?q?=E6=95=B0=E9=87=8F=E5=B0=8F=E4=BA=8Eprovider=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=97=B6=E4=BC=9A=E5=87=BA=E7=8E=B0multiplier=E7=AD=89?= =?UTF-8?q?=E4=BA=8E0=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ae2/autopattern/CraftingSimulationStateMixin.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java index c923afa..c63a769 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java @@ -29,7 +29,7 @@ public abstract class CraftingSimulationStateMixin { private static void onBuildCraftingPlan(CraftingSimulationState state, CraftingCalculation calculation, long calculatedAmount, CallbackInfoReturnable cir) { CraftingSimulationStateAccessor accessor = (CraftingSimulationStateAccessor) state; Map crafts = accessor.getCrafts(); - // 新建 Map 存放最终分配后的 crafts + // 存放最终分配后的 crafts Map finalCrafts = new LinkedHashMap<>(); for (Map.Entry entry : crafts.entrySet()) { @@ -64,6 +64,11 @@ public abstract class CraftingSimulationStateMixin { CraftingService craftingService = (CraftingService) ((ICraftingCalculationExt) calculation).getGrid().getCraftingService(); int providerCount = Math.max(Iterables.size(craftingService.getProviders(processingPattern)), 1); + // totalAmount < providerCount → 只激活 totalAmount 台 provider + if (totalAmount < providerCount) { + providerCount = (int) totalAmount; + } + long base = totalAmount / providerCount; long remainder = totalAmount % providerCount; From 16bae740a140a6d0c0c91e3e88819089ca3d8f51 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Tue, 11 Nov 2025 12:45:01 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E6=99=BA=E8=83=BD=E5=80=8D=E5=A2=9E?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=81=A5=E5=85=A8=E6=80=A7=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CraftingSimulationStateMixin.java | 7 +++++-- .../util/smartDoubling/PatternScaler.java | 21 ++++++++++--------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java index c63a769..f6e8a7a 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java @@ -26,7 +26,10 @@ public abstract class CraftingSimulationStateMixin { * 替换 CraftingPlan 构建逻辑,在此统一处理样板倍率 */ @Inject(method = "buildCraftingPlan", at = @At("HEAD")) - private static void onBuildCraftingPlan(CraftingSimulationState state, CraftingCalculation calculation, long calculatedAmount, CallbackInfoReturnable cir) { + private static void onBuildCraftingPlan(CraftingSimulationState state, + CraftingCalculation calculation, + long calculatedAmount, + CallbackInfoReturnable cir) { CraftingSimulationStateAccessor accessor = (CraftingSimulationStateAccessor) state; Map crafts = accessor.getCrafts(); // 存放最终分配后的 crafts @@ -108,4 +111,4 @@ public abstract class CraftingSimulationStateMixin { crafts.clear(); crafts.putAll(finalCrafts); } -} +} \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java b/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java index a0a7d1b..20f6bf6 100644 --- a/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java +++ b/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java @@ -73,17 +73,19 @@ public final class PatternScaler { for (IPatternDetails.IInput input : proc.getInputs()) { long amt = input.getMultiplier(); if (amt <= 0) continue; + var possible = input.getPossibleInputs(); + if (possible == null || possible.length == 0) continue; + AEKey key = possible[0].what(); + long unitMul = getUnitMultiplier(key); + long limitInUnit = (long) limit * unitMul; - AEKey key = input.getPossibleInputs()[0].what(); - long unitMultiplier = getUnitMultiplier(key); - long limitInAEUnit = (long) limit * unitMultiplier; - - long allowedMul = limitInAEUnit / amt; - allowedMul = Math.max(1, allowedMul); // 至少 1 - minMul = Math.min(minMul, allowedMul); + long allowed = limitInUnit / amt; + allowed = Math.max(1L, allowed); + minMul = Math.min(minMul, allowed); } - return minMul != Long.MAX_VALUE ? (int) Math.min(minMul, Integer.MAX_VALUE) : 0; + if (minMul == Long.MAX_VALUE) return 0; // 无有效输入 → 不限制 + return minMul > Integer.MAX_VALUE ? Integer.MAX_VALUE : (int) minMul; } private static long getUnitMultiplier(AEKey key) { @@ -95,8 +97,7 @@ public final class PatternScaler { if ("me.ramidzkh.mekae2.ae2.MekanismKey".equals(key.getClass().getName())) { return 1000L; } - } catch (Exception ignored) { - } + } catch (Exception ignored) {} return 1L; } } \ No newline at end of file From 329e0d2f6cbb1883a69fcb41ea9ce1a57debe966 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Tue, 11 Nov 2025 18:36:32 +0800 Subject: [PATCH 03/19] =?UTF-8?q?=E7=95=A5=E5=BE=AE=E8=B0=83=E9=AB=98?= =?UTF-8?q?=E6=97=A0=E7=BA=BF=E6=94=B6=E5=8F=91=E5=99=A8=E7=A1=AC=E5=BA=A6?= =?UTF-8?q?=EF=BC=9B=E6=B7=BB=E5=8A=A0=E9=94=81=E5=AE=9A=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=8C=96=E6=8E=98=E9=80=9F=E5=BA=A6=E4=B8=BA?= =?UTF-8?q?=E5=8E=9F=E6=9D=A5=E7=9A=8410%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 ++ .../wireless/WirelessTransceiverBlock.java | 16 ++++++++++++++++ .../java/com/extendedae_plus/init/ModBlocks.java | 10 +++++----- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3a5e47..626be86 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,8 @@ - Added version restrictions for MAE2 - 为部分文本添加翻译键支持,改善国际化体验 - Added translation key support for some previously hardcoded text, improving internationalization experience +- 略微提升无线收发器基础硬度,锁定状态下挖掘速度降至10% + - Slightly increased wireless transceiver base hardness, mining speed reduced to 10% when locked ### Fixed / 修复 - 修复供应器高亮在服务器中不显示的问题 diff --git a/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java b/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java index 0e3dd0b..0428722 100644 --- a/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java +++ b/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java @@ -11,6 +11,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.EntityBlock; @@ -154,6 +155,21 @@ public class WirelessTransceiverBlock extends Block implements EntityBlock { super.onRemove(state, level, pos, newState, isMoving); } + @Override + public float getDestroyProgress(BlockState state, Player player, BlockGetter level, BlockPos pos) { + // 基础挖掘进度 + float baseProgress = super.getDestroyProgress(state, player, level, pos); + + // 获取方块实体并检查锁定状态 + if (level.getBlockEntity(pos) instanceof WirelessTransceiverBlockEntity te) { + if (te.isLocked()) { + // 如果被锁定,大幅降低挖掘速度 + return baseProgress * 0.1f; // 只有10%的挖掘速度 + } + } + return baseProgress; // 正常挖掘速度 + } + @Override public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { if (level.isClientSide) return null; diff --git a/src/main/java/com/extendedae_plus/init/ModBlocks.java b/src/main/java/com/extendedae_plus/init/ModBlocks.java index ae722b4..c237109 100644 --- a/src/main/java/com/extendedae_plus/init/ModBlocks.java +++ b/src/main/java/com/extendedae_plus/init/ModBlocks.java @@ -1,12 +1,12 @@ package com.extendedae_plus.init; -import com.extendedae_plus.ExtendedAEPlus; -import com.extendedae_plus.content.wireless.WirelessTransceiverBlock; -import com.extendedae_plus.content.matrix.UploadCoreBlock; -import com.extendedae_plus.content.crafting.EPlusCraftingUnitType; import appeng.block.crafting.CraftingUnitBlock; import appeng.blockentity.crafting.CraftingBlockEntity; import appeng.core.definitions.AEBlockEntities; +import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.content.crafting.EPlusCraftingUnitType; +import com.extendedae_plus.content.matrix.UploadCoreBlock; +import com.extendedae_plus.content.wireless.WirelessTransceiverBlock; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MapColor; @@ -24,7 +24,7 @@ public final class ModBlocks { () -> new WirelessTransceiverBlock( BlockBehaviour.Properties.of() .mapColor(MapColor.METAL) - .strength(1.5F, 6.0F) + .strength(2F, 6.0F) .requiresCorrectToolForDrops() ) ); From 7157e3e7ce9385d960dc01da3754a55c534a6a2c Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Wed, 12 Nov 2025 16:47:52 +0800 Subject: [PATCH 04/19] =?UTF-8?q?=E5=90=9E=E5=99=AC=E7=9B=98=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=96=B0=E5=90=88=E6=88=90=E7=89=A9=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extendedae_plus/init/ModCreativeTabs.java | 18 +++++--- .../com/extendedae_plus/init/ModItems.java | 46 +++++++++++++++++-- .../extendedae_plus/util/ModCheckUtils.java | 4 ++ .../assets/extendedae_plus/lang/en_us.json | 3 ++ .../assets/extendedae_plus/lang/zh_cn.json | 3 ++ 5 files changed, 63 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java index 75a95b7..08ffd95 100644 --- a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java +++ b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java @@ -8,11 +8,8 @@ import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.RegistryObject; public final class ModCreativeTabs { - private ModCreativeTabs() {} - public static final DeferredRegister TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, ExtendedAEPlus.MODID); - public static final RegistryObject MAIN = TABS.register("main", () -> CreativeModeTab.builder() .title(Component.translatable("itemGroup." + ExtendedAEPlus.MODID + ".main")) @@ -35,11 +32,20 @@ public final class ModCreativeTabs { output.accept(ModItems.createEntitySpeedCardStack(4)); output.accept(ModItems.createEntitySpeedCardStack(8)); output.accept(ModItems.createEntitySpeedCardStack(16)); - - output.accept(ModItems.INFINITY_BIGINTEGER_CELL_ITEM.get()); - // 频道卡 output.accept(ModItems.CHANNEL_CARD.get()); + + output.accept(ModItems.OBLIVION_SINGULARITY.get()); + output.accept(ModItems.STORAGE_CORE.get()); + if (ModItems.ENERGY_CORE != null) { + output.accept(ModItems.ENERGY_CORE.get()); + } + if (ModItems.QUANTUM_STORAGE_CORE != null) { + output.accept(ModItems.QUANTUM_STORAGE_CORE.get()); + } + output.accept(ModItems.SPATIAL_CORE.get()); + + output.accept(ModItems.INFINITY_BIGINTEGER_CELL_ITEM.get()); }) .build()); } diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index 79b4209..2fab060 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -8,15 +8,15 @@ import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.ae.items.EntitySpeedTickerPartItem; import com.extendedae_plus.ae.items.InfinityBigIntegerCellItem; +import com.extendedae_plus.util.ModCheckUtils; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; public final class ModItems { - private ModItems() {} - public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, ExtendedAEPlus.MODID); public static final RegistryObject WIRELESS_TRANSCEIVER = ITEMS.register( @@ -63,7 +63,7 @@ public final class ModItems { public static final RegistryObject ENTITY_TICKER_PART_ITEM = ITEMS.register( "entity_speed_ticker", - () -> new EntitySpeedTickerPartItem(new Item.Properties()) + () -> new EntitySpeedTickerPartItem(new Item.Properties()) ); // AE Upgrade Cards: 实体加速卡(四个等级:x2,x4,x8,x16) @@ -73,7 +73,7 @@ public final class ModItems { () -> new EntitySpeedCardItem(new Item.Properties()) ); - public static final RegistryObject INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register( + public static final RegistryObject INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register( "infinity_biginteger_cell", InfinityBigIntegerCellItem::new ); @@ -83,6 +83,42 @@ public final class ModItems { () -> new ChannelCardItem(new Item.Properties()) ); + public static final RegistryObject STORAGE_CORE = ITEMS.register( + "storage_core", + () -> new Item(new Item.Properties()) + ); + public static final RegistryObject SPATIAL_CORE = ITEMS.register( + "spatial_core", + () -> new Item(new Item.Properties()) + ); + public static final RegistryObject OBLIVION_SINGULARITY = ITEMS.register( + "oblivion_singularity", + () -> new Item(new Item.Properties()) + ); + public static final RegistryObject ENERGY_CORE; + public static final RegistryObject QUANTUM_STORAGE_CORE; + + static { + if (ModCheckUtils.isAppfluxLoading()) { + ENERGY_CORE = ITEMS.register( + "energy_core", + () -> new Item(new Item.Properties()) + ); + } else { + ENERGY_CORE = null; + } + + if (ModCheckUtils.isAAELoading()) { + QUANTUM_STORAGE_CORE = ITEMS.register( + "quantum_storage_core", + () -> new Item(new Item.Properties()) + ); + } else { + QUANTUM_STORAGE_CORE = null; + } + } + + private ModItems() {} /** * 为 PartItem 注册 AE2 部件模型。 @@ -99,7 +135,7 @@ public final class ModItems { /** * 工厂:创建带 multiplier 的实体加速卡 ItemStack(2/4/8/16) */ - public static net.minecraft.world.item.ItemStack createEntitySpeedCardStack(int multiplier) { + public static ItemStack createEntitySpeedCardStack(int multiplier) { return EntitySpeedCardItem.withMultiplier(multiplier); } } diff --git a/src/main/java/com/extendedae_plus/util/ModCheckUtils.java b/src/main/java/com/extendedae_plus/util/ModCheckUtils.java index 8ecd475..9eb70c0 100644 --- a/src/main/java/com/extendedae_plus/util/ModCheckUtils.java +++ b/src/main/java/com/extendedae_plus/util/ModCheckUtils.java @@ -82,4 +82,8 @@ public class ModCheckUtils { public static boolean isAppfluxLoading() { return ModCheckUtils.isLoaded(ModCheckUtils.MODID_APPFLUX); } + + public static boolean isAAELoading() { + return ModCheckUtils.isLoaded(ModCheckUtils.MODID_AAE); + } } 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 f30b010..b8190c3 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -24,6 +24,9 @@ "item.extendedae_plus.entity_speed_card.x4": "Entity Acceleration Card (x4)", "item.extendedae_plus.entity_speed_card.x8": "Entity Acceleration Card (x8)", "item.extendedae_plus.entity_speed_card.x16": "Entity Acceleration Card (x16)", + "item.extendedae_plus.storage_core": "Storage Core", + "item.extendedae_plus.spatial_core": "Spatial Core", + "item.extendedae_plus.oblivion_singularity": "Oblivion Singularity", "item.extendedae_plus.infinity_biginteger_cell": "§4De§cvou§6rer §eof §aCo§bsmic §dSilence", "tooltip.extendedae_plus.infinity_biginteger_cell.summon1": "§6Through ninefold sacrifice, the Void echoes§r—§8Iava, Lord of the Void§r, bestows upon thee this artifact", "tooltip.extendedae_plus.infinity_biginteger_cell.summon2": "§b—§4A §dUni§cverse §eWith§ain §6A §bSin§5gle §9Point", 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 01aeac9..d529f86 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -24,6 +24,9 @@ "item.extendedae_plus.entity_speed_card.x4": "实体加速卡 (x4)", "item.extendedae_plus.entity_speed_card.x8": "实体加速卡 (x8)", "item.extendedae_plus.entity_speed_card.x16": "实体加速卡 (x16)", + "item.extendedae_plus.storage_core": "存储核心", + "item.extendedae_plus.spatial_core": "空间核心", + "item.extendedae_plus.oblivion_singularity": "湮灭奇点", "item.extendedae_plus.infinity_biginteger_cell": "§4吞§c噬§6万§e籁§a的§b寂§d静", "tooltip.extendedae_plus.infinity_biginteger_cell.summon1": "§6九重献祭, 终得虚空回响§r——觐见§8虚空之主Iava§r, 赐汝此物", "tooltip.extendedae_plus.infinity_biginteger_cell.summon2": "§b——§4方§d寸§c之§e间§a, §6自§b有§5千§9寰", From 08cb4a4e080ca7cd8bb940a658d583aacafb8ae7 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Wed, 12 Nov 2025 20:54:59 +0800 Subject: [PATCH 05/19] =?UTF-8?q?=E5=90=9E=E5=99=AC=E7=9B=98=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=96=B0=E5=90=88=E6=88=90=E7=89=A9=E5=93=81=E6=9D=90?= =?UTF-8?q?=E8=B4=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/item/energy_core.json | 4 +++ .../models/item/oblivion_singularity.json | 4 +++ .../models/item/quantum_storage_core.json | 4 +++ .../models/item/spatial_core.json | 4 +++ .../models/item/storage_core.json | 4 +++ .../textures/item/energy_core.png | Bin 0 -> 2678 bytes .../textures/item/energy_core.png.mcmeta | 9 +++++ .../textures/item/oblivion_singularity.png | Bin 0 -> 1389 bytes .../item/oblivion_singularity.png.mcmeta | 31 ++++++++++++++++++ .../textures/item/quantum_storage_core.png | Bin 0 -> 2239 bytes .../item/quantum_storage_core.png.mcmeta | 9 +++++ .../textures/item/spatial_core.png | Bin 0 -> 1754 bytes .../textures/item/storage_core.png | Bin 0 -> 2630 bytes .../textures/item/storage_core.png.mcmeta | 9 +++++ .../extendedae_plus/recipes/storage_core.json | 26 +++++++++++++++ 15 files changed, 104 insertions(+) create mode 100644 src/main/resources/assets/extendedae_plus/models/item/energy_core.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/oblivion_singularity.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/spatial_core.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/storage_core.json create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/energy_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/energy_core.png.mcmeta create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png.mcmeta create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/spatial_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/storage_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/storage_core.png.mcmeta create mode 100644 src/main/resources/data/extendedae_plus/recipes/storage_core.json diff --git a/src/main/resources/assets/extendedae_plus/models/item/energy_core.json b/src/main/resources/assets/extendedae_plus/models/item/energy_core.json new file mode 100644 index 0000000..18b542f --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/energy_core.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/energy_core" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/oblivion_singularity.json b/src/main/resources/assets/extendedae_plus/models/item/oblivion_singularity.json new file mode 100644 index 0000000..5c8cc03 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/oblivion_singularity.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/oblivion_singularity" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json b/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json new file mode 100644 index 0000000..d296256 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/quantum_storage_core" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json b/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json new file mode 100644 index 0000000..9fd37c2 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/spatial_core" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/storage_core.json b/src/main/resources/assets/extendedae_plus/models/item/storage_core.json new file mode 100644 index 0000000..e4bf815 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/storage_core.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/storage_core" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png b/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png new file mode 100644 index 0000000000000000000000000000000000000000..9326bb9cde480c63930972e1dc6a29f33b251c4f GIT binary patch literal 2678 zcmb_e4NwzT9$%nCDHKYJ2%;@Z>iOKpg;*AgcBMNH@h21NwOikKtM&* zt4g(FRn%IM>m7rZ8(S-bUk4~$s{=}f-knk`Q}B~A_(8{>+M(*b@O9SOkLldbe!PAA zd%yqh|MA}2s9WD5}F<>$Oyp!aG5 zA;^8FNtY#NX_G02w@7K0H*ivi#Rkw26cz2T(M%yH!UitiWYtJ+H=mTiCRQU^N@!87 zEtV@VC6wE_jPev6Q(nlBtR#8?9Oa+@frS%k*kLhS1O4G&q*Gb1*5z5C%nYSVc-zYJ*BCS4YA)iW4#vmth!!krakfs2ZL;B*2`VHB#wu zizbbMH;tq~6m67DR$5vrEtN}od%g@KNz%!I;|M??LYY;h9f(z!JH-&k35?xj6HUAo zb~4fizF5>qfYb>eEVgM{t1uZS5HXp9w#hIl>hx(G$THJ7Te00dZk%OgoSCz5R#5<0 zY#M7T;6+|2;D3U8`tuJAfY@ra(>9)}#bTK@A&BuMz>Ud(JQXeI%50o0ofG(CJHy47 z0GV^0-q@&EJ4cJWUB~n0sZ6C!NrrKylz_vQnyf5eD$IXu02fD#oJQiz8sbbDro-iw zTtVTA2vkj>=mb>DvnFHN6Hr`-qZ9#7^$(z+W>{LJe-X?wl##bvXyCBPLg#Zbn>Ako zPlu6;<;}bu7zXO(<0`aTD$y#4w3Xo!<1`ZBv(#i_DTZJ$g@MEn0#hguRt0V}$DjzQ zGP1NBB~UqLoEjg;GsVu#I>%2`ImQ3XPhMxaWqpb-+oXoN#i!a%SLhT&>wHIEkv zm0%J;>dGePM+R3k*)p5p@tUA$##!qc3FAyM$4Vx9M-y(f7EKC7y&F8?%DUPN@8mGf&Q}|DQ85=XyC&VX`NS zZ~WV1Yb!|Pco$f(oz3a30=!IbHk=j2$qu%X0cy_?2y$DW7#E{Us5)Gom#pUkPp{su z-`x4}1s4vh&idZXoZw+DS{tGL&swi@jb0-!xo&08_9XjhpMO!C^Tpc%%OZ;~Yd}y3 z`yS?39~u;U#D7r;W3AuQ^v;rg)8X2A8+N*d8Urepi9x?4qx44!^(RZoW^> zoWZwy^R74s62s5r-s^1(&uVJj@l~x4^p^Vx);JolbHSsa%7^^9kL3!NwgdfLqoeaX zY5%UHXJa1pk@Vu?@ARZVc%#1$}-rdbzlAefII) z4-ZA2lqKbu8jf_wv<1&NU)V)`#l7 z7KL@r09`}pYW7>A+Dn$Rd505I9vv_EWY2Tb_1&*khS_Jj^(box2ekT8^+e`@aRE5yu6Bgv%e)NDr2EBk8V?j;&)&7pzo|>{@}CGk2rie_UPg{ zMc-K}mS0mJkm(=5v-@9*%J|2{y+eKf?0e&mTiqG&pab{Z%Bi&TQAt$yHz&5QEV;3& zTCAvZ|6_Y&d+Wa7%@tzxm%9#T+&iEB{@}B>(wZu_kKF!lO~|_=yY`QLEGLV^* z^7}(|H=$#(OKNVNZ1^x+?zcPW>h;VSmRXgfY)zKAJ?d=a@V>p7Gome*yPjb(^_@e@ z+J+0RUaZBTps^I&>@0mYefH9pSug)NB%)W4pYYad`jF$3zx6`FRV4vaR2}S literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png.mcmeta new file mode 100644 index 0000000..2d3e00a --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png.mcmeta @@ -0,0 +1,9 @@ +{ + "animation": { + "interpolate": true, + "frames": [ + {"index": 0, "time": 35}, + {"index": 1, "time": 5} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png b/src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png new file mode 100644 index 0000000000000000000000000000000000000000..1542794a9a591e3f93140cd5aaabf8ff06993372 GIT binary patch literal 1389 zcmV-z1(N!SP)EK|000FvNkleQ4W^LNxLh`+==*^vLX;v+KQci&dO~y?gKcoICfMIp3T!=UyRfO5-3X zkDQDlzioBXMDg&zC$_GZNsZHM=8OK(F45ETP73Mo{VX^k=@Yk5PSAKkW}a+3@_j&r zLd9ZsMz+YBn=gB&R23QO1-u7-Y=Jij{TN%1Z6)9tkwA+Hz6!jeHf$@8*abp`&qav>yEaIh@u~ zbV&**Y1<)|6mFD_U%Wgg-j77$?v9H%X=*9;1ehS9adW}>g!N@5dzi5ZuoD9+jS19L zSU&*_r^+bQ1f-r1&@C{LF(2UBz3_pi&W(#tpc4YB90)9x=ir0*$NVLQo^8sdE*PecJe*uk+{RKRyZ$8Mro$K0P(3W@b z0WjFzaZIxhYPv6I1EC2Z`v9!$^cS?&e>2!&L`5ebAkX>>K*1&s0d^w!@)yXsFy23a z4*1$Xz;mXa56}x=e4rW`s=okyoQWMqRI+^FgvwqgLx7z~P-!$u&He!vR$qJog&7>} zHQztLv-`FWAjH@Hfof!^d;r1D#111WSw3(=Wv`PVz)mDD{(@%eQe&ue>w&1q$z3FW zTxbA2(*z*1wz@(33zbjGq}Bd(TT8J_6cQMwfm03o0MLYB!2EZrxue`QTK>P00tz;*G327o`P7YsWQF z{VE`%eY<9jdF`&^jj&Lj-@6jGf3R~+Fk!q=>wy{?ASOEVq0z<{roKYV@E)>!KwAKA z_7gQ-03Xm6KwZfjGy8!2g{xn-oAJTsUxy_hz_5T#5b11{BkhV0P&0b}j=b~Q>jByD z_{wJYe4x7i#0MahMDa#>2j>As2EfE`S#f1-Q$>9YdF0Kh_1R%W1=Ui)HK@+U7l4FK z90Ke_q9xv#4`>U(m=7qv042g(L7w~tbboMfuRni*_77ek8j`prdml*ymedxiJ1~2I%@)u;pBt%+L(VnfM6S6017s72qfeKsI<|3A{iH0;*IMn_LLA|2zz!oS zIqd`FSv~*?HgO2B6N#2EBR(MG!k7=pxN!UafyM_Q6yk#;3m^OA0}u*QGW$U5f$A@m zH?5Kazzd%J1&joKs=q)0OR3`rb{J7+`9Ouqo==7VJCSI{x$ze?0o2%-571@WKfq?> zWcI=T{eI!}`l!Uv6CYqd5v+uGBM}O{uk6V_0GRlJ56E92fYqVZMu7^64?wa==#{k( zBoy|*Aiz!}%s69zfu?Kf_yCUy`(SE(zd(dSeBk-}g=e=K;=X5MM$z5-iNpzZKaqpb z<^chg4`88UA(^K30iMejA3%VY_Yac#3lv{4<^$*Z%B0rlB_(zkQAqXyRYYUU2ZVDamYHlr>200000NkvXXu0mjf%1@9C literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png.mcmeta new file mode 100644 index 0000000..4e98127 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png.mcmeta @@ -0,0 +1,31 @@ +{ + "animation": { + "interpolate": true, + "frametime": 2, + "frames": [ + 0, + {"index": 1, "time": 1}, + {"index": 2, "time": 1}, + {"index": 3, "time": 1}, + {"index": 4, "time": 1}, + {"index": 1, "time": 1}, + {"index": 2, "time": 1}, + {"index": 3, "time": 1}, + {"index": 4, "time": 1}, + {"index": 15, "time": 5}, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + {"index": 15, "time": 5}, + 0, + {"index": 4, "time": 1}, + {"index": 3, "time": 1}, + {"index": 2, "time": 1}, + {"index": 1, "time": 1}, + {"index": 4, "time": 1}, + {"index": 3, "time": 1}, + {"index": 2, "time": 1}, + {"index": 1, "time": 1}, + {"index": 15, "time": 25} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png new file mode 100644 index 0000000000000000000000000000000000000000..598a05ed99da77821d22214ef525623be23df2d6 GIT binary patch literal 2239 zcmbVO3s4kg9AA6@DVl^cik55}BAR=RUK2ZPc80W^cdU{e8dR@Bi5U zTzUHB)B*j5^+OP3fZb-zfY(9rL?grD@9^@D!|?K$&o*5~kp4018HUuX9f}}*4++j} zCEGEH;Y5#y<;5JJDf0Lr8bO{FH!lFf|YS+Fi%2Cmh|1cr7&lzA3xf+~n+JJQi) zQ35Efp>U2QwWx{Kn9MmQqs}}Q)sk8RL23z#!YP`eNQN|{!2^SG67OO%tP_J`@Xms{ z6~)I8L}6i}rckF5rCfrdXP%vUTJ zwAvkm#}}gY%E3Irj1fhwkDxT98dDdL=R!DNzLeJ`&T|CF10LX2WQe6gSf5)|MA1W%yW!Olsqg9Sn#m9fbe;9F*KA$CRxlAB`6Ht z>AGAv9E{y7E3B6TcB=)0F>3^YXIzw-GP%q~+{C*$9MF0_PP0Z5*V7y@8tELpmUi{* zw~Ac8T3K~}cbD@b2RZ&x)dG0r7;|uv0tVcu(;INJmL_ph&(gdem|c3n^{`Em1o)w` zd3Up_u6W33q9|b0nsm61*U~se>diRoA_30QIwK%moX({)sNLMvAdF3rVd;v4-$y2x zA6(@LXje}#ET{Im1>@8r10D-L7VeXeM^X;%FLVP)`jFyxtIMKGDP$!uAs6QEKbwnq zka?Lcc)0aPD`mH*d#&H68UK&&*plauS#t455yg?xGO?u2IG`N!AHnqA}8)_}^# z`}(Ot^+VV_`(LVvFKdomJ1(+QzhS*KGP)Prm^_uh&X0Jl@?b<&OOpDO89yt5b)!!F>XPLcX&|=B&-{#%#-I)rOxPZ4`jK9@eef(A(Gh*Dn z&%SOo53d5=fxDwye!~0tdpEA1i!>eDTRMGjN1*BDFW+sQShxG>td?uPhuf{20#Un9 zj8Tr9Xh`U|VK{U>Vt!!C_OVM&lRpnQ-rV^4sc%a>2@@ZyY0K!GmYOzU;GE+n??3lv zG~Ci>{LDSQk*s9Pnz(U+xwRkE8ApYUFK{_d4*Tt|Gk03ZRc8-(zM*`wCJf3{ZGH0N z@JqWU9^Vpw!5JO?)Md-o;)&a5^}TuiX~Auz@|)l z)v2oX*!Y5gt?l%Y&Z$wz{`jVYv8#sqBJSt3MDymI#lNJNq*sTHPhGhDN<^pb*dKFB*y9SiD7^Yk+nJqr zBIhO~V>3&gF(&;xeUADsw=Qbl(YXT|7z1XXBSvqYo)T5M&8_~$u%}G6*1a%i@!yS1 BF6{sS literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta new file mode 100644 index 0000000..2d3e00a --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta @@ -0,0 +1,9 @@ +{ + "animation": { + "interpolate": true, + "frames": [ + {"index": 0, "time": 35}, + {"index": 1, "time": 5} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/spatial_core.png b/src/main/resources/assets/extendedae_plus/textures/item/spatial_core.png new file mode 100644 index 0000000000000000000000000000000000000000..332a64d5b3744c6432a66f3c8714c22db1c1f097 GIT binary patch literal 1754 zcmbVNeNYr-7~fOJNf}T~CWaYtTjN6MZg=mvuhj#Aqd4_|@ES;)roG+w?$*2gaCh+z zND9FOho-_B%0L=sG%KbOWwHo$M$=@G(y+d0Ih`qzAQ2hwSc1N02!a zoVQA?@~op6kvGz;=mW+mFF`bdtjdo{G!p_U>H`5zaAH^ck76jtI+!fU_~yid zswz=99*IPZ5wlU0132k$I5ZBE$p8@srAAQcs6kMc%`mut!pNMYa-x80jI>XzR-G6$ zb=n7BO3(^QJWeoTc$AiK(nx4N#egi6z)96|IHsIsa1aJO5L5+X$plskimIpt#ebnr ze7-{gjIGC$&~aB=cs`**QH!@gH{t=gD_Zf^NC2+@idZc(pm+;3bD8FiL>0+^Rz=w> zis6||mCu-rnyf|(nqA2WtQb+2-zETDv@J03YT)Eb-|T9}g7#P+@9$UW3Cx4*sa)}~+AUA?yF^49vx&YjKI zx-!TG4LA2UdXG>~ojKT@eLW|29GNxs?#qbXKKe=H+#*-g z_D`G7w|>@i{DYx0M^BHOJlK=fTVcKe&tBr8@s-&*+Xg0D#b@(2eBPIl^0s%;d)}l0 z{l12qV;iuXOV{3qqKAIqzwYU3X}&mXzc=ah@qvbY?aikO4?n8c1=I3tzJ0~Cm&pW4|8ecBYlPXI`0(|%>dMsD8v2El(CMF-WhUv~8PCd`NM12q_--WqSjz6-Zy-JX i^p9I!D86#x3ie>$iAecZ*Rt`7^J+x9mp^JqQ* literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/storage_core.png new file mode 100644 index 0000000000000000000000000000000000000000..0b885c0ff326a05a8c26eaf554f3ad9eef4721cf GIT binary patch literal 2630 zcmb_e2~ZSQ8g4}_53;00R$Q{u)x?8HPhWF(W)Q-lOyYpRs3atjp6;HR4l~o^^Z>)* zO4t}-QFevIT`x>XA)-QQT$8dCS(2b6s1c1>U8U5u0=jF&aF|4N-Patm#?mB}+OF#E z*YADr`@jEq?{)c-ltoWW`OOpvf}SuX8`Hu2NpQoHCW2>V`FF>`YqBT#MG1nYhROFh zX!F(x2%5N2uw?o&&5LPPbSW54wDJnS%LC95q+j6oFl-L*gRQ(>a2t@`LoEm_a0X<# z%8Z*miM&HdF7)ylg(()cFo)G~$bvXn@23HQi}x|G-{o{mwBLXX^U|O#cVh@V4Dsa{ zkObKvoM~PHCyHJk)+q>-#c>kW=oA{QRimb~u`r2~Dhwwvf2ufN=oK_JuuKEEK)C|Y?n4bi5ENv6LE(SO(xEMQ+dE9mc z4up|T6rG|M7zXO7VHIXGZE{OK#?A63qX7XvD+Ga~IW1+gQj`iM8Qg|ytV$APY*rp+ z7@X7CI6|kfX~*UpMK)K?tUQ0D$~ln*9RIV*vT86x$DkTktwecVX0z&4s21mSI2fW> zh8bf^^$K92G0q2BWmOztB&-^i(&9=~r?V+hPOD^49YHWCkK-zjs3Clgx9-Xt(f)c>FBOqx16}JRtp%rXqD#6sMFL6jv$Ls8&a4QI1!s)T~uSQ9KC#h^B|6 zlNKDOl@v_`it(37ALV8pjN8tGofAWTxidenE+6B}!z=6m=L{zAmm?L1JzRXlV-M`D zAd$meV8fQ1fujO^1P&YC4dUblN6GBI$^r-qT4pjPSdz;RytTrSVUIYvx+iw`o*f6O zmKt-8cPH&;!>nl=%sKJhZJVd=Thsc?npe+N+}w5fT+-bBl#ZqywWUpopRfP&RSPyA zHQjgaj(lYiZLg{|6&0>C4`y#{Tg+bTNzxvZrd0%g)2#1VRnuFvy?50t)1=ldZymlE z+R~CSFc5A`U6JtJy=@&e$V|GaC3-!gvvV*fi8rv@i{Q&!Dg`^&1(Vl!HMrF!ATDEB`T+LRi#Kfl%x$L}E#>>WVC6qBo}xRio2E(qYG(h;t_fL0H}c}k zF*7&6p$(oMOxYCZ^~UoBbzf!PTzlzK%trN7u{Bj8xYqCHqa&{D`|A~W``1Nlcg`uh z_)>OPe@qF99Gt#qUh`Jng`jv#nEtc{nqK$k+m-6)&zKa!ksI@te*%z~-(B{4{#DjW zCDo=^g?A_187#=2)ZJ9JDSI~F>er_pYdR56gg(FK?Z(ox?hR@EgL5)pYMzqXSY6Tb zIWu6|t$gjn_Shr;K9G|g?(`uaEeP$~IkoiMjqwdbp~v<9mXogAnHOsGw z+mRkcHm7}1{-u82lx2VXb;#kk(08uIM~8k}bk3$|)SUeNjJx99zOu9^LH^S-C8Zdfp35%%FK3X(=l}o! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/storage_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/storage_core.png.mcmeta new file mode 100644 index 0000000..2bf994f --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/textures/item/storage_core.png.mcmeta @@ -0,0 +1,9 @@ + { + "animation": { + "interpolate": true, + "frames": [ + {"index": 0, "time": 35}, + {"index": 1, "time": 5} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/extendedae_plus/recipes/storage_core.json b/src/main/resources/data/extendedae_plus/recipes/storage_core.json new file mode 100644 index 0000000..83159b5 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipes/storage_core.json @@ -0,0 +1,26 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SBS", + "QXQ", + "SBS" + ], + "key": { + "S": { + "item": "ae2:speed_card" + }, + "B": { + "item": "extendedae_plus:64x_crafting_accelerator" + }, + "Q": { + "item": "ae2:spatial_cell_component_2" + }, + "X": { + "item": "ae2:cell_component_256k" + } + }, + "result": { + "item": "extendedae_plus:1024x_crafting_accelerator", + "count": 1 + } +} \ No newline at end of file From 9cda1e8c195ea30e57ef81a22dd0cc9f9a5f2f23 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Thu, 13 Nov 2025 20:33:19 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E5=90=9E=E5=99=AC=E7=9B=98=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=96=B0=E5=90=88=E6=88=90=E7=89=A9=E5=93=81=E6=96=B0?= =?UTF-8?q?=E6=9D=90=E8=B4=A8=EF=BC=8C=E6=B7=BB=E5=8A=A0=E5=90=9E=E5=99=AC?= =?UTF-8?q?=E6=A0=B8=E5=BF=83=EF=BC=8C=E6=9B=B4=E6=8D=A2=E5=90=9E=E5=99=AC?= =?UTF-8?q?=E7=9B=98=E9=85=8D=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extendedae_plus/init/ModCreativeTabs.java | 5 +-- .../com/extendedae_plus/init/ModItems.java | 12 ++++--- .../assets/extendedae_plus/lang/en_us.json | 3 ++ .../assets/extendedae_plus/lang/zh_cn.json | 3 ++ .../models/item/energy_core.json | 4 --- .../models/item/energy_storage_core.json | 4 +++ .../models/item/infinity_core.json | 4 +++ ...nergy_core.png => energy_storage_core.png} | Bin 2678 -> 2691 bytes ....mcmeta => energy_storage_core.png.mcmeta} | 4 +-- .../textures/item/infinity_core.png | Bin 0 -> 3822 bytes .../textures/item/quantum_storage_core.png | Bin 2239 -> 2608 bytes .../item/quantum_storage_core.png.mcmeta | 4 +-- .../textures/item/spatial_core.png | Bin 1754 -> 2223 bytes .../textures/item/storage_core.png.mcmeta | 6 ++-- .../recipes/infinity_biginteger_cell.json | 33 ++++++++++++------ 15 files changed, 54 insertions(+), 28 deletions(-) delete mode 100644 src/main/resources/assets/extendedae_plus/models/item/energy_core.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/infinity_core.json rename src/main/resources/assets/extendedae_plus/textures/item/{energy_core.png => energy_storage_core.png} (52%) rename src/main/resources/assets/extendedae_plus/textures/item/{energy_core.png.mcmeta => energy_storage_core.png.mcmeta} (52%) create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/infinity_core.png diff --git a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java index 08ffd95..52b7650 100644 --- a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java +++ b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java @@ -37,13 +37,14 @@ public final class ModCreativeTabs { output.accept(ModItems.OBLIVION_SINGULARITY.get()); output.accept(ModItems.STORAGE_CORE.get()); - if (ModItems.ENERGY_CORE != null) { - output.accept(ModItems.ENERGY_CORE.get()); + if (ModItems.ENERGY_STORAGE_CORE != null) { + output.accept(ModItems.ENERGY_STORAGE_CORE.get()); } if (ModItems.QUANTUM_STORAGE_CORE != null) { output.accept(ModItems.QUANTUM_STORAGE_CORE.get()); } output.accept(ModItems.SPATIAL_CORE.get()); + output.accept(ModItems.INFINITY_CORE.get()); output.accept(ModItems.INFINITY_BIGINTEGER_CELL_ITEM.get()); }) diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index 2fab060..83c9a85 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -91,21 +91,25 @@ public final class ModItems { "spatial_core", () -> new Item(new Item.Properties()) ); + public static final RegistryObject INFINITY_CORE = ITEMS.register( + "infinity_core", + () -> new Item(new Item.Properties()) + ); public static final RegistryObject OBLIVION_SINGULARITY = ITEMS.register( "oblivion_singularity", () -> new Item(new Item.Properties()) ); - public static final RegistryObject ENERGY_CORE; + public static final RegistryObject ENERGY_STORAGE_CORE; public static final RegistryObject QUANTUM_STORAGE_CORE; static { if (ModCheckUtils.isAppfluxLoading()) { - ENERGY_CORE = ITEMS.register( - "energy_core", + ENERGY_STORAGE_CORE = ITEMS.register( + "energy_storage_core", () -> new Item(new Item.Properties()) ); } else { - ENERGY_CORE = null; + ENERGY_STORAGE_CORE = null; } if (ModCheckUtils.isAAELoading()) { 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 b8190c3..86e9255 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -25,6 +25,9 @@ "item.extendedae_plus.entity_speed_card.x8": "Entity Acceleration Card (x8)", "item.extendedae_plus.entity_speed_card.x16": "Entity Acceleration Card (x16)", "item.extendedae_plus.storage_core": "Storage Core", + "item.extendedae_plus.energy_storage_core": "Energy Storage Core", + "item.extendedae_plus.quantum_storage_core": "Quantum Storage Core", + "item.extendedae_plus.infinity_core": "Devouring Storage Core", "item.extendedae_plus.spatial_core": "Spatial Core", "item.extendedae_plus.oblivion_singularity": "Oblivion Singularity", "item.extendedae_plus.infinity_biginteger_cell": "§4De§cvou§6rer §eof §aCo§bsmic §dSilence", 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 d529f86..b65e188 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -25,8 +25,11 @@ "item.extendedae_plus.entity_speed_card.x8": "实体加速卡 (x8)", "item.extendedae_plus.entity_speed_card.x16": "实体加速卡 (x16)", "item.extendedae_plus.storage_core": "存储核心", + "item.extendedae_plus.energy_storage_core": "能源存储核心", + "item.extendedae_plus.quantum_storage_core": "量子核心", "item.extendedae_plus.spatial_core": "空间核心", "item.extendedae_plus.oblivion_singularity": "湮灭奇点", + "item.extendedae_plus.infinity_core": "吞噬核心", "item.extendedae_plus.infinity_biginteger_cell": "§4吞§c噬§6万§e籁§a的§b寂§d静", "tooltip.extendedae_plus.infinity_biginteger_cell.summon1": "§6九重献祭, 终得虚空回响§r——觐见§8虚空之主Iava§r, 赐汝此物", "tooltip.extendedae_plus.infinity_biginteger_cell.summon2": "§b——§4方§d寸§c之§e间§a, §6自§b有§5千§9寰", diff --git a/src/main/resources/assets/extendedae_plus/models/item/energy_core.json b/src/main/resources/assets/extendedae_plus/models/item/energy_core.json deleted file mode 100644 index 18b542f..0000000 --- a/src/main/resources/assets/extendedae_plus/models/item/energy_core.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "parent": "item/generated", - "textures": { "layer0": "extendedae_plus:item/energy_core" } -} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json b/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json new file mode 100644 index 0000000..ca84dae --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/energy_storage_core" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json b/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json new file mode 100644 index 0000000..8e6313e --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/infinity_core" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png b/src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png similarity index 52% rename from src/main/resources/assets/extendedae_plus/textures/item/energy_core.png rename to src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png index 9326bb9cde480c63930972e1dc6a29f33b251c4f..a32e5d19030344b7d4d6fb03f4155dbc75033cf6 100644 GIT binary patch delta 1129 zcmew+(k!~+1QWZVm4T_1q50(VOlolUAEp2mQ_~a+gXBaD-4rte16`vOlO)|l3yV}; zGjnrebK^8~DwamZ2B~HiKy&t(=v0Yg z^~(jFJzgdRJeO}1+wFK`PPa~C;^y2gwcQVNX5Glu(^1wtHEqSmu9i%b+pTdG&y!Nb zrB1Zz<*0dinsDcdxn0kd_$j>5bW1|Cf@+B_JC}=)z5XdnYxZMh8{h2xeeS#6`|tbC zSI&1Aa;pEJ@$rb8I6MD5kbvJ}W)@GGCUR#!vuz@?JO70{A^Z(H-)ghnu7CJW{652lUvF8p z_SQ1=ocR6XP0mE0szWl?K5zd03+K%V3bM)Fx@qT65r(Pv>{jJ8u^kVNQtWMh=`iDA z1k;8`yDd*m4u8LayYpdvL{o^-No`fuJ8W^ccBPu?|Gw_SFuhFd^5^UIOGLDR;lc3d z_rJ_GfhChX+4|~T%HJy}f3l0JPWzD@^Jv@VLp#{>rn`r{x#gUBGwjdxDvOdgx{oFs zyC@sJjqbheXd%1+lCJEKEs5FT6q`Tcti$!yqEZ%i^@e#Tu5-nF zkDbVnxJ`sH;JWma57oD4^0jnU{Qj{1nXZPX>32EyUrO9wlO6=vPb>*?&k@@pmh-}4 zxtHftmUw{^Ld(wWFf-;`yUs6?fP+KU+kXx;4eKDw}Wy&FxwtmQXl!AUE4j2^SsEWEkRxf zKbrH_EhyXB*SxjPA=tLlWmbmG*_+1Ce|*`@-*N2nYs(A5+lrQieQuWbGc~wr-?Vut z^NC-M>%NOIoG$umYahV5Ip52gse2dB nxvST&@vWE9;Pn=JJNqB<&3cMaMa{-)3_#%N>gTe~DWM4feo^rs delta 1116 zcmZn`{U);E1QWY~l_?NeOg_(~250|a3Q$QlO*S-1vNY5+H8e5NO)&=&iK)p3x|Zf? zDT&4grUu4_X_E_>wNy;f%uQ3xj8kN1 zV^(7#&d3H9aW10}Bbc)mve-Fg~N0`FvQou}45jaem4ye_Wf`5PID+ebHje^+z=^Pc;^ z?Vi`l*L!jtTzur(S-o%X>)p4wK4Xx`T$NPuV@iqroRkm+&(`Y5cVY~=6D|4VswSSf z!gN12UhUa^UI&emC?*4KaiH3NPcD*Am@O;niBg_3wxni#$?YEB= zJI2g*KF4v|?xPPLh(DQL8e;0dWv}ScdX9=oOV=qBf99%Zh;6rGWKm$WSo2rnNj|&V zi?=TqRDVn7i;;QIdp-Vf#eGk$Q?cK#AJB@}vUlped3+3AZ2MBuK8R1V`!Ch-FaO*I zV-v;$Ywn!+@ImurqUf3Jryc*^jQ8E-e17BNEmPj^ea{3`;J7&a!qei}oj$xq!Q6K| zRyt@tJZa(o$IMq&sNOtC%hGr8!aGMrAEf%K@T{{JUlF6}W1Wh{8U z*S|yYM5ffm?e+;JHEoeQXa3u$vtQpUCUfPs^Nt7PMXr|aUb*6nz)pi>(R1@B{nPHA zr!$W^IqD);m@m1u4^jgulkq37r3EYGz$SeB3yztz+4|IYf1!?QW{+Rl47 zXcUPtUoe~Z;K9V{Cwz1#@c0Vs?2f)_%3STwoINQtR#|Yjm(lvj7F~hslXFEQwgnlP zD9&NvYLc{F&;K&;`pu68Cz>BO)?F}&eewU+yiM)D8>ezyFj)JjHnsK69xt0l~ur18!xN#ANNhJDSJ~prKD~#TiC%(2lp7d&8p z7qF#a^6U3M8x?1~o*BKPeVNau$M-{H{M0ute#@}KIdIOq{VUf-8Vk>qdh#q(Bv-Pb z{zJ-~h@68qr*&Q~n;R-(pZn+xOLA!R$>(tgUS>SGHP47a>bGBkbVPJy;^~L|lCtv^ zwXYW&@8h-ot#eYWzm`v~Ti(RyU$b<_o?Sau%HL2ke8AtOly3O+d}U$1edqSdsdx6A zI{U+HQ;}^zME2{nJc*|b_8JUYhc&aZuLW#Ljn+K>`g+ynQobL}i;U(lDcpQiSyT7H YUS_h&MMc$nUl@SE)78&qol`;+0Q>grIsgCw diff --git a/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png.mcmeta similarity index 52% rename from src/main/resources/assets/extendedae_plus/textures/item/energy_core.png.mcmeta rename to src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png.mcmeta index 2d3e00a..f1fb7d0 100644 --- a/src/main/resources/assets/extendedae_plus/textures/item/energy_core.png.mcmeta +++ b/src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png.mcmeta @@ -2,8 +2,8 @@ "animation": { "interpolate": true, "frames": [ - {"index": 0, "time": 35}, - {"index": 1, "time": 5} + {"index": 0, "time": 30}, + {"index": 1, "time": 3} ] } } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/infinity_core.png b/src/main/resources/assets/extendedae_plus/textures/item/infinity_core.png new file mode 100644 index 0000000000000000000000000000000000000000..0ca4214089e9019e1a859a8d4aa8bc8302bbf8fc GIT binary patch literal 3822 zcmd5<3v3+48QzdKO>kp~6GEEC&9XE=T;}%uln=+`4(z}s#x{zr2r08Ov-Z|^yPMs$ z?~TFYe1-Zy~>sg4nl7s#FLlHN&*Fl>&%{NX*(~!1dDHsi&UdSQn?c z&1z1_1?$P6+p!}gJv%n`q8&rX#9Z4|Y-`D)0tzICY^jjzZs_$x4Ex@`A*RA`neW6fD7Ds~1Prh1jvW zGuKp=(YG`=7{`Id^TlE@Rg_bHIKYdhX(lox2~Y|UZTDhW0$y}!O+to5D0G9^^*uI` z2yK5jPIJ`MiVuaLF4l{xaiS69OEBQYl#uvTCd8;t7Yv8_vT}@gk|zb?#Sx_y>$Jh3 zAN$duKa1%4_A~`Fwz*tg$BecV3Uw7xoE@QVR0A?2b=12(AbdB8{NWIh> z+)d8J^DNjYd7U|SomqI3ooP;yk~<4&vQsAwto0#*u^;yOe!d2tu38jXNlU5h6`NfT z`^9K&;zN~zWME9vTmmFOQ6%WSqG(YpDf;&W!xDrFY0k&4vwb?LDEErGr7D(WOe3W* z#xRC+5@TdJeprC?4BP@7Abj8raBTf#t@VE152<2mom{pem$N#(D25&)otZR8T}Zhu zwjf3hGKd3I%~pV9C>nq^^+qR1R}{msMMbOeXM8lAfGy##Bp&t=m2pO^V(7X~92@A4 zj)7z=1~5#A01X=w!J43Btkk4!3SFA}Fh5mlVil$miKrPW!j#dpO<>E^DqE9Pph%hn zO(Z(laX2`PFWAFeFwl0YwBOzzeF{yFx~Y~Sd)G{h3eCU~ht zwTIR&8dgnJWwpBA<(5dkFXPhaL={75(8?U;o&M=NNhwQ`&FXL?in;C8TGKFqKXSBK_|gnb=jTaAkQvj6|u!ZLWA`MsI8Diz7rQ=NZJQzgy+l(em3JHIP%4& zD@4_hpveF^k^l@%Api;p15p)pTU14;BUp2Ny6K|SE6J8BS+Z2iqAz25HLPe5dIN-Z zA)fp4&L9yf4u%les$l|$C=M_j9RUXls(~~SsTxJiOy@vLf?!$_?L_tJ@fACRd~bw= zQ-Bq~5YkRc!YIu-pe>tQ%oq@VxNXWoIC5Qk;RYX8*t_*C! z)Ez;FwyYYnI`jD^^gl=393V?@SO?{~K-{^}H}@f(RiB-uEPQo`#3v(ZrSb5e?@5*S zOeJ@(Nvc74YO`kQK4*(TI>uRaXqaP+urWcVgGAt{f(Zzw?cY>o9mujthj>9SHG~pG zC(``?c8o|$eK`zMCiU799siTZ`iBR7seif;8W*%)G}sGwr>`PaeD@ z-Ld6{6}#@;f9p+O+tzj7%3Is|8XCLr$aX2?*S9Zu{+3r-HtcJ*_IS(Ry)2Vmvh2w5 zk>*bt-hA_C`?B+Yaph;nTQ2#Q7oA$OAOE)bh4hibPh9aq^E1(3-~RZe$?xnT{h#dq z{%6A%Hg38OXZyoL3%7n7{o35{VAJFUySooH9dFrrwb5Gmy&b)?>+nZ?jiV2@HLlyb z|ANscjxAoqF>jsNH2$meUc3A5Oa8e#y7Q`mmZoj%9(v*VwffNQ7w6tPeZRY;$T81` z%Db<&-}!p_cN4eyZ|Lsn_!Y|VPQ!S6w&!W4b=A}J{`PhrEIswc*gZd5bK-rAIhh&F zJlA?+DaL! z-_;C1`f&LP{+{~|jGb&8T|6&1_+;mY|2nc}6#uZPYtiF3x;HPM=>BxUmLL4_*nBWD Rk$jPMW;bRYy?W~{{{f0y2I2q! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png index 598a05ed99da77821d22214ef525623be23df2d6..6b63b830df71d02adfa7e6ee2e1b4cbd6e4994b0 100644 GIT binary patch delta 1013 zcmdllxItus1ryt}jaJ=EoJJu=##V-=R)&+$F{vQ&elvwA8XH(xn(LZd8kp-Q8k<84m18ygxKnj|F~TW&63wqu&C!Xi5P8;c5I<&zs&#JCONHkwXe$YL{j25Wx( zjdh-R3=GT;o-U3d9-UjKcxMP_OSH|GTQxzhW`RXfG+EM>nn zMH6;zn7@B}RE37_qK&(GH{M}xIQ?}x!-PvOi;nWSGf!Np5$?bL>B21?><8r-Wct|V z?fT7dWs2uC$7L2GT?Pw_55!bD2+3ru6f8a#HKiws#!lIY!=|#3xUd>9|7g2B7S!8mi zyD!XFJ#E*{+tDnRQfc)Y-t)#g-&^B3WpSdf&1+7h(?Bg^N6Q#fzRro>EcGX^^Z&lo zce5t5drW(B=)qij{s}s7uJk_&EUB6FNJ7`J!A99I{7r#L!Q*GF3^rYSo`DT2{C)FR z`2Sb9t}vbbnJ%ZDXQ5h>((Ll}CmuO2J9)>(!kS-h36pWYXNJv-zn=~3%jbPBdUH!q z;bb%CdO3#0s?(l1Y8fdQxBG~O_=ld>+F9QlJ5O`_{*84Dfvg+pGcbzygw!1RDZ6v@%Sn!Avw>U z|DN6dV~ta}KdA-wwQY_|yQgtG>vc%OjUAm^+fq7a+CH~?ZCNQGZO*trpZj0E%@0mC Wi4Xbyi?^vV0D-5gpUXO@geCw(5yHX% delta 744 zcmVKXb$G=ntD-Uz%t#nq`m=1)?z!u@_;tzC{_NZxpDHNJGkby`*Ay@6T1_~O-l#-H3quC^gp+wk`WNkpaM47S%Qbj{bhCiwC-$$#+&apF&{ zEQQ}NZ=NMSf3#1WoU=Ss%N*-?7<_vauQCMD`zvMF&vaqvDeEIY-+h6Bz5_ z<qV3#(*suAo01gvn aU*j(+rddS{fvji%00000*@t diff --git a/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta index 2d3e00a..f1fb7d0 100644 --- a/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta +++ b/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png.mcmeta @@ -2,8 +2,8 @@ "animation": { "interpolate": true, "frames": [ - {"index": 0, "time": 35}, - {"index": 1, "time": 5} + {"index": 0, "time": 30}, + {"index": 1, "time": 3} ] } } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/spatial_core.png b/src/main/resources/assets/extendedae_plus/textures/item/spatial_core.png index 332a64d5b3744c6432a66f3c8714c22db1c1f097..b531cfc3150aa0a06fb1c3a8cc9fe321da9682f0 100644 GIT binary patch delta 828 zcmcb`yIydD1ruAxMyoC+E<@uG0|P5#6Dy<1=a`g{xxbkLRSbWo$HgGK-BKR8ew9VqSV`imj5qlD?gS4PMKM@dFOa;bCJ2vRn|u z^2z5|;_6jm)8{ZSFrM{vaSXBOT{_v&Lpo66czyUB*Kl9OYeGjHWm@{SHu37Jgk-R& zK3H(2%j1ZnV@t{g1&&3{xrHwm$!4`4_HEzRB+Df0x$RD1fk(Ba)B6*jN;ST} zdK#qlg+IUY{`dd;<=T*<~d-Z8%R;GuVFxw&tz%<=kc_$%tv-A6A{TbdFD<=?BE%QtSw{U1;}>%UMt zTX50$gB0idsk-mbpZ4in$U=iato5`4RC>(*G)AIfv8W*z;R7hJ5h$F}nC z@#{Zkwy^~>T@ZZB_oiN3lu@LrV?kiug!OKZ?U~oDiht%RFW6YIM1lbbJYD@<);T3K F0RVwyNy7jD delta 490 zcmVd;MzYOz-fX=Y4+X zJ&K6%pBga_f%&L|RK7Y@%(J2>^eYkR00Q$-DV}QpJU%sl9Y8y1sDas>N#_7KINY~` z217)Ig}I2-jJkxwtJ2KB%Gt)VtR=EiGwM<^>as8w={qPZg1zpHZ(crHytNt*n^Y31 zR13W(rh)n5S|Tgq@T$~|y0qJE%dDS?h~NUKR13<(y@95eh{r;>Cnf=C6+d~;k1`#Y zC6mr^aJWx@H^kL#)O>68#Ie`n(y{|$&EPkm0K{Vw_$HOyW_@du9)o@+YS0hB$#KIGXWTtD z7|;y?*xgHzN^S$4FV*ytbypFQfxB)FYs%vz9t#06py?$Z?hPu{LZ^2azz&-7_yDYC g7_f Date: Thu, 13 Nov 2025 20:39:09 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=88=E6=88=90?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E4=BD=BF=E7=94=A8=E5=AD=97=E8=8A=82=E6=95=B0?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E5=A4=A7=E5=B0=8F=E9=98=88=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mixin/ae2/client/gui/CraftConfirmScreenMixin.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/CraftConfirmScreenMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/CraftConfirmScreenMixin.java index 6917875..0ca95e0 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/CraftConfirmScreenMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/client/gui/CraftConfirmScreenMixin.java @@ -20,6 +20,9 @@ public class CraftConfirmScreenMixin { ) ) private String useCustomFormat(NumberFormat instance, long number) { + if (number < 10_000) { + return NumberFormat.getInstance().format(number); + } return NumberFormatUtil.formatNumber(number); } } \ No newline at end of file From 618992aa7c26b98f8f88d2525b975286e5a1d1ca Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Thu, 13 Nov 2025 21:54:04 +0800 Subject: [PATCH 08/19] =?UTF-8?q?=E5=AE=9E=E4=BD=93=E5=8A=A0=E9=80=9F?= =?UTF-8?q?=E5=8D=A1=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4=E4=B8=BA2x?= =?UTF-8?q?=EF=BC=8C=E9=81=BF=E5=85=8D=E5=87=BA=E7=8E=B01x=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../upgrades/EntitySpeedCardItem.java | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/extendedae_plus/ae/definitions/upgrades/EntitySpeedCardItem.java b/src/main/java/com/extendedae_plus/ae/definitions/upgrades/EntitySpeedCardItem.java index cc97d98..f896d7e 100644 --- a/src/main/java/com/extendedae_plus/ae/definitions/upgrades/EntitySpeedCardItem.java +++ b/src/main/java/com/extendedae_plus/ae/definitions/upgrades/EntitySpeedCardItem.java @@ -33,11 +33,20 @@ public class EntitySpeedCardItem extends UpgradeCardItem { } public static int readMultiplier(ItemStack stack) { - if (stack == null || stack.isEmpty()) return 1; - CompoundTag t = stack.getTag(); - if (t == null) return 1; - int v = t.getInt(NBT_MULTIPLIER); - return v <= 0 ? 1 : v; + if (stack == null || stack.isEmpty()) return 2; + CompoundTag tag = stack.getTag(); + if (tag == null || !tag.contains(NBT_MULTIPLIER)) { + // 关键:检测到没有 NBT,直接强制写一个默认合法值 + CompoundTag newTag = stack.getOrCreateTag(); + newTag.putInt(NBT_MULTIPLIER, 2); + return 2; + } + int v = tag.getInt(NBT_MULTIPLIER); + // 合法性检查 + return switch (v) { + case 2, 4, 8, 16 -> v; + default -> 2; // 非法值一律纠正为 x2 + }; } @Override @@ -54,8 +63,7 @@ public class EntitySpeedCardItem extends UpgradeCardItem { return Component.translatable(key); } - - public List getTooltipLines(ItemStack stack) { + private List getTooltipLines(ItemStack stack) { int mult = readMultiplier(stack); long cap = 1L; switch (mult) { @@ -76,6 +84,4 @@ public class EntitySpeedCardItem extends UpgradeCardItem { // add our custom tooltip lines (multiplier and max) lines.addAll(this.getTooltipLines(stack)); } -} - - +} \ No newline at end of file From 003b0ce2d8fe3eafc4852ddaa6045f4991bc0976 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Fri, 14 Nov 2025 09:43:58 +0800 Subject: [PATCH 09/19] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A0=B8=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extendedae_plus/init/ModCreativeTabs.java | 1 + .../com/extendedae_plus/init/ModItems.java | 5 + .../extendedae_plus/item/BasicCoreItem.java | 173 ++++++++++++++++++ .../assets/extendedae_plus/lang/en_us.json | 1 + .../assets/extendedae_plus/lang/zh_cn.json | 1 + .../models/item/basic_core.json | 4 + .../textures/item/basic_core.png | Bin 0 -> 2109 bytes 7 files changed, 185 insertions(+) create mode 100644 src/main/java/com/extendedae_plus/item/BasicCoreItem.java create mode 100644 src/main/resources/assets/extendedae_plus/models/item/basic_core.json create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/basic_core.png diff --git a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java index 52b7650..b260297 100644 --- a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java +++ b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java @@ -36,6 +36,7 @@ public final class ModCreativeTabs { output.accept(ModItems.CHANNEL_CARD.get()); output.accept(ModItems.OBLIVION_SINGULARITY.get()); + output.accept(ModItems.BASIC_CORE.get()); output.accept(ModItems.STORAGE_CORE.get()); if (ModItems.ENERGY_STORAGE_CORE != null) { output.accept(ModItems.ENERGY_STORAGE_CORE.get()); diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index 83c9a85..f1fc5c5 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -8,6 +8,7 @@ import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.ae.items.EntitySpeedTickerPartItem; import com.extendedae_plus.ae.items.InfinityBigIntegerCellItem; +import com.extendedae_plus.item.BasicCoreItem; import com.extendedae_plus.util.ModCheckUtils; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; @@ -83,6 +84,10 @@ public final class ModItems { () -> new ChannelCardItem(new Item.Properties()) ); + public static final RegistryObject BASIC_CORE = ITEMS.register( + "basic_core", + () -> new BasicCoreItem(new Item.Properties()) + ); public static final RegistryObject STORAGE_CORE = ITEMS.register( "storage_core", () -> new Item(new Item.Properties()) diff --git a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java new file mode 100644 index 0000000..d0baf00 --- /dev/null +++ b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java @@ -0,0 +1,173 @@ +package com.extendedae_plus.item; + +import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.init.ModItems; +import net.minecraft.ChatFormatting; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.Level; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.Optional; + +public class BasicCoreItem extends Item { + + private static final String NBT_TYPE = "core_type"; // 0-3: 四大方向 + private static final String NBT_STAGE = "core_stage"; // 0-4: 当前阶段 + + private static final int MAX_STAGE = 4; + + public enum CoreType { + STORAGE(0, "storage_core", Rarity.UNCOMMON, ChatFormatting.AQUA), + INFINITY(1, "infinity_core", Rarity.RARE, ChatFormatting.LIGHT_PURPLE), + OBLIVION(2, "oblivion_singularity", Rarity.EPIC, ChatFormatting.DARK_PURPLE), + SPATIAL(3, "spatial_core", Rarity.EPIC, ChatFormatting.YELLOW); + + public final int id; + public final String resultItem; + public final Rarity rarity; + public final ChatFormatting color; + + CoreType(int id, String resultItem, Rarity rarity, ChatFormatting color) { + this.id = id; + this.resultItem = resultItem; + this.rarity = rarity; + this.color = color; + } + + public static Optional byId(int id) { + return switch (id) { + case 0 -> Optional.of(STORAGE); + case 1 -> Optional.of(INFINITY); + case 2 -> Optional.of(OBLIVION); + case 3 -> Optional.of(SPATIAL); + default -> Optional.empty(); + }; + } + } + + public BasicCoreItem(Properties props) { + super(props.stacksTo(1).setNoRepair()); + } + + // ==================== 工厂方法 ==================== + public static ItemStack storage() { return of(CoreType.STORAGE, 1); } + public static ItemStack infinity() { return of(CoreType.INFINITY, 1); } + public static ItemStack oblivion() { return of(CoreType.OBLIVION, 1); } + public static ItemStack spatial() { return of(CoreType.SPATIAL, 1); } + + /** 创建指定类型 + 阶段的核心 */ + public static ItemStack of(CoreType type, int stage) { + ItemStack stack = new ItemStack(ModItems.BASIC_CORE.get()); + CompoundTag tag = stack.getOrCreateTag(); + tag.putInt(NBT_TYPE, type.id); + tag.putInt(NBT_STAGE, stage); + return stack; + } + + // ==================== NBT 读取 ==================== + public static Optional getType(ItemStack stack) { + if (!stack.hasTag()) return Optional.empty(); + int id = stack.getTag().getInt(NBT_TYPE); + return CoreType.byId(id); + } + + public static int getStage(ItemStack stack) { + if (!stack.hasTag()) return 0; + return Math.min(stack.getTag().getInt(NBT_STAGE), MAX_STAGE); + } + + public static boolean isFinalStage(ItemStack stack) { + return getStage(stack) >= MAX_STAGE; + } + + // ==================== 显示 ==================== + @Override + public Component getName(ItemStack stack) { + return getType(stack).map(type -> + Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core." + type.name().toLowerCase()) + .withStyle(type.color) + ).orElseGet(() -> + Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core") + .withStyle(ChatFormatting.GRAY) + ); + } + + @Override + public Rarity getRarity(ItemStack stack) { + return getType(stack) + .map(t -> t.rarity) + .orElse(Rarity.COMMON); + } + + // ==================== 耐久条 ==================== + @Override + public boolean isBarVisible(ItemStack stack) { + return true; + } + + @Override + public int getBarWidth(ItemStack stack) { + return Math.round(13.0f * getStage(stack) / MAX_STAGE); + } + + @Override + public int getBarColor(ItemStack stack) { + int stage = getStage(stack); + if (stage == 0) return 0xFF4444; // 红色 - 未定型 + if (stage == 1) return 0x4488FF; // 蓝色 - 已定型 + if (stage <= 3) return 0xFFFF44; // 黄色 - 强化中 + return 0xFFAA00; // 金色 - 可合成最终核心 + } + + // ==================== Tooltip ==================== + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltip, TooltipFlag flag) { + int stage = getStage(stack); + + if (stage == 0) { + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_0") + .withStyle(ChatFormatting.RED)); + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_0_hint") + .withStyle(ChatFormatting.GRAY)); + return; + } + + getType(stack).ifPresent(type -> { + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.type", + Component.translatable("item." + ExtendedAEPlus.MODID + "." + type.resultItem) + .withStyle(type.color)) + .withStyle(ChatFormatting.AQUA)); + + tooltip.add(Component.empty()); + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.progress") + .withStyle(ChatFormatting.YELLOW)); + + String[] stages = { + "typed", "reinforced_1", "reinforced_2", "final_ready" + }; + for (int i = 1; i <= stage; i++) { + tooltip.add(Component.literal(" ✔ ").withStyle(ChatFormatting.GREEN) + .append(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_" + i))); + } + for (int i = stage + 1; i <= MAX_STAGE; i++) { + tooltip.add(Component.literal(" ✘ ").withStyle(ChatFormatting.DARK_GRAY) + .append(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_" + i))); + } + + if (stage >= MAX_STAGE) { + tooltip.add(Component.empty()); + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.can_craft") + .withStyle(ChatFormatting.GOLD)); + } + }); + } +} \ No newline at end of file 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 86e9255..9da6bb3 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -24,6 +24,7 @@ "item.extendedae_plus.entity_speed_card.x4": "Entity Acceleration Card (x4)", "item.extendedae_plus.entity_speed_card.x8": "Entity Acceleration Card (x8)", "item.extendedae_plus.entity_speed_card.x16": "Entity Acceleration Card (x16)", + "item.extendedae_plus.basic_core": "Basic Core", "item.extendedae_plus.storage_core": "Storage Core", "item.extendedae_plus.energy_storage_core": "Energy Storage Core", "item.extendedae_plus.quantum_storage_core": "Quantum Storage Core", 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 b65e188..2ff4fb5 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -24,6 +24,7 @@ "item.extendedae_plus.entity_speed_card.x4": "实体加速卡 (x4)", "item.extendedae_plus.entity_speed_card.x8": "实体加速卡 (x8)", "item.extendedae_plus.entity_speed_card.x16": "实体加速卡 (x16)", + "item.extendedae_plus.basic_core": "基础核心", "item.extendedae_plus.storage_core": "存储核心", "item.extendedae_plus.energy_storage_core": "能源存储核心", "item.extendedae_plus.quantum_storage_core": "量子核心", diff --git a/src/main/resources/assets/extendedae_plus/models/item/basic_core.json b/src/main/resources/assets/extendedae_plus/models/item/basic_core.json new file mode 100644 index 0000000..5b74a92 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/basic_core.json @@ -0,0 +1,4 @@ +{ + "parent": "item/generated", + "textures": { "layer0": "extendedae_plus:item/basic_core" } +} \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/basic_core.png b/src/main/resources/assets/extendedae_plus/textures/item/basic_core.png new file mode 100644 index 0000000000000000000000000000000000000000..5571b16fcb4fb35799ece49e7c3fb34162ec046f GIT binary patch literal 2109 zcmb_de{9rL94|ja8P3eip)3fcfIwWYuf6uJZMe;22X16H=D1`71Nz#&yK8oLEp2x{ zMu;f#VM2q9>O(F9QpVUc8l1|vj>BnG1XA%8gpBL*e-db>Me@+-tkdVOs_ z@ALV5f4uj)TbiFQFRLyi2%@~PA=HZR74G%OIQ&2L$_bpaX?NPgO|ohvJy0_gF`e$>SFlzt1bykR0Fy25=0^(yS!2Kn5aN_)%ES(xP%}XhA^?KLx0` z31^JSLX%-Vz>O&n)YKBr?6eYjaZP1V0wqz(u`!k{Va>SV71 zEdn^V;c!XgwqBCSl7#KdPvbBO3AruWj^s?lv?AN+v{W=djcrbMqcP=r3qi-QB8HJD zR;s0FndE#Pft=l@r!*sD&$(#=3PA@2D7R{~TQWAnd1WszbNsVFlmQrqh7C=R=0-rh z5ssC4LFRn7KylA#(1G^^YpNVItR%z%>q!_xjG2m2WGRhuy^%01ER5ZG^De?+xiMus zFr}i#P=LZQdvsls6`-kts%kW^_ytl>;DUearevN4r4|(U;f)odn+zv{uSP^-C^mdzz?Ov2BmPGEPRxV{o?Vt1TiYy z7z#$jO?$Tl7L5*8tlK$r>)_zoc{kRro%-FBZRzSw6aSphR8zC-;Ed`yGpgrJk4zSJ zudS-8`bfMq(BqvZjlaIM=iCqHyV>9RqnST)v2=Rd+1?wokIdeD^4%rhY#QvpcILVL zx$`Tm>Rn5ZP=EJ6^XRfedx$+Y8ok%->w9Yr5v=I_w1@fW@XTXxKepSfczx^C-t8w& zobnJ~?pse(w{%Ym{kZYUm=C(9z4XNQtqXt6tg=6=*#6bkOjYIAO-&DqegCZYkAAYeec6jUpS+lkAM7~M)>HOE<>rC+f_2iE)%$)qJo@+3m*043 z!`Qy?ENkM1>!H;<`UBXEW9`KFx Ln?ncYz5LogYP7uU literal 0 HcmV?d00001 From 80a8dfb2e5d94882e89e8d65fca714ed920493ac Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Fri, 14 Nov 2025 17:36:11 +0800 Subject: [PATCH 10/19] =?UTF-8?q?=E9=85=8D=E6=96=B9=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=99=A8=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 9 +-- build.gradle | 59 ++++++++++--------- .../datagen/DataGenerators.java | 21 +++++++ 3 files changed, 55 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/extendedae_plus/datagen/DataGenerators.java diff --git a/.gitignore b/.gitignore index 16b0b3c..0e178fa 100644 --- a/.gitignore +++ b/.gitignore @@ -87,9 +87,6 @@ classes/ *.zip # Reference source code (should not be tracked) -ExtendedAE-1.20-1.4.2-forge/ -GTLCore/ - # Gradle wrapper (optional - some prefer to commit this) # gradle/wrapper/gradle-wrapper.jar # gradle/wrapper/gradle-wrapper.properties @@ -118,6 +115,6 @@ temp/ tmp/ # Allow dependencies in libs -!libs/ -!libs/*.jar -!libs/**/*.jar +libs/* +!libs/ExtendedAE-1.20-1.4.2-forge.jar +/src/generated/resources/.cache diff --git a/build.gradle b/build.gradle index ae8f2af..59d2264 100644 --- a/build.gradle +++ b/build.gradle @@ -11,6 +11,14 @@ base { archivesName = project.archives_name } +sourceSets { + main { + resources { + srcDir 'src/generated/resources' + } + } +} + loom { silentMojangMappingsLicense() @@ -19,11 +27,13 @@ loom { } runs { - client1 { - client() - name "Client 1" - runDir "run/client1" - programArgs "--username", "Player1" + data { + data() + name "Data Generation" + // IDE 启动时传入参数 + programArgs.addAll( + '--mod', project.name, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() + ) } } } @@ -66,6 +76,7 @@ dependencies { minecraft "net.minecraft:minecraft:${minecraft_version}" mappings loom.officialMojangMappings() forge "net.minecraftforge:forge:${forge_version}" + annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" //exendedae前置 modImplementation "curse.maven:glodium-957920:${glodium_version}" @@ -76,42 +87,34 @@ dependencies { //ae2 modImplementation "appeng:appliedenergistics2-forge:${ae2_version}" modImplementation "org.appliedenergistics:guideme:${guideme_version}" - modCompileOnly "curse.maven:applied-energistics-2-wireless-terminals-459929:${wireless_terminals_version}" - - modCompileOnly "mezz.jei:jei-${minecraft_version}-forge:${jei_version}" - - annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" - + modImplementation "curse.maven:applied-energistics-2-wireless-terminals-459929:${wireless_terminals_version}" modImplementation "curse.maven:applied-flux-965012:6755986" - modCompileOnly "curse.maven:mega-cells-622112:${mega_cells_version}" - modCompileOnly "curse.maven:jade-324717:${jade_version}" + modImplementation "curse.maven:mega-cells-622112:${mega_cells_version}" + + //mae2 + // modRuntimeOnly "curse.maven:modern-ae2-additions-1028068:6827727" + modCompileOnly "curse.maven:modern-ae2-additions-1028068:6827727" + + //aea + modCompileOnly "curse.maven:advancedae-1084104:6939473" +// modRuntimeOnly "curse.maven:advancedae-1084104:6939473" + + modImplementation "mezz.jei:jei-${minecraft_version}-forge:${jei_version}" + modImplementation "curse.maven:jade-324717:${jade_version}" // GregTech modCompileOnly "curse.maven:gregtechceu-modern-890405:${gregtech_version}" modCompileOnly "curse.maven:ldlib-626676:${ldlib_version}" //curios - modRuntimeOnly "curse.maven:curios-309927:${curios_version}" - modCompileOnly "curse.maven:curios-309927:${curios_version}" + modImplementation "curse.maven:curios-309927:${curios_version}" // Runtime test - modRuntimeOnly "curse.maven:curios-309927:${curios_version}" - modRuntimeOnly "curse.maven:jade-324717:${jade_version}" modRuntimeOnly "dev.architectury:architectury-forge:9.2.14" - modRuntimeOnly "curse.maven:applied-energistics-2-wireless-terminals-459929:${wireless_terminals_version}" - modRuntimeOnly "mezz.jei:jei-${minecraft_version}-forge:${jei_version}" modRuntimeOnly "curse.maven:cloth-config-348521:5729105" //jec - modCompileOnly "curse.maven:just-enough-characters-250702:6680042" - - - //mae2 - // modRuntimeOnly "curse.maven:modern-ae2-additions-1028068:6827727" - modCompileOnly "curse.maven:modern-ae2-additions-1028068:6827727" - - //aea - modImplementation "curse.maven:advancedae-1084104:6939473" + modImplementation "curse.maven:just-enough-characters-250702:6680042" //geckolib modRuntimeOnly "curse.maven:geckolib-388172:6920925" diff --git a/src/main/java/com/extendedae_plus/datagen/DataGenerators.java b/src/main/java/com/extendedae_plus/datagen/DataGenerators.java new file mode 100644 index 0000000..4b8e065 --- /dev/null +++ b/src/main/java/com/extendedae_plus/datagen/DataGenerators.java @@ -0,0 +1,21 @@ +package com.extendedae_plus.datagen; + +import com.extendedae_plus.ExtendedAEPlus; +import net.minecraft.data.DataGenerator; +import net.minecraftforge.common.data.ExistingFileHelper; +import net.minecraftforge.data.event.GatherDataEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(modid = ExtendedAEPlus.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +public class DataGenerators { + + @SubscribeEvent + public static void onGatherData(GatherDataEvent event) { + DataGenerator generator = event.getGenerator(); + ExistingFileHelper helper = event.getExistingFileHelper(); + + // 仅添加配方生成器 + generator.addProvider(true, new CraftingRecipes(generator.getPackOutput())); + } +} From d03460bd7b5817d2b63a1a404094f65b97ad628a Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sat, 15 Nov 2025 01:18:54 +0800 Subject: [PATCH 11/19] =?UTF-8?q?NBT=E5=90=88=E6=88=90=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../ae/items/InfinityBigIntegerCellItem.java | 2 +- .../datagen/NBTShapedRecipeBuilder.java | 246 ++++++++++++++++++ .../com/extendedae_plus/init/ModItems.java | 2 +- 4 files changed, 249 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java diff --git a/build.gradle b/build.gradle index 59d2264..8d13863 100644 --- a/build.gradle +++ b/build.gradle @@ -97,7 +97,7 @@ dependencies { //aea modCompileOnly "curse.maven:advancedae-1084104:6939473" -// modRuntimeOnly "curse.maven:advancedae-1084104:6939473" + modRuntimeOnly "curse.maven:advancedae-1084104:6939473" modImplementation "mezz.jei:jei-${minecraft_version}-forge:${jei_version}" modImplementation "curse.maven:jade-324717:${jade_version}" diff --git a/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java b/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java index 3e5120d..627024d 100644 --- a/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java +++ b/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java @@ -24,7 +24,7 @@ import java.util.UUID; public class InfinityBigIntegerCellItem extends Item implements ICellWorkbenchItem { - public InfinityBigIntegerCellItem() { + public InfinityBigIntegerCellItem(Properties props) { super(new Properties().stacksTo(1).fireResistant()); } diff --git a/src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java b/src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java new file mode 100644 index 0000000..d06192d --- /dev/null +++ b/src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java @@ -0,0 +1,246 @@ +package com.extendedae_plus.datagen; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.Sets; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonPrimitive; +import net.minecraft.advancements.Advancement; +import net.minecraft.advancements.AdvancementRewards; +import net.minecraft.advancements.CriterionTriggerInstance; +import net.minecraft.advancements.RequirementsStrategy; +import net.minecraft.advancements.critereon.RecipeUnlockedTrigger; +import net.minecraft.data.recipes.CraftingRecipeBuilder; +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.data.recipes.RecipeBuilder; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.nbt.*; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.ItemLike; +import net.minecraftforge.registries.ForgeRegistries; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.function.Consumer; + +public class NBTShapedRecipeBuilder extends CraftingRecipeBuilder implements RecipeBuilder { + + private final RecipeCategory category; + private final ItemStack result; + private final List rows = Lists.newArrayList(); + private final Map key = Maps.newLinkedHashMap(); // 改用 JsonObject! + private final Advancement.Builder advancement = Advancement.Builder.recipeAdvancement(); + @Nullable private String group; + private boolean showNotification = true; + + private NBTShapedRecipeBuilder(RecipeCategory category, ItemStack result) { + this.category = category; + this.result = result; + } + + public static NBTShapedRecipeBuilder shaped(RecipeCategory category, ItemStack result) { + return new NBTShapedRecipeBuilder(category, result); + } + + public static NBTShapedRecipeBuilder shaped(RecipeCategory category, ItemLike result) { + return shaped(category, new ItemStack(result)); + } + + public static NBTShapedRecipeBuilder shaped(RecipeCategory category, ItemLike result, int count) { + return shaped(category, new ItemStack(result, count)); + } + + /** 普通物品 */ + public NBTShapedRecipeBuilder define(Character symbol, ItemLike item) { + JsonObject json = new JsonObject(); + json.addProperty("item", Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(item.asItem())).toString()); + this.key.put(symbol, json); + return this; + } + + public NBTShapedRecipeBuilder define(Character symbol, TagKey tag) { + JsonObject json = new JsonObject(); + json.addProperty("tag", tag.location().toString()); + this.key.put(symbol, json); + return this; + } + + /** forge:nbt 输入(无 count,结构化 NBT) */ + public NBTShapedRecipeBuilder defineNbt(Character symbol, ItemStack stackWithNbt) { + JsonObject json = new JsonObject(); + json.addProperty("type", "forge:nbt"); + json.addProperty("item", Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(stackWithNbt.getItem())).toString()); + if (stackWithNbt.hasTag() && stackWithNbt.getTag() != null) { + json.add("nbt", nbtToJson(stackWithNbt.getTag())); + } + this.key.put(symbol, json); + return this; + } + + public NBTShapedRecipeBuilder pattern(String pattern) { + if (!this.rows.isEmpty() && pattern.length() != this.rows.get(0).length()) { + throw new IllegalArgumentException("Pattern must be the same width"); + } + this.rows.add(pattern); + return this; + } + + public @NotNull NBTShapedRecipeBuilder unlockedBy(@NotNull String name, @NotNull CriterionTriggerInstance criterion) { + this.advancement.addCriterion(name, criterion); + return this; + } + + public @NotNull NBTShapedRecipeBuilder group(@Nullable String group) { + this.group = group; + return this; + } + + public NBTShapedRecipeBuilder showNotification(boolean show) { + this.showNotification = show; + return this; + } + + public @NotNull Item getResult() { + return this.result.getItem(); + } + + public void save(Consumer consumer, @NotNull ResourceLocation id) { + this.ensureValid(id); + this.advancement + .parent(RecipeBuilder.ROOT_RECIPE_ADVANCEMENT) + .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(id)) + .rewards(AdvancementRewards.Builder.recipe(id)) + .requirements(RequirementsStrategy.OR); + + consumer.accept(new NBTResult( + id, this.result, this.group == null ? "" : this.group, + determineBookCategory(this.category), this.rows, this.key, + this.advancement, id.withPrefix("recipes/" + this.category.getFolderName() + "/"), + this.showNotification + )); + } + + private void ensureValid(ResourceLocation id) { + if (this.rows.isEmpty()) throw new IllegalStateException("No pattern for " + id); + Set defined = Sets.newHashSet(this.key.keySet()); + defined.remove(' '); + for (String row : this.rows) { + for (int i = 0; i < row.length(); i++) { + char c = row.charAt(i); + if (!this.key.containsKey(c) && c != ' ') throw new IllegalStateException("Undefined symbol '" + c + "'"); + defined.remove(c); + } + } + if (!defined.isEmpty()) throw new IllegalStateException("Unused ingredients"); + if (this.rows.size() == 1 && this.rows.get(0).length() == 1) throw new IllegalStateException("Use shapeless"); + if (this.advancement.getCriteria().isEmpty()) throw new IllegalStateException("No unlock criterion"); + } + + /** NBT → JsonElement(结构化) */ + private static JsonElement nbtToJson(CompoundTag tag) { + JsonObject obj = new JsonObject(); + tag.getAllKeys().forEach(key -> { + Tag value = tag.get(key); + if (value instanceof CompoundTag c) { + obj.add(key, nbtToJson(c)); + } else if (value instanceof ListTag list) { + JsonArray arr = new JsonArray(); + for (Tag item : list) { + arr.add(nbtToJson(item)); + } + obj.add(key, arr); + } else if (value instanceof StringTag s) { + obj.addProperty(key, s.getAsString()); + } else if (value instanceof NumericTag n) { + if (value instanceof ByteTag) obj.addProperty(key, n.getAsByte()); + else if (value instanceof ShortTag) obj.addProperty(key, n.getAsShort()); + else if (value instanceof IntTag) obj.addProperty(key, n.getAsInt()); + else if (value instanceof LongTag) obj.addProperty(key, n.getAsLong()); + else if (value instanceof FloatTag) obj.addProperty(key, n.getAsFloat()); + else if (value instanceof DoubleTag) obj.addProperty(key, n.getAsDouble()); + } + }); + return obj; + } + + private static JsonElement nbtToJson(Tag tag) { + if (tag instanceof CompoundTag c) return nbtToJson(c); + if (tag instanceof StringTag s) return new JsonPrimitive(s.getAsString()); + if (tag instanceof NumericTag n) { + if (tag instanceof ByteTag) return new JsonPrimitive(n.getAsByte()); + if (tag instanceof ShortTag) return new JsonPrimitive(n.getAsShort()); + if (tag instanceof IntTag) return new JsonPrimitive(n.getAsInt()); + if (tag instanceof LongTag) return new JsonPrimitive(n.getAsLong()); + if (tag instanceof FloatTag) return new JsonPrimitive(n.getAsFloat()); + if (tag instanceof DoubleTag) return new JsonPrimitive(n.getAsDouble()); + } + return new JsonPrimitive(tag.getAsString()); + } + + /** 完美 Result */ + public static class NBTResult extends CraftingRecipeBuilder.CraftingResult { + private final ResourceLocation id; + private final ItemStack result; + private final String group; + private final List pattern; + private final Map key; // 直接存 JSON + private final Advancement.Builder advancement; + private final ResourceLocation advancementId; + private final boolean showNotification; + + public NBTResult(ResourceLocation id, ItemStack result, String group, + CraftingBookCategory category, List pattern, + Map key, Advancement.Builder advancement, + ResourceLocation advancementId, boolean showNotification) { + super(category); + this.id = id; + this.result = result; + this.group = group; + this.pattern = pattern; + this.key = key; + this.advancement = advancement; + this.advancementId = advancementId; + this.showNotification = showNotification; + } + + @Override + public void serializeRecipeData(@NotNull JsonObject json) { + if (!this.group.isEmpty()) json.addProperty("group", this.group); + + JsonArray patternArray = new JsonArray(); + this.pattern.forEach(patternArray::add); + json.add("pattern", patternArray); + + JsonObject keyObj = new JsonObject(); + this.key.forEach((c, jsonObj) -> keyObj.add(String.valueOf(c), jsonObj)); + json.add("key", keyObj); + + JsonObject resultObj = new JsonObject(); + resultObj.addProperty("type", "forge:partial_nbt"); + resultObj.addProperty("item", Objects.requireNonNull(ForgeRegistries.ITEMS.getKey(this.result.getItem())).toString()); + if (this.result.getCount() > 1) resultObj.addProperty("count", this.result.getCount()); + if (this.result.hasTag() && this.result.getTag() != null) { + resultObj.add("nbt", nbtToJson(this.result.getTag())); + } + json.add("result", resultObj); + + json.addProperty("show_notification", this.showNotification); + } + + @Override public @NotNull RecipeSerializer getType() { return RecipeSerializer.SHAPED_RECIPE; } + @Override public @NotNull ResourceLocation getId() { return this.id; } + @Nullable @Override public JsonObject serializeAdvancement() { return this.advancement.serializeToJson(); } + @Nullable @Override public ResourceLocation getAdvancementId() { return this.advancementId; } + } +} \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index f1fc5c5..c6adf46 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -75,7 +75,7 @@ public final class ModItems { ); public static final RegistryObject INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register( - "infinity_biginteger_cell", InfinityBigIntegerCellItem::new + "infinity_biginteger_cell", () -> new InfinityBigIntegerCellItem(new Item.Properties()) ); // 频道卡(作为 AE 升级卡使用) From 40e50eaccfb828cf574d0edc38854fe2dbf4da94 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sat, 15 Nov 2025 09:00:35 +0800 Subject: [PATCH 12/19] =?UTF-8?q?NBT=E5=90=88=E6=88=90=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=99=A8=E6=B7=BB=E5=8A=A0=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datagen/NBTShapedRecipeBuilder.java | 79 +++++++++++++++---- 1 file changed, 64 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java b/src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java index d06192d..32479d7 100644 --- a/src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java +++ b/src/main/java/com/extendedae_plus/datagen/NBTShapedRecipeBuilder.java @@ -24,14 +24,15 @@ import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.CraftingBookCategory; import net.minecraft.world.item.crafting.RecipeSerializer; import net.minecraft.world.level.ItemLike; +import net.minecraftforge.common.crafting.ConditionalRecipe; +import net.minecraftforge.common.crafting.conditions.ICondition; +import net.minecraftforge.common.crafting.conditions.ModLoadedCondition; +import net.minecraftforge.common.crafting.conditions.NotCondition; import net.minecraftforge.registries.ForgeRegistries; import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.function.Consumer; public class NBTShapedRecipeBuilder extends CraftingRecipeBuilder implements RecipeBuilder { @@ -39,8 +40,10 @@ public class NBTShapedRecipeBuilder extends CraftingRecipeBuilder implements Rec private final RecipeCategory category; private final ItemStack result; private final List rows = Lists.newArrayList(); - private final Map key = Maps.newLinkedHashMap(); // 改用 JsonObject! + private final Map key = Maps.newLinkedHashMap(); private final Advancement.Builder advancement = Advancement.Builder.recipeAdvancement(); + private final List conditions = new ArrayList<>(); + @Nullable private String group; private boolean showNotification = true; @@ -111,24 +114,66 @@ public class NBTShapedRecipeBuilder extends CraftingRecipeBuilder implements Rec return this; } + /** 添加 Forge 条件 */ + public NBTShapedRecipeBuilder condition(ICondition condition) { + this.conditions.add(Objects.requireNonNull(condition)); + return this; + } + + /** 便捷:mod loaded 条件 */ + public NBTShapedRecipeBuilder requiresMod(String modid) { + return condition(new ModLoadedCondition(modid)); + } + + /** NOT 条件:mod 未加载时生效 */ + public NBTShapedRecipeBuilder notRequiresMod(String modid) { + return condition(new NotCondition(new ModLoadedCondition(modid))); + } + + @Override public @NotNull Item getResult() { return this.result.getItem(); } - public void save(Consumer consumer, @NotNull ResourceLocation id) { + // === save 方法重载 === + + @Override + public void save(@NotNull Consumer consumer, @NotNull String id) { + this.save(consumer, new ResourceLocation(id)); + } + + @Override + public void save(@NotNull Consumer consumer, @NotNull ResourceLocation id) { this.ensureValid(id); - this.advancement - .parent(RecipeBuilder.ROOT_RECIPE_ADVANCEMENT) + + // 构建 advancement + Advancement.Builder advancementBuilder = this.advancement + .parent(ROOT_RECIPE_ADVANCEMENT) .addCriterion("has_the_recipe", RecipeUnlockedTrigger.unlocked(id)) .rewards(AdvancementRewards.Builder.recipe(id)) .requirements(RequirementsStrategy.OR); - consumer.accept(new NBTResult( + // 构建普通配方结果 + FinishedRecipe plainRecipe = new NBTResult( id, this.result, this.group == null ? "" : this.group, determineBookCategory(this.category), this.rows, this.key, - this.advancement, id.withPrefix("recipes/" + this.category.getFolderName() + "/"), + advancementBuilder, id.withPrefix("recipes/" + this.category.getFolderName() + "/"), this.showNotification - )); + ); + + if (this.conditions.isEmpty()) { + // 无条件 → 直接保存 + consumer.accept(plainRecipe); + } else { + // 有条件 → 使用 ConditionalRecipe 包装 + ConditionalRecipe.Builder builder = ConditionalRecipe.builder(); + for (ICondition cond : this.conditions) { + builder.addCondition(cond); + } + builder.addRecipe(c -> c.accept(plainRecipe)); + builder.generateAdvancement(); + builder.build(consumer, id); + } } private void ensureValid(ResourceLocation id) { @@ -142,9 +187,9 @@ public class NBTShapedRecipeBuilder extends CraftingRecipeBuilder implements Rec defined.remove(c); } } - if (!defined.isEmpty()) throw new IllegalStateException("Unused ingredients"); - if (this.rows.size() == 1 && this.rows.get(0).length() == 1) throw new IllegalStateException("Use shapeless"); - if (this.advancement.getCriteria().isEmpty()) throw new IllegalStateException("No unlock criterion"); + if (!defined.isEmpty()) throw new IllegalStateException("Unused ingredients: " + defined); + if (this.rows.size() == 1 && this.rows.get(0).length() == 1) throw new IllegalStateException("Use shapeless for 1x1"); + if (this.advancement.getCriteria().isEmpty()) throw new IllegalStateException("No unlock criterion for " + id); } /** NBT → JsonElement(结构化) */ @@ -169,6 +214,10 @@ public class NBTShapedRecipeBuilder extends CraftingRecipeBuilder implements Rec else if (value instanceof LongTag) obj.addProperty(key, n.getAsLong()); else if (value instanceof FloatTag) obj.addProperty(key, n.getAsFloat()); else if (value instanceof DoubleTag) obj.addProperty(key, n.getAsDouble()); + } else { + if (value != null) { + obj.addProperty(key, value.getAsString()); + } } }); return obj; @@ -194,7 +243,7 @@ public class NBTShapedRecipeBuilder extends CraftingRecipeBuilder implements Rec private final ItemStack result; private final String group; private final List pattern; - private final Map key; // 直接存 JSON + private final Map key; private final Advancement.Builder advancement; private final ResourceLocation advancementId; private final boolean showNotification; From 6005b7cfbb7f4c0f95856d506f826f27286a1a17 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sat, 15 Nov 2025 12:32:08 +0800 Subject: [PATCH 13/19] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E5=8F=8Ajei=E9=85=8D=E6=96=B9=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/jei/ExtendedAEJeiPlugin.java | 31 ++- .../extendedae_plus/item/BasicCoreItem.java | 201 +++++++++--------- 2 files changed, 136 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java index 5248037..1a167c3 100644 --- a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java +++ b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java @@ -2,10 +2,13 @@ package com.extendedae_plus.integration.jei; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; +import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.util.ModCheckUtils; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; import mezz.jei.api.registration.ISubtypeRegistration; import mezz.jei.api.runtime.IJeiRuntime; +import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; @JeiPlugin @@ -26,8 +29,34 @@ public class ExtendedAEJeiPlugin implements IModPlugin { public void registerItemSubtypes(ISubtypeRegistration registration) { // Register NBT-based subtype interpreter so JEI treats different multipliers as distinct items registration.registerSubtypeInterpreter( - com.extendedae_plus.init.ModItems.ENTITY_SPEED_CARD.get(), + ModItems.ENTITY_SPEED_CARD.get(), (stack, context) -> String.valueOf(EntitySpeedCardItem.readMultiplier(stack)) ); + + registration.registerSubtypeInterpreter( + ModItems.BASIC_CORE.get(), + (stack, context) -> { + CompoundTag tag = stack.getTag(); + if (tag == null || !tag.contains("core_type") || !tag.contains("core_stage")) { + return "untyped"; + } + int type = tag.getInt("core_type"); + int stage = tag.getInt("core_stage"); + + if (!isCoreTypeAvailable(type)) { + return "hidden"; // JEI 忽略 + } + return type + "_" + stage; + } + ); + } + + private boolean isCoreTypeAvailable(int typeId) { + return switch (typeId) { + case 0, 1 -> true; // storage, spatial + case 2 -> ModCheckUtils.isAppfluxLoading(); + case 3 -> ModCheckUtils.isAAELoading(); + default -> false; + }; } } diff --git a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java index d0baf00..4855180 100644 --- a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java +++ b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java @@ -12,71 +12,47 @@ import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import org.jetbrains.annotations.NotNull; import javax.annotation.Nullable; import java.util.List; import java.util.Optional; public class BasicCoreItem extends Item { - - private static final String NBT_TYPE = "core_type"; // 0-3: 四大方向 - private static final String NBT_STAGE = "core_stage"; // 0-4: 当前阶段 - + private static final String NBT_TYPE = "core_type"; // 0=存储, 1=空间, 2=能源, 3=量子 + private static final String NBT_STAGE = "core_stage"; // 0=未定型, 1~4=四个阶段 private static final int MAX_STAGE = 4; - public enum CoreType { - STORAGE(0, "storage_core", Rarity.UNCOMMON, ChatFormatting.AQUA), - INFINITY(1, "infinity_core", Rarity.RARE, ChatFormatting.LIGHT_PURPLE), - OBLIVION(2, "oblivion_singularity", Rarity.EPIC, ChatFormatting.DARK_PURPLE), - SPATIAL(3, "spatial_core", Rarity.EPIC, ChatFormatting.YELLOW); - - public final int id; - public final String resultItem; - public final Rarity rarity; - public final ChatFormatting color; - - CoreType(int id, String resultItem, Rarity rarity, ChatFormatting color) { - this.id = id; - this.resultItem = resultItem; - this.rarity = rarity; - this.color = color; - } - - public static Optional byId(int id) { - return switch (id) { - case 0 -> Optional.of(STORAGE); - case 1 -> Optional.of(INFINITY); - case 2 -> Optional.of(OBLIVION); - case 3 -> Optional.of(SPATIAL); - default -> Optional.empty(); - }; - } - } - public BasicCoreItem(Properties props) { super(props.stacksTo(1).setNoRepair()); } - // ==================== 工厂方法 ==================== - public static ItemStack storage() { return of(CoreType.STORAGE, 1); } - public static ItemStack infinity() { return of(CoreType.INFINITY, 1); } - public static ItemStack oblivion() { return of(CoreType.OBLIVION, 1); } - public static ItemStack spatial() { return of(CoreType.SPATIAL, 1); } - - /** 创建指定类型 + 阶段的核心 */ + /** + * 创建指定类型和阶段的核心(用于配方输出) + * + * @param type 核心类型 + * @param stage 阶段(1-4),0=未定型 + */ public static ItemStack of(CoreType type, int stage) { ItemStack stack = new ItemStack(ModItems.BASIC_CORE.get()); - CompoundTag tag = stack.getOrCreateTag(); - tag.putInt(NBT_TYPE, type.id); - tag.putInt(NBT_STAGE, stage); + if (type != null && stage >= 0 && stage <= MAX_STAGE) { + CompoundTag tag = stack.getOrCreateTag(); + tag.putInt(NBT_TYPE, type.id); + tag.putInt(NBT_STAGE, stage); + } return stack; } - // ==================== NBT 读取 ==================== + // ==================== 工厂方法:支持 4 条线路 + 4 个阶段 ==================== + public static ItemStack storageStage(int stage) {return of(CoreType.STORAGE, stage);} + public static ItemStack spatialStage(int stage) {return of(CoreType.SPATIAL, stage);} + public static ItemStack energyStage(int stage) {return of(CoreType.ENERGY, stage);} + public static ItemStack quantumStage(int stage) {return of(CoreType.QUANTUM, stage);} + + // ==================== NBT 查询 ==================== public static Optional getType(ItemStack stack) { if (!stack.hasTag()) return Optional.empty(); - int id = stack.getTag().getInt(NBT_TYPE); - return CoreType.byId(id); + return CoreType.byId(stack.getTag().getInt(NBT_TYPE)); } public static int getStage(ItemStack stack) { @@ -84,47 +60,28 @@ public class BasicCoreItem extends Item { return Math.min(stack.getTag().getInt(NBT_STAGE), MAX_STAGE); } - public static boolean isFinalStage(ItemStack stack) { - return getStage(stack) >= MAX_STAGE; - } + public static boolean isTyped(ItemStack stack) {return getStage(stack) > 0;} - // ==================== 显示 ==================== - @Override - public Component getName(ItemStack stack) { - return getType(stack).map(type -> - Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core." + type.name().toLowerCase()) - .withStyle(type.color) - ).orElseGet(() -> - Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core") - .withStyle(ChatFormatting.GRAY) - ); - } - - @Override - public Rarity getRarity(ItemStack stack) { - return getType(stack) - .map(t -> t.rarity) - .orElse(Rarity.COMMON); - } + public static boolean isFinalStage(ItemStack stack) {return getStage(stack) >= MAX_STAGE;} // ==================== 耐久条 ==================== @Override public boolean isBarVisible(ItemStack stack) { - return true; + return getStage(stack) > 0; } @Override - public int getBarWidth(ItemStack stack) { - return Math.round(13.0f * getStage(stack) / MAX_STAGE); - } - - @Override - public int getBarColor(ItemStack stack) { + public int getBarWidth(@NotNull ItemStack stack) { int stage = getStage(stack); - if (stage == 0) return 0xFF4444; // 红色 - 未定型 - if (stage == 1) return 0x4488FF; // 蓝色 - 已定型 - if (stage <= 3) return 0xFFFF44; // 黄色 - 强化中 - return 0xFFAA00; // 金色 - 可合成最终核心 + return stage == 0 ? 0 : Math.round(13.0f * stage / MAX_STAGE); + } + + @Override + public int getBarColor(@NotNull ItemStack stack) { + int stage = getStage(stack); + return getType(stack) + .map(type -> type.getTextColor().getColor()) + .orElse(0xFFFFFF); } // ==================== Tooltip ==================== @@ -134,40 +91,94 @@ public class BasicCoreItem extends Item { int stage = getStage(stack); if (stage == 0) { - tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_0") - .withStyle(ChatFormatting.RED)); - tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_0_hint") + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.untyped") .withStyle(ChatFormatting.GRAY)); return; } getType(stack).ifPresent(type -> { - tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.type", - Component.translatable("item." + ExtendedAEPlus.MODID + "." + type.resultItem) - .withStyle(type.color)) + // 显示目标终极核心 + String finalKey = "item." + ExtendedAEPlus.MODID + "." + type.key + "_core"; + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.evolving_to", + Component.translatable(finalKey).withStyle(type.getTextColor())) .withStyle(ChatFormatting.AQUA)); tooltip.add(Component.empty()); + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.progress") .withStyle(ChatFormatting.YELLOW)); - String[] stages = { - "typed", "reinforced_1", "reinforced_2", "final_ready" - }; - for (int i = 1; i <= stage; i++) { - tooltip.add(Component.literal(" ✔ ").withStyle(ChatFormatting.GREEN) - .append(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_" + i))); - } - for (int i = stage + 1; i <= MAX_STAGE; i++) { - tooltip.add(Component.literal(" ✘ ").withStyle(ChatFormatting.DARK_GRAY) - .append(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.stage_" + i))); + for (int i = 1; i <= 4; i++) { + String key = "item." + ExtendedAEPlus.MODID + ".basic_core." + type.key + "." + (i - 1); + ChatFormatting color = i <= stage ? ChatFormatting.GREEN : ChatFormatting.DARK_GRAY; + String prefix = i <= stage ? "✔ " : "✘ "; + tooltip.add(Component.literal(prefix).withStyle(color) + .append(Component.translatable(key))); } if (stage >= MAX_STAGE) { tooltip.add(Component.empty()); - tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.can_craft") + tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.ready_to_craft") .withStyle(ChatFormatting.GOLD)); } }); } + + // ==================== 显示名称 ==================== + @Override + public @NotNull Component getName(@NotNull ItemStack stack) { + int stage = getStage(stack); + if (stage == 0) { + return Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core"); + } + + return getType(stack).map(type -> { + String key = "item." + ExtendedAEPlus.MODID + ".basic_core." + type.key + "." + (stage - 1); + return Component.translatable(key).withStyle(type.getTextColor()); + }).orElseGet(() -> Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core")); + } + + @Override + public @NotNull Rarity getRarity(@NotNull ItemStack stack) { + int stage = getStage(stack); + return getType(stack).map(t -> t.getRarity(stage)).orElse(Rarity.COMMON); + } + + public enum CoreType { + STORAGE(0, "storage", ChatFormatting.AQUA), // 存储:青色 + SPATIAL(1, "spatial", ChatFormatting.YELLOW), // 空间:金色 + ENERGY(2, "energy_storage", ChatFormatting.RED), // 能源:红色 + QUANTUM(3, "quantum_storage", ChatFormatting.LIGHT_PURPLE); // 量子:亮紫 + + public final int id; + public final String key; + public final ChatFormatting textColor; // 用于 Tooltip 和名称 + + CoreType(int id, String key, ChatFormatting textColor) { + this.id = id; + this.key = key; + this.textColor = textColor; + } + + public static Optional byId(int id) { + return switch (id) { + case 0 -> Optional.of(STORAGE); + case 1 -> Optional.of(SPATIAL); + case 2 -> Optional.of(ENERGY); + case 3 -> Optional.of(QUANTUM); + default -> Optional.empty(); + }; + } + + // 统一返回同一个颜色(文本) + public ChatFormatting getTextColor() { + return textColor; + } + + public Rarity getRarity(int stage) { + return stage == 0 ? Rarity.COMMON : + stage <= 2 ? Rarity.UNCOMMON : + stage == 3 ? Rarity.RARE : Rarity.EPIC; + } + } } \ No newline at end of file From 44de25edceb51eb1a4ff07c7d303eef7b1a9e7a5 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sat, 15 Nov 2025 19:38:34 +0800 Subject: [PATCH 14/19] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E5=8F=8Ajei=E9=85=8D=E6=96=B9=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/jei/ExtendedAEJeiPlugin.java | 33 ++++--- .../extendedae_plus/item/BasicCoreItem.java | 87 ++++++++----------- 2 files changed, 58 insertions(+), 62 deletions(-) diff --git a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java index 1a167c3..e00e5c3 100644 --- a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java +++ b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java @@ -3,12 +3,12 @@ package com.extendedae_plus.integration.jei; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.item.BasicCoreItem; import com.extendedae_plus.util.ModCheckUtils; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; import mezz.jei.api.registration.ISubtypeRegistration; import mezz.jei.api.runtime.IJeiRuntime; -import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; @JeiPlugin @@ -27,36 +27,43 @@ public class ExtendedAEJeiPlugin implements IModPlugin { @Override public void registerItemSubtypes(ISubtypeRegistration registration) { - // Register NBT-based subtype interpreter so JEI treats different multipliers as distinct items + // Entity Speed Card registration.registerSubtypeInterpreter( ModItems.ENTITY_SPEED_CARD.get(), - (stack, context) -> String.valueOf(EntitySpeedCardItem.readMultiplier(stack)) + (stack, ctx) -> String.valueOf(EntitySpeedCardItem.readMultiplier(stack)) ); + // Basic Core – 使用 CustomModelData + core_stage registration.registerSubtypeInterpreter( ModItems.BASIC_CORE.get(), - (stack, context) -> { - CompoundTag tag = stack.getTag(); - if (tag == null || !tag.contains("core_type") || !tag.contains("core_stage")) { + (stack, ctx) -> { + if (!BasicCoreItem.isTyped(stack)) { return "untyped"; } - int type = tag.getInt("core_type"); - int stage = tag.getInt("core_stage"); - if (!isCoreTypeAvailable(type)) { - return "hidden"; // JEI 忽略 + BasicCoreItem.CoreType type = BasicCoreItem.getType(stack).orElse(null); + if (type == null) { + return "untyped"; } - return type + "_" + stage; + + int stage = BasicCoreItem.getStage(stack); + + // 依赖检查 + if (!isCoreTypeAvailable(type.id)) { + return "hidden"; // JEI 隐藏 + } + + return type.id + "_" + stage; // 如 "0_1", "1_4" } ); } private boolean isCoreTypeAvailable(int typeId) { return switch (typeId) { - case 0, 1 -> true; // storage, spatial + case 0, 1 -> true; // storage, spatial case 2 -> ModCheckUtils.isAppfluxLoading(); case 3 -> ModCheckUtils.isAAELoading(); default -> false; }; } -} +} \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java index 4855180..040cab6 100644 --- a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java +++ b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java @@ -19,40 +19,38 @@ import java.util.List; import java.util.Optional; public class BasicCoreItem extends Item { - private static final String NBT_TYPE = "core_type"; // 0=存储, 1=空间, 2=能源, 3=量子 - private static final String NBT_STAGE = "core_stage"; // 0=未定型, 1~4=四个阶段 + private static final String NBT_MODEL = "CustomModelData"; // 1~4 = 类型, 无或0 = 未定型 + private static final String NBT_STAGE = "core_stage"; // 0~4 = 阶段 private static final int MAX_STAGE = 4; public BasicCoreItem(Properties props) { super(props.stacksTo(1).setNoRepair()); } - /** - * 创建指定类型和阶段的核心(用于配方输出) - * - * @param type 核心类型 - * @param stage 阶段(1-4),0=未定型 - */ + // ==================== 工厂方法:CustomModelData = CoreType.id (1~4) ==================== public static ItemStack of(CoreType type, int stage) { ItemStack stack = new ItemStack(ModItems.BASIC_CORE.get()); if (type != null && stage >= 0 && stage <= MAX_STAGE) { CompoundTag tag = stack.getOrCreateTag(); - tag.putInt(NBT_TYPE, type.id); + tag.putInt(NBT_MODEL, type.id); tag.putInt(NBT_STAGE, stage); } + // 无 NBT → 默认模型 return stack; } - // ==================== 工厂方法:支持 4 条线路 + 4 个阶段 ==================== - public static ItemStack storageStage(int stage) {return of(CoreType.STORAGE, stage);} - public static ItemStack spatialStage(int stage) {return of(CoreType.SPATIAL, stage);} - public static ItemStack energyStage(int stage) {return of(CoreType.ENERGY, stage);} - public static ItemStack quantumStage(int stage) {return of(CoreType.QUANTUM, stage);} + public static ItemStack storageStage(int stage) { return of(CoreType.STORAGE, stage); } + public static ItemStack spatialStage(int stage) { return of(CoreType.SPATIAL, stage); } + public static ItemStack energyStage(int stage) { return of(CoreType.ENERGY, stage); } + public static ItemStack quantumStage(int stage) { return of(CoreType.QUANTUM, stage); } // ==================== NBT 查询 ==================== public static Optional getType(ItemStack stack) { - if (!stack.hasTag()) return Optional.empty(); - return CoreType.byId(stack.getTag().getInt(NBT_TYPE)); + if (!stack.hasTag() || !stack.getTag().contains(NBT_MODEL)) { + return Optional.empty(); + } + int cmd = stack.getTag().getInt(NBT_MODEL); + return CoreType.byId(cmd); } public static int getStage(ItemStack stack) { @@ -60,25 +58,23 @@ public class BasicCoreItem extends Item { return Math.min(stack.getTag().getInt(NBT_STAGE), MAX_STAGE); } - public static boolean isTyped(ItemStack stack) {return getStage(stack) > 0;} + public static boolean isTyped(ItemStack stack) { return getType(stack).isPresent(); } - public static boolean isFinalStage(ItemStack stack) {return getStage(stack) >= MAX_STAGE;} + public static boolean isFinalStage(ItemStack stack) { return getStage(stack) >= MAX_STAGE; } // ==================== 耐久条 ==================== @Override public boolean isBarVisible(ItemStack stack) { - return getStage(stack) > 0; + return isTyped(stack); } @Override public int getBarWidth(@NotNull ItemStack stack) { - int stage = getStage(stack); - return stage == 0 ? 0 : Math.round(13.0f * stage / MAX_STAGE); + return isTyped(stack) ? Math.round(13.0f * getStage(stack) / MAX_STAGE) : 0; } @Override public int getBarColor(@NotNull ItemStack stack) { - int stage = getStage(stack); return getType(stack) .map(type -> type.getTextColor().getColor()) .orElse(0xFFFFFF); @@ -88,32 +84,28 @@ public class BasicCoreItem extends Item { @OnlyIn(Dist.CLIENT) @Override public void appendHoverText(ItemStack stack, @Nullable Level level, List tooltip, TooltipFlag flag) { - int stage = getStage(stack); - - if (stage == 0) { + if (!isTyped(stack)) { tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.untyped") .withStyle(ChatFormatting.GRAY)); return; } getType(stack).ifPresent(type -> { - // 显示目标终极核心 String finalKey = "item." + ExtendedAEPlus.MODID + "." + type.key + "_core"; tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.evolving_to", Component.translatable(finalKey).withStyle(type.getTextColor())) .withStyle(ChatFormatting.AQUA)); - tooltip.add(Component.empty()); tooltip.add(Component.translatable("tooltip." + ExtendedAEPlus.MODID + ".basic_core.progress") .withStyle(ChatFormatting.YELLOW)); + int stage = getStage(stack); for (int i = 1; i <= 4; i++) { - String key = "item." + ExtendedAEPlus.MODID + ".basic_core." + type.key + "." + (i - 1); + String key = "item." + ExtendedAEPlus.MODID + ".basic_core." + type.key + "." + i; ChatFormatting color = i <= stage ? ChatFormatting.GREEN : ChatFormatting.DARK_GRAY; String prefix = i <= stage ? "✔ " : "✘ "; - tooltip.add(Component.literal(prefix).withStyle(color) - .append(Component.translatable(key))); + tooltip.add(Component.literal(prefix).withStyle(color).append(Component.translatable(key))); } if (stage >= MAX_STAGE) { @@ -127,32 +119,32 @@ public class BasicCoreItem extends Item { // ==================== 显示名称 ==================== @Override public @NotNull Component getName(@NotNull ItemStack stack) { - int stage = getStage(stack); - if (stage == 0) { + if (!isTyped(stack)) { return Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core"); } - return getType(stack).map(type -> { - String key = "item." + ExtendedAEPlus.MODID + ".basic_core." + type.key + "." + (stage - 1); + String key = "item." + ExtendedAEPlus.MODID + ".basic_core." + type.key + "." + getStage(stack); return Component.translatable(key).withStyle(type.getTextColor()); }).orElseGet(() -> Component.translatable("item." + ExtendedAEPlus.MODID + ".basic_core")); } @Override public @NotNull Rarity getRarity(@NotNull ItemStack stack) { - int stage = getStage(stack); - return getType(stack).map(t -> t.getRarity(stage)).orElse(Rarity.COMMON); + return isTyped(stack) + ? getType(stack).map(t -> t.getRarity(getStage(stack))).orElse(Rarity.COMMON) + : Rarity.COMMON; } + // ==================== 核心类型枚举:id = CustomModelData (1~4) ==================== public enum CoreType { - STORAGE(0, "storage", ChatFormatting.AQUA), // 存储:青色 - SPATIAL(1, "spatial", ChatFormatting.YELLOW), // 空间:金色 - ENERGY(2, "energy_storage", ChatFormatting.RED), // 能源:红色 - QUANTUM(3, "quantum_storage", ChatFormatting.LIGHT_PURPLE); // 量子:亮紫 + STORAGE (1, "storage", ChatFormatting.AQUA), + SPATIAL (2, "spatial", ChatFormatting.YELLOW), + ENERGY (3, "energy_storage", ChatFormatting.RED), + QUANTUM (4, "quantum_storage",ChatFormatting.LIGHT_PURPLE); public final int id; public final String key; - public final ChatFormatting textColor; // 用于 Tooltip 和名称 + public final ChatFormatting textColor; CoreType(int id, String key, ChatFormatting textColor) { this.id = id; @@ -162,18 +154,15 @@ public class BasicCoreItem extends Item { public static Optional byId(int id) { return switch (id) { - case 0 -> Optional.of(STORAGE); - case 1 -> Optional.of(SPATIAL); - case 2 -> Optional.of(ENERGY); - case 3 -> Optional.of(QUANTUM); + case 1 -> Optional.of(STORAGE); + case 2 -> Optional.of(SPATIAL); + case 3 -> Optional.of(ENERGY); + case 4 -> Optional.of(QUANTUM); default -> Optional.empty(); }; } - // 统一返回同一个颜色(文本) - public ChatFormatting getTextColor() { - return textColor; - } + public ChatFormatting getTextColor() { return textColor; } public Rarity getRarity(int stage) { return stage == 0 ? Rarity.COMMON : From 15322767f00dcf6a6d6da84f9a3393692bdeea29 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Sat, 15 Nov 2025 19:39:20 +0800 Subject: [PATCH 15/19] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=9D=90=E8=B4=A8=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/item/basic_core.json | 23 +++++++++++++++- .../models/item/core/basic_core_energy.json | 6 ++++ .../models/item/core/basic_core_quantum.json | 6 ++++ .../models/item/core/basic_core_spatial.json | 6 ++++ .../models/item/core/basic_core_storage.json | 6 ++++ .../models/item/energy_storage_core.json | 2 +- .../models/item/infinity_core.json | 2 +- .../models/item/quantum_storage_core.json | 2 +- .../models/item/spatial_core.json | 2 +- .../models/item/storage_core.json | 2 +- .../textures/item/{ => core}/basic_core.png | Bin .../textures/item/core/basic_core_energy.png | Bin 0 -> 2296 bytes .../textures/item/core/basic_core_quantum.png | Bin 0 -> 2240 bytes .../textures/item/core/basic_core_spatial.png | Bin 0 -> 2219 bytes .../textures/item/core/basic_core_storage.png | Bin 0 -> 2230 bytes .../item/{ => core}/energy_storage_core.png | Bin 2691 -> 2645 bytes .../{ => core}/energy_storage_core.png.mcmeta | 0 .../item/{ => core}/infinity_core.png | Bin .../item/{ => core}/quantum_storage_core.png | Bin 2608 -> 2569 bytes .../quantum_storage_core.png.mcmeta | 0 .../textures/item/{ => core}/spatial_core.png | Bin .../textures/item/{ => core}/storage_core.png | Bin 2630 -> 2588 bytes .../item/{ => core}/storage_core.png.mcmeta | 0 .../extendedae_plus/recipes/storage_core.json | 26 ------------------ 24 files changed, 51 insertions(+), 32 deletions(-) create mode 100644 src/main/resources/assets/extendedae_plus/models/item/core/basic_core_energy.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/core/basic_core_quantum.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/core/basic_core_spatial.json create mode 100644 src/main/resources/assets/extendedae_plus/models/item/core/basic_core_storage.json rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/basic_core.png (100%) create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_energy.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_quantum.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_spatial.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_storage.png rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/energy_storage_core.png (52%) rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/energy_storage_core.png.mcmeta (100%) rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/infinity_core.png (100%) rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/quantum_storage_core.png (54%) rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/quantum_storage_core.png.mcmeta (100%) rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/spatial_core.png (100%) rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/storage_core.png (53%) rename src/main/resources/assets/extendedae_plus/textures/item/{ => core}/storage_core.png.mcmeta (100%) delete mode 100644 src/main/resources/data/extendedae_plus/recipes/storage_core.json diff --git a/src/main/resources/assets/extendedae_plus/models/item/basic_core.json b/src/main/resources/assets/extendedae_plus/models/item/basic_core.json index 5b74a92..6bfdc4f 100644 --- a/src/main/resources/assets/extendedae_plus/models/item/basic_core.json +++ b/src/main/resources/assets/extendedae_plus/models/item/basic_core.json @@ -1,4 +1,25 @@ { "parent": "item/generated", - "textures": { "layer0": "extendedae_plus:item/basic_core" } + "textures": { + "layer0": "extendedae_plus:item/core/basic_core" + }, + "overrides": [ + + { + "predicate": { "custom_model_data": 1 }, + "model": "extendedae_plus:item/core/basic_core_storage" + }, + { + "predicate": { "custom_model_data": 2 }, + "model": "extendedae_plus:item/core/basic_core_spatial" + }, + { + "predicate": { "custom_model_data": 3 }, + "model": "extendedae_plus:item/core/basic_core_energy" + }, + { + "predicate": { "custom_model_data": 4 }, + "model": "extendedae_plus:item/core/basic_core_quantum" + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_energy.json b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_energy.json new file mode 100644 index 0000000..3392036 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_energy.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/basic_core_energy" + } +} diff --git a/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_quantum.json b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_quantum.json new file mode 100644 index 0000000..ff7dbf3 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_quantum.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/basic_core_quantum" + } +} diff --git a/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_spatial.json b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_spatial.json new file mode 100644 index 0000000..3db2c96 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_spatial.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/basic_core_spatial" + } +} diff --git a/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_storage.json b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_storage.json new file mode 100644 index 0000000..4f5ced8 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/core/basic_core_storage.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/basic_core_storage" + } +} diff --git a/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json b/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json index ca84dae..2f34e57 100644 --- a/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json +++ b/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json @@ -1,4 +1,4 @@ { "parent": "item/generated", - "textures": { "layer0": "extendedae_plus:item/energy_storage_core" } + "textures": { "layer0": "extendedae_plus:item/core/energy_storage_core" } } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json b/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json index 8e6313e..1aa66dc 100644 --- a/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json +++ b/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json @@ -1,4 +1,4 @@ { "parent": "item/generated", - "textures": { "layer0": "extendedae_plus:item/infinity_core" } + "textures": { "layer0": "extendedae_plus:item/core/infinity_core" } } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json b/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json index d296256..929f5ca 100644 --- a/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json +++ b/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json @@ -1,4 +1,4 @@ { "parent": "item/generated", - "textures": { "layer0": "extendedae_plus:item/quantum_storage_core" } + "textures": { "layer0": "extendedae_plus:item/core/quantum_storage_core" } } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json b/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json index 9fd37c2..ce05cc2 100644 --- a/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json +++ b/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json @@ -1,4 +1,4 @@ { "parent": "item/generated", - "textures": { "layer0": "extendedae_plus:item/spatial_core" } + "textures": { "layer0": "extendedae_plus:item/core/spatial_core" } } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/models/item/storage_core.json b/src/main/resources/assets/extendedae_plus/models/item/storage_core.json index e4bf815..9dcb6ed 100644 --- a/src/main/resources/assets/extendedae_plus/models/item/storage_core.json +++ b/src/main/resources/assets/extendedae_plus/models/item/storage_core.json @@ -1,4 +1,4 @@ { "parent": "item/generated", - "textures": { "layer0": "extendedae_plus:item/storage_core" } + "textures": { "layer0": "extendedae_plus:item/core/storage_core" } } \ No newline at end of file diff --git a/src/main/resources/assets/extendedae_plus/textures/item/basic_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core.png similarity index 100% rename from src/main/resources/assets/extendedae_plus/textures/item/basic_core.png rename to src/main/resources/assets/extendedae_plus/textures/item/core/basic_core.png diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_energy.png b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_energy.png new file mode 100644 index 0000000000000000000000000000000000000000..e1b24d11ec4f8fc1e6a574bbd6f8da289ac6f913 GIT binary patch literal 2296 zcmb_e4Nw$i7+x?DNe41a2Ta$+)QY|Rxm#{;^K^g%Aw7`u6w)Tz+ugfc;BJrG<=0X% zvyed%HN+&bK*JozY0R9+Kqm$)bz;QG-*U>tVMfZIiW$kiJ&sEaf5z!%_V(LvpZ9s6 z_vib*Enko}cWhWx7z9CMQ&UV9aF0;0&=BxH<@#+F+(vs+UXdZ_$*0vT2->=BA_RrJ zCt9mu!Nj*yRCe2%0sg*u!$Uf&$wFhv+sUea$ThEb>MqlQQFGPom%y zQ%b$U!qPM=SDMQicx29Ocvdk32wZ}~!o{vUx6Bk95g#uD#_BYNz&?nQYeeEzhj5m8 z0h}m#1=ye=P!7jQSZ~niX`4PyOUJ?_PEr_7Vg!K_28O^HoQC~B1i16^cE(~#_B#Vl zM#QNo9tOjTii$KvT8-p&V1&V7P&r5v1qf6waVu;w>Xu`M7)*l9c}0&RN^V$XWNlJ` zVnl${!5Cbg0Igg0=LuvCD`q_yp~2Odd_bNH;5-H1JfCx(!-PD+CAbwCV2J?MrZ$uJqGq2QUBqMMhBIq++K*w?70YMff0oTZaIC^Hm2uPrIXfmFxhNiO2tRh_ zP+I%@>07gMy7n!JU9HIuu9pjIHO&bv%{$BXKh>pdc%x}m+Y@Uo)1Ud)6WUSpLf0pY zmN$GKL_2$t?A?%kWnDx|T~G3PW>uR~-Bn+ab#2C1qtZKqZsu$*dncVbo13rQe0(7C z(AD#|TlG3*UHG=f?t(3C9l_nfnMZ#OTas0=VdSJY(;!>+N2b{=8^Kn&j1OIqjX78-6}DcakIL<0}YYAA5R4>wzzt3iQyD zh?O7o(*swd`Yl5DvC{mdD<^kpr;MuaDTrRZV&tvdf#4aDq0c?L?^3J!ZIYUlX4;$Z H`l^2b?`9wd literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_quantum.png b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_quantum.png new file mode 100644 index 0000000000000000000000000000000000000000..7883ffd5c20a55b3e5b49d58d56fd667108dc579 GIT binary patch literal 2240 zcmb_eeQeZZ94^Sm*fNC-apAL;MMh???X`E;7LGY~W1F|zCOZd2oa?o3@9OTZ$F}_3+sTlx5HIQVZTq~> z@A>_H&-=FZ#f7=ai9-_+1WC@%b4-TkfyR;05B`t3(J8>wfKc8v4MCDpjH4H_dQB>V z^lMbyQ}wB?0$x-DCP7j?z!V9DAR0l&XGTJTSOIj@1H4Mmj{Uap0EQ}(9h+itk*-iS z@F{sS!=Pklpx}pYAgHiCP zmAV~+QoC{pgyOV8EmkL3F(M*_2+BknIYohz7{`Sw!~SS+NhE+D1VB*NAeM?_Lq1hk zHJ^G9>iFXx0bp%iu6T^QY6%45Av8Uw3Z@Y&$X(HzyCwvP$v{&p!y?G3f-*-N*@XD) zFc5S#>{eBOcc+TGC8K7m$%3X&QG$|Mt&P2H0&oaAuwzEoaM&`^=BCU%#qbQ5L9#qa zc0paLq{uZrp_Ii<*?5NKEo=`c^o%6v!UMsQ$jfRtAi#u`fZzp0DCot|cp3R@)vtzO zV5p9cs&KjZ{Gg@_K@sFT>=?}1q$m!uGS(f2ATxLZUheHo8$g&j|Jq#;aSV{I+*>1L?umTsF z;J=;KP$fY|8$|)D*+%2EWae;+WLU^U0$ku|DhVyKWAm$h0FvIP`CZX9Ro1J8Fv#-4+C9)*#J$98 zLe>4H%M?r5WY&t?Bw54($1pf2SV^4WL}0aY9>&bc-KqDKPEl?%#nT+mSh~&lDAHqP z5q(0?3*gR4V2_^6!}+pHeV+2t_ePV+^d-L|*FMn-SJ4ci#TUls5o z{;~llu`w*npH~Ee%H{0;RimbfBFQguwLz~zPrC@u1ExB?Kzi|Gh`O9~g zd=+U!eOcGAx^wvn@8|8W%N?{o?eNC_H$QRMR-LI`lu)|BpI>^Ss_n#EO@2it#*KKr zX6d+L17^3h|JdGnp!2WUMLPrUbZ$O)_Hia~e9|&D$>PL5PW$fi$}K6rAKu=zK6me? zH6K;8T55Wn8%g z7B?2OKDTwRBr#QQ?BwTVl)ZLiskfv^NKEYe*xaU7NlTU-d6mA_JE^^NIJNxUS*_RQ z)t5ThT(0)?j`M?eB_iwVa-fJ~W#wC5PFvNuu*3Pxp_{`RjvpD)D_wqa;`0lGyUSAR z$0U>|7hY-E+}dZ@FKw=r3oVCF*Q&^eU%ZE8ppBO&Y;Zp9^Yynl<<8W=pM!qhVLmdg ze$mP&9R8=8zg=;l92t0Z)E@Qhr3#`r|X%0nzu=dL%Cy+rnN-VG5)?GQY_Z(erd}HM26gsv~ET8`m DIzs=d literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_spatial.png b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_spatial.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1e5c25ea5a6cdda80a957a1a795744efb0900e GIT binary patch literal 2219 zcmb_e4Qvxt96vN}6C}WZj1V@?V|D{(& zKqj97%!bOBQy2+x5krLGNJwOWK}3@gaVp?I2eP2TfT0j#B0Ar7U1i8uh)u5V-Fv_H z`~UtQ@4Z`FT=?A3!D9y_2r{%F-#Hhy!;L2?0sfD_(JR2_=}`X58iEWNX*`3Fcejo~ zkc7>$yHqcA&EZ8gXc8pV15A-%2%-^WdUhlvh~+>>J-{a`cC6>XVGNZeJ66KDNLMHa z_~rbXFql_U=oV|rMVo|W&p@X~ct{Wgx`0N40Y&2@b}Y)v!@e<0U}zMgm)kLiVGu2K z6{9(77@#&2g^MIfqgI>A%6Y7;nae_Hl4b~!CMXK0Y&=EsB!|X+7&I4_y!>2eUd$ML zvtxc;5Ag(1RaIrGGMm(}kDzQeo54ZTI7HxDwW13VT+t@t|H^xR75Ml2xrL~HKq5Fq9PO|1xvAh#0AoM3np;&Z}4 z(ABV8RRjH*D(;tz(yWO=r4GAH0;e5=KAU7&;wjc*W`RiJ97{^LnX`CsL9lQ*LwT&6*~0Aio}2{s_|809UG}NG%bEY~tpCp$!ZN9nx#(&ZLs;6@B>u)4Z zMdr8VW~_=hztxdnr}NUmR@Zx{mw{8w$H%VTl>TF*zr%za@^yW3NMf@}o@qKe@|_f2 zDPMXeZ^xA_hkjaoi#neUdUgiXbTTXDqwM;;?f#>S7J3T5%vAk(v2{`0f|gri!fa>hcJ*#4PX?UFqdH@B=ftrt1x+m*yQfM``_>T z{eS<*_kCSk&btInYr7l*u6ncKvV*hRTuyD`DKETg?Lj zxu7NtifcSRv8G&PB`kLaniJ(9K@jLX8Vy#2G%o7EV!Rw28)gDSV-UUEfjJF_XsNph z%~QevWla<=k|d4VSd+~z*sNyzbd)A(h9GHzqHv1kD3T-XXyS)KcVWrTd0n#-&fuE^ z3+TGa5kw>sF-6QKC0s^OEXx`kG>t<9u2qM0K8lC5se=qIpow8w)nz4w8jQT4RO${4 zN{z=5RFkwJEs-afF(S&V1Z5(Pm|{RlOybnaa7E0yBod$k1VKpGAeKsE)qtWaT0prE zb@KCF4q$HG?xc@KQlM#(52ZRX4tj<&o++BuSpL*0rb z`>TgQ86RciEEbM2-vxy|Bk?-_P_QI&ekB~_VZd^bF9U=cD#OrZ8o4~BLJ331P@OrZ z!tLe?Lz>QqL{R8*U@&HrEK8h)=dF^Bwc>Wt0&jkc1?L%o#z{#6KoHHM9mJ!6^IeKq zX;jvjAMbKW5h2IFUTMK5@fJIc({?*#V=WTS+GsxxNC8MJE7&PX8dNhUEW?GySKP^J zsFENfCD=qWRD`pv--1ha3y-rD#X}yF5g19NDB5mxbF4wQ0$GElt4^$sVz4+ds*urG zPjI|w^tuBRjUof6Aa0iLk&j36oR}X807&|P;>X=+ieHcLVc;x-xqE1H5%&|X@l_9& zPV-hjL$d--nk_b*WQ=;UlpU74~(60X|d) z;Lb^4j~~pV^<`Y;kYN71vi`qd2xGsDcNj6W`C{Mh*jr&CV>o+j(QZD5NK;$kUPtnZ9Utj z57dkqOI{6(FZ=Ah^|_y3tb22|GyCS-DWy4Ejx;Q}{epi>SLO5R4PUp`)H!%czjb&D zP1SWwOG(e^J=VGTVoPK)a&8lnv%O9f=#2KS#!TnO9k6d(a{QWib=|h{>RXpjUCO_3 zbnCK(y~{FoQy-mdUF+GWlL?n)(kEk2d~U6y|$ejWZXn`Ug?s361~& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png similarity index 52% rename from src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png rename to src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png index a32e5d19030344b7d4d6fb03f4155dbc75033cf6..2513f8e75b22279b212597c6be6a11b0ed310058 100644 GIT binary patch delta 1048 zcmZn`y(+TdC=-`yh@rWaiJ6tD#pLr$%E;V5OaUs%rlyI;h8708sfMW*x`rtx=DHS! zNh!K!Cdp=I<|c^-mT4)Q3z$ooh*CMZfkhnIhJ`FPlV`AsO|E8(tT$QMsm;K^oa*V~ z7~;{nbV_VSbg9I#`sW)QH6zn9A1^B_UU@U>RT#Ih)haVp=Z{L9TxIblI%^(S-Pj|e zvFHr=Z95{$zLl_nz~W=NEG*R!pkD#q{9&cJbf-73{|tJ50iuHTcb2oMcxVZBYA>aXW5S zT*%7Tou{6=ibfm^UsvOocJV<~t@h_;L$~Fn3tIZ^?AQ;ei|-Q(GtDyGur7T^?IT~k z{~J%tP2uEk(%qzaL(Jf+h?c>@`*B?#{{0NIxZkxd{me-YiP&yVW0-OE~Tc1J&S1w+{3SNnf^Hiasm^=o&YbfxXLBGHRV*^F&89U@9VWoEpA=?Tl>ZC@8+3@9hYpB(zQDupKhPP zvXO7!2UdpUec>Qs#u4DmUs}`n z&Q9yQ1>*&`MGRi$=eIUlCurIEE?(X#zpL&@buhESr>I_*^FC^yeywHcG7}OttF~mg zH(Sd6{@vq$5_&3j%s0GWb$QZ6rqhbHYaAktf}Es16VETvIi{s%z#r4&V8*jEn`N(* z01zj!|&Uz#Rhy1j{-y&1{`0!78o_$49^qhoSI%FG1)VT zJ5^`rYeufl7J*OCKhG6wOYB(rQu5=x$E6<^X3w_>{nulWmoISm;_f7is_-8*%UeYk zN2y1DPI!AG5vX;|nzzqZPR>8wcyL=oNaTZq|4%Zza!jmGzj15hVI%&1_QEM1GGb4TTMP20ji;Y`_BMxATy=v`=odeR2_?I^8vc8JSn-uV@x|SO^y&P}3_!r)>FVdQ&MBb@ E0KR$Ir2qf` delta 1094 zcmcaA(k!~+C=-`ah>@X{fvJ_D`Q-CV%E;V5OaUsUrYRN%$%z)aDP{%+x<)A`NxF#^ z7OA>s=H|xc#%bop$!V#Z3z$ooh*CMZfkhnIhJ`FPlV`AsO|E8(tUuqx)5^fWJlWI5 zF~p;D>y&t(=v0Yg^~(jFJzgdRJeO}1+wFK`PPa~C;^y2gwcQVNX5Glu(^1wtHEqSm zu9i%b+pTdG&y!NbrB1Zz<*0dinsDcdxn0kd_$j>5bW1|Cf@+B_JC}=)z5XdnYxZMh z8{h2xeeS#6`|tbCSI&1Aa;pEJ@$rb8I6MD5kbvJ}W)@GGCUR#!vuz@?JO70{A^Z(H-)ghn zu7CJW{652lUvF8p_SQ1=ocR6XP0mE0szWl?K5zd03+K%V3bM)Fx@qT65r(Pv>{jJ8 zu^kVNQtWMh=`iDA1k;8`yDd*m4u8LayYpdvL{o^-No`fuJ8W^ccBPu?|Gw_SFuhFd z^5^UIOGLDR;lc3d_rJ_GfhChX+4|~T%HJy}f3l0JPWzD@^Jv@VLp#{>rn`r{x#gUB zGwjdxDvOdgx{oFsyC@sJjqbheXd%1+lCJEKEs5FT6q`Tcti$!y zqEZ%i^@e#Tu5-nFkDbVnxJ`sH;JWma57oD4^0jnU{Qj{1nXZPX>32EyUrO9wlO6=v zPb>*?&k@@pmh-}4xtHftmUw{^Ld(wWFf-;`yUs6?fP+KU+kXx;4eKDw}Wy&FxwtmQXl!A zUE4j2^SsEWEkRxfKbrH_EhyXB*SxjPA=tLlWmbmG*_+1Ce|*`@-*N2nYs(A5+lrQi zeQuWbGc~wr-?Vut^NC-M>%NOIoG$umYahV5Ip52gse2dBxvST&@vWE9;Pn=JJNqB<&3cMaMa{-)3_#%N>gTe~DWM4fK_%y^ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png.mcmeta similarity index 100% rename from src/main/resources/assets/extendedae_plus/textures/item/energy_storage_core.png.mcmeta rename to src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png.mcmeta diff --git a/src/main/resources/assets/extendedae_plus/textures/item/infinity_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/infinity_core.png similarity index 100% rename from src/main/resources/assets/extendedae_plus/textures/item/infinity_core.png rename to src/main/resources/assets/extendedae_plus/textures/item/core/infinity_core.png diff --git a/src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png similarity index 54% rename from src/main/resources/assets/extendedae_plus/textures/item/quantum_storage_core.png rename to src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png index 6b63b830df71d02adfa7e6ee2e1b4cbd6e4994b0..6fc8508d46a5ccb9cd35a0cb3c22a316c8779ddd 100644 GIT binary patch delta 972 zcmdlW(kZgxC=-`yh@rWaiG`K1@#OPN%E;V5OaUsEmPv+Y=E=so=BDPBx+X~`rn;7v zhNily#+C*aX$FZ&DHdj%3z$ooh*CMZfklkl5Xr`cEH;y8u!>EtW{a#Z{iU>-fq_}l z)5S5wqjT$&`i!1Jnd9;2ALneJS-6e!w!!oy6&3r%rBe>c*3SqE^SYI#S+A-3>9PDz zch5vY-uegp+aBs4cA0%e<=LU!x;wem+vYwmTxVPE{r&6luQl&?T1!tlUw{2`<^KKi z-@mrIzg?;2LHsGhTkP}K`}qX#VW|Jooi=OMInDjAg4b}0sQ$eBdaWqKWf6VxX}fkV zetzM?y(X)z+zrp3edcOd>OK1aQ1<$|xrcs;J*@ca{qBY39llbAf*&XBR{KV%WwMoR zTqbFews+Y=TZRK?o-VUV`94pIfl(t;IO36ac$7s&f;hvhG=_pVFC@L^oISvI#_;vl zdXee(F*Yn;6?Gs~t73-1|Y*y^KRy^lV&&hRtC-MN1ra{aO6ztqC8YqsgRx?Mi(@4s3c zeJ9~CZK85;j_u1|bFaTNl6|p^bA=Iq%|5F{^T2x5YbMQ`R5|axE^JHE>b~wjz5UI- z;K{R$iksHhSbPw#OkmWGo;0EILggp9>2f7SD>lYGI~Z_)(_y3awE9!b+%vp+1mA=# z{jv7``6ZgdmVw1$4GSA4C#5&-To;q6vRD>8ZS*M}Q}GJNE<;lD(le#1inrd+`MKu!ndTb_ hnhfVAUHE^xd4BKQYoZ6I{rt-S1fH&bF6*2UngF>Zy;cAK delta 1011 zcmeAa*&wpvC=-`ah>@|Cp(zkeKF_3#%>Ba@pps^2VQgSwX|8K-X<)9KXl!DkYhjk0 zrki46Y;0&`Xp)p{Y`M9BxrB)*m6ID-#JCNSY+T4oP_ z978-hw@&fS5YCopn=iT8w>!6YnXB)uRgQZET%Iln+BjuL!9q9jYrSDCf-HsF9B~2S zMK6Lx&TD#YO-bH;VaY3}-n|XmltR3HU#sSxb)CKK<&we|DnUkiMMgVs%AI~#vwQx} z`{n=M|K0yzFeLQp{waCe_{)CRYnJZZAm0#pwe@nP_m8V~ir-nvert**?A$Pa|MsW~ z4c$c>ck^z%!`yKC>vV<*mtGbf<#T7AxKbnBfB(~kTRPYe$}!0FvCZ4{o8ih7&uNa! zEJV5%tbVn8<85w-r)I7E^0f>y_JRBhn4Io$20gMazimfs)X_vu=EO!hUwHU>CnH^M#V#GmqSGV>nX8@Aq8S@eEJS`&YbYYBpvi zeaxPtdfMyfy(kukq#Wf`(bPG2Hu@W1it=FHHbKZLj(5Rp!@wOo8h}nyJ8UF=<|>1X zN$&L~Rslvkf76c{6%DQSUJ{|P3}@bOE;>n}p!$VCzuXEt{P$THgWHNmXSjd#Ac#&gQzL|>cNoJOaCTEvc)F{XT-6TMmLPhRK$eW~weO=kC)_T|XvSIj}0+WKr&sZ63y7)W;8&vrF=CAPouW(&qI{PzS zPCL&+wIrq46&bEZG@^<80k(o3^$wo%P6eE7o<09PyZ^@;r*eN% z3+!v#9G7-a<962TkcJyOI=8l^bj-AUZui=mGDl>?Q6?_a5JPh-6B8?Aqsix)l##iAm;zLiQ;d?0&CFADjZ6%ab(GERqty&t(;Bt}U_S;vRCT~3$(orlMRvR$Qf@#u@899^G(rgaYIw%-UY;9rBdNj|+ z#BRmGACG$ce?6GCW21(?UqyrMgdG8{?I}uZ|9g^>yiac}xHvmDTQyqs?_0+D>DAG* zCrX}w{l4b>`#JvSerh>!+*7TOIVu-os?%4h-<5o~+bQ(0Ykgn}d)Fd{3pZ|PGOU_) z?z8Xi*$>+VUiMDjS1r}h*!W(QVP)~{)uv`;UGwG{&(Od0=Yuqlean&g{0#cX{cE%@ zx9B|5NDzO$tJAPq`iBP@ymS`oHNZYmQVQikGtzMpH9T-dzUD+&#e|% zl`VMNZvE1v&&zvwcrV|&*7L38UX!VjiI2h#&W0C%4cpfJUlbvGLs@cmV)zT~buqh6 zt-cf%H+7rUky|BqCgvM<+}W{;;n3^P(FdNW9TRrHa4#oGE%(HoRJLzQGq*T?`6u!5 zNDuFuNe1!tZ(bZIo7$Bk^w2tibH*G?`zhbc&S~?OZ)67s$(^=eOXGu@zkH96xXE$J zrbznL&!X?_E~W>cypVai{x~BS*UryJKP};(v&%U|*yj4AhU1@rA<11Wc>VT~U3ozd zXC@Vu^rg>gpXL8=lU?TfjKg__+FzLe-R4)>z;%9#>O09jXY0>KOk1}%bejB==F*#u zQ*#R^p2^#KU1e!9R=66VNLntAuvHQzH!c#o%wttncu&Xqyu$M=ArN2}&# xdmcaYGd=dp9OqKqq=Wm}8-yO;`u(}No-uds6MZxBy`2m|;OXk;vd$@?2>>gC$KwD1 delta 1031 zcmbOua!h2yQ6?^<5F-OCQ$s5Q)5+(Vl##iAm;zK%ER55VjEzlojS>ygbj_1YjC2#z zl2UaO6Ae<#(^3pA&C@J47ciGFDHEY`ay^R#vIPrSY$nfO6`Nem7Fn8?6;Yw$wGETA{%UQUsn3w{K7(1HA*76%x#s2b*)`Q~v>EDy zR+_B(rm4Q~|HSuw^}VZ>o;LmP+xqA?=jDtSme&~^^q+h6&lmT3$Nn#7_!7IP=c2gW zi==`Nb5x>PKbu$;RPOdQFb#e4VNL3%y=*;pD~+0#Uv&K1m(Ot8c%KN5o4OK@`#fXY z%}4a>kM0!T+r4`oTf^Dgc4ohQn&N-&ODWsbaH2j})#d`L!&I}Qi{`1#yi|BsHnGCS zr(!|(g|93hJ0_>Rm{H4L) zvoB_HjAyBBGmk!fyRC8SO_!hA4u!(s-&^a}$u0dMpJTDiv_C)t8tp1?#s0| zE0;cvc-MaazUDMD8J&5PcnmBm@=}#09&X(7P+|Vt>h=|C9e1JK$p*VoDf zj%VvSW+tc_9IUYMKfdm)gCW0H>(sSPSMw$Ye*UT!5w(}gf9>S%{pS7^%5GBC_HU!y$v z>?FVc$IqFvwjDow;$(wn&e96IFOw83ihNJGirx`5ynKp5KJ*|^K3cBA+-_NrywTpk zZJpO_G`Pb0#d!AE@h^Dcpv-@z=C8K7;p~gK=X9b|~x?YP>kV5n%-LTbIsy^^8bA52$auc00K`}KbLh*2~7a%GS Date: Mon, 17 Nov 2025 00:49:53 +0800 Subject: [PATCH 16/19] =?UTF-8?q?=E5=90=9E=E5=99=AC=E7=9B=98=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=90=88=E6=88=90=E6=9D=90=E6=96=99=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E5=8F=8A=E6=96=87=E6=9C=AC=E8=B0=83=E6=95=B4=EF=BC=9B=E9=85=8D?= =?UTF-8?q?=E6=96=B9=E7=B1=BB=EF=BC=9B=E5=8E=BB=E9=99=A4Mixin=20plugin?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 + .../ae/items/InfinityBigIntegerCellItem.java | 3 +- .../datagen/CraftingRecipes.java | 377 ++++++++++++++++++ .../integration/jei/ExtendedAEJeiPlugin.java | 6 +- .../extendedae_plus/item/BasicCoreItem.java | 21 +- .../mixin/MixinConditions.java | 23 +- .../extendedae_plus/util/ModCheckUtils.java | 3 +- .../assets/extendedae_plus/lang/en_us.json | 22 +- .../assets/extendedae_plus/lang/zh_cn.json | 20 +- 9 files changed, 437 insertions(+), 40 deletions(-) create mode 100644 src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java diff --git a/build.gradle b/build.gradle index 8d13863..5f0b1dd 100644 --- a/build.gradle +++ b/build.gradle @@ -99,6 +99,8 @@ dependencies { modCompileOnly "curse.maven:advancedae-1084104:6939473" modRuntimeOnly "curse.maven:advancedae-1084104:6939473" + modCompileOnly "mezz.jei:jei-${minecraft_version}-forge:${jei_version}" + modRuntimeOnly "mezz.jei:jei-${minecraft_version}-forge:15.20.0.112" modImplementation "mezz.jei:jei-${minecraft_version}-forge:${jei_version}" modImplementation "curse.maven:jade-324717:${jade_version}" diff --git a/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java b/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java index 627024d..655cc0c 100644 --- a/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java +++ b/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java @@ -33,8 +33,7 @@ public class InfinityBigIntegerCellItem extends Item implements ICellWorkbenchIt @Nullable Level world, @NotNull List tooltip, @NotNull TooltipFlag context) { - tooltip.add(Component.translatable("tooltip.extendedae_plus.infinity_biginteger_cell.summon1")); - tooltip.add(Component.translatable("tooltip.extendedae_plus.infinity_biginteger_cell.summon2")); + tooltip.add(Component.translatable("tooltip.extendedae_plus.infinity_biginteger_cell")); Preconditions.checkArgument(stack.getItem() == this); // 仅在 ItemStack 自身存在 UUID 时显示 UUID,避免触发持久化或加载逻辑 diff --git a/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java b/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java new file mode 100644 index 0000000..4a76d47 --- /dev/null +++ b/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java @@ -0,0 +1,377 @@ +package com.extendedae_plus.datagen; + +import appeng.core.definitions.AEBlocks; +import appeng.core.definitions.AEItems; +import appeng.datagen.providers.tags.ConventionTags; +import appeng.recipes.transform.TransformCircumstance; +import appeng.recipes.transform.TransformRecipeBuilder; +import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.item.BasicCoreItem; +import com.extendedae_plus.util.ModCheckUtils; +import com.glodblock.github.appflux.common.AFItemAndBlock; +import com.glodblock.github.appflux.util.AFTags; +import gripe._90.megacells.definition.MEGAItems; +import net.minecraft.data.PackOutput; +import net.minecraft.data.recipes.FinishedRecipe; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.pedroksl.advanced_ae.common.definitions.AAEBlocks; +import net.pedroksl.advanced_ae.common.definitions.AAEFluids; +import net.pedroksl.advanced_ae.common.definitions.AAEItems; +import net.pedroksl.advanced_ae.recipes.ReactionChamberRecipeBuilder; +import org.jetbrains.annotations.NotNull; + +import java.util.function.Consumer; + +public class CraftingRecipes extends RecipeProvider { + public CraftingRecipes(PackOutput output) { + super(output); + } + + @Override + public void buildRecipes(@NotNull Consumer consumer) { + addCoreRecipes(consumer); + addTransformRecipes(consumer); + addReactionChamberRecipes(consumer); + } + + private void addCoreRecipes(Consumer consumer) { + // 基础核心配方 + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.BASIC_CORE.get()) + .pattern("ABA") + .pattern("CDE") + .pattern("AFA") + .define('A', Items.NETHERITE_BLOCK) + .define('B', Items.NETHER_STAR) + .define('C', AEItems.LOGIC_PROCESSOR) + .define('D', AEItems.FLUIX_PEARL) + .define('E', AEItems.ENGINEERING_PROCESSOR) + .define('F', AEItems.CALCULATION_PROCESSOR) + .unlockedBy("has_nether_star", has(Items.NETHER_STAR)) + .save(consumer, ExtendedAEPlus.id("core/basic_core")); + + ItemStack base = BasicCoreItem.of(null, 0); // 未定型核心 + // ====================== STORAGE LINE ====================== + // storage_1 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.storageStage(1)) + .pattern("MCM") + .pattern("LBP") + .pattern("MEM") + .define('M', ConventionTags.CERTUS_QUARTZ_DUST) + .define('C', AEItems.CELL_COMPONENT_16K) + .define('L', AEItems.LOGIC_PROCESSOR) + .defineNbt('B', base) + .define('P', AEItems.CALCULATION_PROCESSOR) + .define('E', AEItems.ENGINEERING_PROCESSOR) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .save(consumer, ExtendedAEPlus.id("core/storage_core_1")); + + // storage_2 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.storageStage(2)) + .pattern("MOM") + .pattern("CBC") + .pattern("MOM") + .define('M', ConventionTags.ALL_CERTUS_QUARTZ) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AEItems.CELL_COMPONENT_64K) + .defineNbt('B', BasicCoreItem.storageStage(1)) + .unlockedBy("has_storage_stage_1", has(BasicCoreItem.storageStage(1).getItem())) + .save(consumer, ExtendedAEPlus.id("core/storage_core_2")); + + // storage_3 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.storageStage(3)) + .pattern("MOM") + .pattern("CBC") + .pattern("MCM") + .define('M', AEBlocks.QUARTZ_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AEItems.CELL_COMPONENT_256K) + .defineNbt('B', BasicCoreItem.storageStage(2)) + .unlockedBy("has_storage_stage_2", has(BasicCoreItem.storageStage(2).getItem())) + .save(consumer, ExtendedAEPlus.id("core/storage_core_3")); + + // ====================== SPATIAL LINE ====================== + // spatial_1 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.spatialStage(1)) + .pattern("MCM") + .pattern("LBP") + .pattern("MEM") + .define('M', ConventionTags.FLUIX_DUST) + .define('C', AEItems.SPATIAL_2_CELL_COMPONENT) + .define('L', AEItems.LOGIC_PROCESSOR) + .defineNbt('B', base) + .define('P', AEItems.CALCULATION_PROCESSOR) + .define('E', AEItems.ENGINEERING_PROCESSOR) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .save(consumer, ExtendedAEPlus.id("core/spatial_core_1")); + + // spatial_2 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.spatialStage(2)) + .pattern("MOM") + .pattern("CBC") + .pattern("MOM") + .define('M', ConventionTags.FLUIX_CRYSTAL) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AEItems.SPATIAL_16_CELL_COMPONENT) + .defineNbt('B', BasicCoreItem.spatialStage(1)) + .unlockedBy("has_spatial_stage_1", has(BasicCoreItem.spatialStage(1).getItem())) + .save(consumer, ExtendedAEPlus.id("core/spatial_core_2")); + + // spatial_3 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.spatialStage(3)) + .pattern("MOM") + .pattern("CBC") + .pattern("MCM") + .define('M', AEBlocks.FLUIX_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AEItems.SPATIAL_128_CELL_COMPONENT) + .defineNbt('B', BasicCoreItem.spatialStage(2)) + .unlockedBy("has_spatial_stage_2", has(BasicCoreItem.spatialStage(2).getItem())) + .save(consumer, ExtendedAEPlus.id("core/spatial_core_3")); + + // ====================== ENERGY LINE (依赖 AppFlux) ====================== + // energy_storage_1 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.energyStage(1)) + .pattern("MCM") + .pattern("EBE") + .pattern("MEM") + .define('M', AFTags.REDSTONE_GEM) + .define('C', AFItemAndBlock.CORE_16k) + .define('E', AFItemAndBlock.ENERGY_PROCESSOR) + .defineNbt('B', base) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .requiresMod(ModCheckUtils.MODID_APPFLUX) + .save(consumer, ExtendedAEPlus.id("core/energy_storage_core_1")); + + // energy_storage_2 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.energyStage(2)) + .pattern("MOM") + .pattern("CBC") + .pattern("MOM") + .define('M', AFItemAndBlock.CHARGED_REDSTONE) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AFItemAndBlock.CORE_64k) + .defineNbt('B', BasicCoreItem.energyStage(1)) + .unlockedBy("has_energy_stage_1", has(BasicCoreItem.energyStage(1).getItem())) + .requiresMod(ModCheckUtils.MODID_APPFLUX) + .save(consumer, ExtendedAEPlus.id("core/energy_storage_core_2")); + + // energy_storage_3 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.energyStage(3)) + .pattern("MOM") + .pattern("CBC") + .pattern("MCM") + .define('M', AFTags.SKY_RESIN_INGOT) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AFItemAndBlock.CORE_256k) + .defineNbt('B', BasicCoreItem.energyStage(2)) + .unlockedBy("has_energy_stage_2", has(BasicCoreItem.energyStage(2).getItem())) + .requiresMod(ModCheckUtils.MODID_APPFLUX) + .save(consumer, ExtendedAEPlus.id("core/energy_storage_core_3")); + + // ====================== QUANTUM LINE (依赖 Advanced AE) ====================== + // quantum_storage_1 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.quantumStage(1)) + .pattern("MCM") + .pattern("EBE") + .pattern("MEM") + .define('M', AAEItems.QUANTUM_ALLOY) + .define('C', AAEItems.QUANTUM_STORAGE_COMPONENT) + .define('E', AAEItems.QUANTUM_PROCESSOR) + .defineNbt('B', base) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .requiresMod(ModCheckUtils.MODID_AAE) + .save(consumer, ExtendedAEPlus.id("core/quantum_storage_core_1")); + + // quantum_storage_2 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.quantumStage(2)) + .pattern("MOM") + .pattern("CBC") + .pattern("MOM") + .define('M', AAEBlocks.QUANTUM_ALLOY_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AAEItems.QUANTUM_STORAGE_COMPONENT) + .defineNbt('B', BasicCoreItem.quantumStage(1)) + .unlockedBy("has_quantum_stage_1", has(BasicCoreItem.quantumStage(1).getItem())) + .requiresMod(ModCheckUtils.MODID_AAE) + .save(consumer, ExtendedAEPlus.id("core/quantum_storage_core_2")); + + // quantum_storage_3 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, BasicCoreItem.quantumStage(3)) + .pattern("MOM") + .pattern("CBC") + .pattern("MCM") + .define('M', AAEItems.QUANTUM_ALLOY_PLATE) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', AAEBlocks.QUANTUM_STORAGE_128M) + .defineNbt('B', BasicCoreItem.quantumStage(2)) + .unlockedBy("has_quantum_stage_2", has(BasicCoreItem.quantumStage(2).getItem())) + .requiresMod(ModCheckUtils.MODID_AAE) + .save(consumer, ExtendedAEPlus.id("core/quantum_storage_core_3")); + + // storage_core + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.STORAGE_CORE.get()) + .pattern("MOM") + .pattern("NBN") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('N', Items.NETHER_STAR) + .define('C', AEItems.CELL_COMPONENT_256K) + .defineNbt('B', BasicCoreItem.storageStage(3)) + .unlockedBy("has_storage_stage_3", has(BasicCoreItem.storageStage(3).getItem())) + .notRequiresMod(ModCheckUtils.MODID_MEGA) + .save(consumer, ExtendedAEPlus.id("core/" + ModItems.STORAGE_CORE.get().toString().toLowerCase())); + + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.STORAGE_CORE.get()) + .pattern("MOM") + .pattern("NBN") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('N', Items.NETHER_STAR) + .define('C', MEGAItems.CELL_COMPONENT_256M) + .defineNbt('B', BasicCoreItem.storageStage(3)) + .unlockedBy("has_storage_stage_3", has(BasicCoreItem.storageStage(3).getItem())) + .requiresMod(ModCheckUtils.MODID_MEGA) + .save(consumer, ExtendedAEPlus.id("core/compat/" + ModItems.STORAGE_CORE.get().toString().toLowerCase())); + + // spatial_core + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.SPATIAL_CORE.get()) + .pattern("MOM") + .pattern("NBN") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('N', Items.NETHER_STAR) + .define('C', AEItems.SPATIAL_128_CELL_COMPONENT) + .defineNbt('B', BasicCoreItem.spatialStage(3)) + .unlockedBy("has_spatial_stage_3", has(BasicCoreItem.spatialStage(3).getItem())) + .save(consumer, ExtendedAEPlus.id("core/" + ModItems.SPATIAL_CORE.get().toString().toLowerCase())); + + // energy_storage_core + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.ENERGY_STORAGE_CORE.get()) + .pattern("MOM") + .pattern("NBN") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('N', Items.NETHER_STAR) + .define('C', AFItemAndBlock.CORE_256k) + .defineNbt('B', BasicCoreItem.energyStage(3)) + .unlockedBy("has_energy_stage_3", has(BasicCoreItem.energyStage(3).getItem())) + .requiresMod(ModCheckUtils.MODID_APPFLUX) + .notRequiresMod(ModCheckUtils.MODID_MEGA) + .save(consumer, ExtendedAEPlus.id("core/" + ModItems.ENERGY_STORAGE_CORE.get().toString().toLowerCase())); + + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.ENERGY_STORAGE_CORE.get()) + .pattern("MOM") + .pattern("NBN") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('N', Items.NETHER_STAR) + .define('C', AFItemAndBlock.CORE_256M) + .defineNbt('B', BasicCoreItem.energyStage(3)) + .unlockedBy("has_energy_stage_3", has(BasicCoreItem.energyStage(3).getItem())) + .requiresMod(ModCheckUtils.MODID_APPFLUX) + .requiresMod(ModCheckUtils.MODID_MEGA) + .save(consumer, ExtendedAEPlus.id("core/compat/" + ModItems.ENERGY_STORAGE_CORE.get().toString().toLowerCase())); + + // quantum_storage_core + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.QUANTUM_STORAGE_CORE.get()) + .pattern("MOM") + .pattern("NBN") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('N', Items.NETHER_STAR) + .define('C', AAEBlocks.QUANTUM_STORAGE_256M) + .defineNbt('B', BasicCoreItem.quantumStage(3)) + .unlockedBy("has_quantum_stage_3", has(BasicCoreItem.quantumStage(3).getItem())) + .requiresMod(ModCheckUtils.MODID_AAE) + .save(consumer, ExtendedAEPlus.id("core/" + ModItems.QUANTUM_STORAGE_CORE.get().toString().toLowerCase())); + + // infinity_core + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.INFINITY_CORE.get()) + .pattern("MNM") + .pattern("SOS") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('N', Items.NETHER_STAR) + .define('S', ModItems.STORAGE_CORE.get()) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('C', ModItems.SPATIAL_CORE.get()) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .notRequiresMod(ModCheckUtils.MODID_APPFLUX) + .notRequiresMod(ModCheckUtils.MODID_AAE) + .save(consumer, ExtendedAEPlus.id("core/" + ModItems.INFINITY_CORE.get().toString().toLowerCase())); + + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.INFINITY_CORE.get()) + .pattern("MNM") + .pattern("SOE") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('N', Items.NETHER_STAR) + .define('S', ModItems.STORAGE_CORE.get()) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('E', ModItems.ENERGY_STORAGE_CORE.get()) + .define('C', ModItems.SPATIAL_CORE.get()) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .requiresMod(ModCheckUtils.MODID_APPFLUX) + .notRequiresMod(ModCheckUtils.MODID_AAE) + .save(consumer, ExtendedAEPlus.id("core/compat/" + ModItems.INFINITY_CORE.get().toString().toLowerCase() + "_1")); + + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.INFINITY_CORE.get()) + .pattern("MNM") + .pattern("SOQ") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('N', Items.NETHER_STAR) + .define('S', ModItems.STORAGE_CORE.get()) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('Q', ModItems.QUANTUM_STORAGE_CORE.get()) + .define('C', ModItems.SPATIAL_CORE.get()) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .requiresMod(ModCheckUtils.MODID_AAE) + .notRequiresMod(ModCheckUtils.MODID_APPFLUX) + .save(consumer, ExtendedAEPlus.id("core/compat/" + ModItems.INFINITY_CORE.get().toString().toLowerCase() + "_2")); + + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.INFINITY_CORE.get()) + .pattern("MQM") + .pattern("SOE") + .pattern("MCM") + .define('M', Items.NETHERITE_BLOCK) + .define('Q', ModItems.QUANTUM_STORAGE_CORE.get()) + .define('S', ModItems.STORAGE_CORE.get()) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('E', ModItems.ENERGY_STORAGE_CORE.get()) + .define('C', ModItems.SPATIAL_CORE.get()) + .unlockedBy("has_basic_core", has(ModItems.BASIC_CORE.get())) + .requiresMod(ModCheckUtils.MODID_AAE) + .requiresMod(ModCheckUtils.MODID_APPFLUX) + .save(consumer, ExtendedAEPlus.id("core/compat/" + ModItems.INFINITY_CORE.get().toString().toLowerCase() + "_3")); + } + + private void addTransformRecipes(Consumer consumer) { + TransformRecipeBuilder.transform(consumer, + ExtendedAEPlus.id("transform/" + ModItems.OBLIVION_SINGULARITY.get().toString().toLowerCase()), + ModItems.OBLIVION_SINGULARITY.get(), 1, + TransformCircumstance.EXPLOSION, + AEItems.SINGULARITY, Items.NETHER_STAR, Items.NETHERITE_BLOCK + ); + } + + private void addReactionChamberRecipes(Consumer consumer) { + ReactionChamberRecipeBuilder.react(ModItems.OBLIVION_SINGULARITY.get(), 1, 100000) + .input(AEItems.SINGULARITY, 2) + .input(Items.NETHER_STAR, 1) + .input(AAEItems.QUANTUM_ALLOY_PLATE, 4) + .fluid(AAEFluids.QUANTUM_INFUSION.source(), 2000) + .save(consumer, ModItems.OBLIVION_SINGULARITY.get().toString().toLowerCase()); + } +} diff --git a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java index e00e5c3..c27c19a 100644 --- a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java +++ b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java @@ -60,9 +60,9 @@ public class ExtendedAEJeiPlugin implements IModPlugin { private boolean isCoreTypeAvailable(int typeId) { return switch (typeId) { - case 0, 1 -> true; // storage, spatial - case 2 -> ModCheckUtils.isAppfluxLoading(); - case 3 -> ModCheckUtils.isAAELoading(); + case 1, 2 -> true; // storage, spatial + case 3 -> ModCheckUtils.isAppfluxLoading(); + case 4 -> ModCheckUtils.isAAELoading(); default -> false; }; } diff --git a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java index 040cab6..ca68044 100644 --- a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java +++ b/src/main/java/com/extendedae_plus/item/BasicCoreItem.java @@ -20,14 +20,14 @@ import java.util.Optional; public class BasicCoreItem extends Item { private static final String NBT_MODEL = "CustomModelData"; // 1~4 = 类型, 无或0 = 未定型 - private static final String NBT_STAGE = "core_stage"; // 0~4 = 阶段 - private static final int MAX_STAGE = 4; + private static final String NBT_STAGE = "core_stage"; // 0~3 = 阶段 + private static final int MAX_STAGE = 3; public BasicCoreItem(Properties props) { super(props.stacksTo(1).setNoRepair()); } - // ==================== 工厂方法:CustomModelData = CoreType.id (1~4) ==================== + // ==================== 工厂方法 ==================== public static ItemStack of(CoreType type, int stage) { ItemStack stack = new ItemStack(ModItems.BASIC_CORE.get()); if (type != null && stage >= 0 && stage <= MAX_STAGE) { @@ -70,7 +70,8 @@ public class BasicCoreItem extends Item { @Override public int getBarWidth(@NotNull ItemStack stack) { - return isTyped(stack) ? Math.round(13.0f * getStage(stack) / MAX_STAGE) : 0; + if (!isTyped(stack)) return 0; + return Math.round(13.0f * getStage(stack) / MAX_STAGE); } @Override @@ -101,7 +102,7 @@ public class BasicCoreItem extends Item { .withStyle(ChatFormatting.YELLOW)); int stage = getStage(stack); - for (int i = 1; i <= 4; i++) { + for (int i = 1; i <= 3; i++) { String key = "item." + ExtendedAEPlus.MODID + ".basic_core." + type.key + "." + i; ChatFormatting color = i <= stage ? ChatFormatting.GREEN : ChatFormatting.DARK_GRAY; String prefix = i <= stage ? "✔ " : "✘ "; @@ -135,7 +136,7 @@ public class BasicCoreItem extends Item { : Rarity.COMMON; } - // ==================== 核心类型枚举:id = CustomModelData (1~4) ==================== + // ==================== 核心类型枚举 ==================== public enum CoreType { STORAGE (1, "storage", ChatFormatting.AQUA), SPATIAL (2, "spatial", ChatFormatting.YELLOW), @@ -165,9 +166,11 @@ public class BasicCoreItem extends Item { public ChatFormatting getTextColor() { return textColor; } public Rarity getRarity(int stage) { - return stage == 0 ? Rarity.COMMON : - stage <= 2 ? Rarity.UNCOMMON : - stage == 3 ? Rarity.RARE : Rarity.EPIC; + return switch (stage) { + case 1, 2 -> Rarity.UNCOMMON; + case 3 -> Rarity.EPIC; + default -> Rarity.COMMON; + }; } } } \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/mixin/MixinConditions.java b/src/main/java/com/extendedae_plus/mixin/MixinConditions.java index 5f87ffa..b0ea41c 100644 --- a/src/main/java/com/extendedae_plus/mixin/MixinConditions.java +++ b/src/main/java/com/extendedae_plus/mixin/MixinConditions.java @@ -28,23 +28,17 @@ public class MixinConditions implements IMixinConfigPlugin { try { // === MAE2 兼容 === if (mixinClassName.contains("CraftingCPUClusterMixin")) { - boolean shouldApply = !ModCheckUtils.isLoaded(ModCheckUtils.MODID_MAE2); - log(mixinClassName, ModCheckUtils.MODID_MAE2, shouldApply); - return shouldApply; + return !ModCheckUtils.isLoaded(ModCheckUtils.MODID_MAE2); } // === AAE 兼容 === if (mixinClassName.startsWith("com.extendedae_plus.mixin.advancedae")) { - boolean shouldApply = ModCheckUtils.isLoaded(ModCheckUtils.MODID_AAE); - log(mixinClassName, ModCheckUtils.MODID_AAE, shouldApply); - return shouldApply; + return ModCheckUtils.isLoaded(ModCheckUtils.MODID_AAE); } // === GuideME 版本兼容 === if (mixinClassName.startsWith("com.extendedae_plus.mixin.guideme.")) { - boolean shouldApply = ModCheckUtils.isLoadedAndLowerThan(ModCheckUtils.MODID_GUIDEME, "20.1.14"); - logVersion(mixinClassName, ModCheckUtils.MODID_GUIDEME, ModCheckUtils.getVersion(ModCheckUtils.MODID_GUIDEME), "20.1.14", shouldApply); - return shouldApply; + return ModCheckUtils.isLoadedAndLowerThan(ModCheckUtils.MODID_GUIDEME, "20.1.14"); } return true; @@ -73,15 +67,4 @@ public class MixinConditions implements IMixinConfigPlugin { public void postApply(String targetClassName, org.objectweb.asm.tree.ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) { // 应用后调用 } - - // === 日志方法 === - private void log(String mixin, String mod, boolean apply) { - System.out.printf("[ExtendedAE_Plus] 模组 %s 存在: %s, 应用 Mixin: %s, Mixin类:%s%n", - mod, ModCheckUtils.isLoaded(mod), apply, mixin); - } - - private void logVersion(String mixin, String mod, String detected, String target, boolean apply) { - System.out.printf("[ExtendedAE_Plus] 模组 %s 版本检测: 当前 %s, 目标 < %s, 应用 Mixin: %s%n", - mod, detected, target, apply); - } } diff --git a/src/main/java/com/extendedae_plus/util/ModCheckUtils.java b/src/main/java/com/extendedae_plus/util/ModCheckUtils.java index 9eb70c0..77acc3f 100644 --- a/src/main/java/com/extendedae_plus/util/ModCheckUtils.java +++ b/src/main/java/com/extendedae_plus/util/ModCheckUtils.java @@ -21,7 +21,8 @@ public class ModCheckUtils { MODID_FTB_TEAMS = "ftbteams", MODID_APPFLUX = "appflux", MODID_GUIDEME = "guideme", - MODID_MAE2 = "mae2"; + MODID_MAE2 = "mae2", + MODID_MEGA = "megacells"; /** * 检查指定模组是否存在 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 9da6bb3..4ffe9fe 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -32,17 +32,33 @@ "item.extendedae_plus.spatial_core": "Spatial Core", "item.extendedae_plus.oblivion_singularity": "Oblivion Singularity", "item.extendedae_plus.infinity_biginteger_cell": "§4De§cvou§6rer §eof §aCo§bsmic §dSilence", - "tooltip.extendedae_plus.infinity_biginteger_cell.summon1": "§6Through ninefold sacrifice, the Void echoes§r—§8Iava, Lord of the Void§r, bestows upon thee this artifact", - "tooltip.extendedae_plus.infinity_biginteger_cell.summon2": "§b—§4A §dUni§cverse §eWith§ain §6A §bSin§5gle §9Point", + "item.extendedae_plus.basic_core.storage.1": "Basic Core·Digitized", + "item.extendedae_plus.basic_core.storage.2": "Basic Core·Arrayed", + "item.extendedae_plus.basic_core.storage.3": "Basic Core·Matricized", + "item.extendedae_plus.basic_core.spatial.1": "Basic Core·Coordinated", + "item.extendedae_plus.basic_core.spatial.2": "Basic Core·Domainized", + "item.extendedae_plus.basic_core.spatial.3": "Basic Core·Dimensionalized", + "item.extendedae_plus.basic_core.energy_storage.1": "Basic Core·Quantified", + "item.extendedae_plus.basic_core.energy_storage.2": "Basic Core·Fluidized", + "item.extendedae_plus.basic_core.energy_storage.3": "Basic Core·Fielded", + "item.extendedae_plus.basic_core.quantum_storage.1": "Basic Core·Superposed", + "item.extendedae_plus.basic_core.quantum_storage.2": "Basic Core·Entangled", + "item.extendedae_plus.basic_core.quantum_storage.3": "Basic Core·Coherent", + + "tooltip.extendedae_plus.basic_core.untyped": "Core State: Awaiting Initialization", + "tooltip.extendedae_plus.basic_core.evolving_to": "Directed Evolution: %s", + "tooltip.extendedae_plus.basic_core.progress": "Construction Progress: ", + "tooltip.extendedae_plus.basic_core.ready_to_craft": "Core construction complete. Awaiting final synthesis", + "tooltip.extendedae_plus.infinity_biginteger_cell": "§7—§bThe tangible projection of absolute storage§r, §ewhere '§6The Finite§e' §chas been deemed illegal§r\n§bIts very existence§r §bis the ultimate negation of §dentropy§r", "tooltip.extendedae_plus.entity_speed_card.multiplier": "Multiplier: %s", "tooltip.extendedae_plus.entity_speed_card.max": "Max effective: %s x", + "block.extendedae_plus.assembler_matrix_upload_core.tooltip": "Assembler Matrix Upload Core", "block.extendedae_plus.assembler_matrix_upload_core.tooltip.upload": "Upload to Assembler Matrix", "block.extendedae_plus.assembler_matrix_upload_core.tooltip.upload_success": "Pattern uploaded to Assembler Matrix", "block.extendedae_plus.assembler_matrix_upload_core.tooltip.upload_fail_not_crafting": "Only crafting patterns supported, processing patterns ignored", "block.extendedae_plus.assembler_matrix_upload_core.tooltip.upload_fail_no_matrix": "No formed Assembler Matrix found in network", "block.extendedae_plus.assembler_matrix_upload_core.tooltip.upload_fail_full": "Assembler Matrix pattern storage full or cannot insert", - "block.extendedae_plus.wireless_transceiver": "Wireless Transceiver", "block.extendedae_plus.4x_crafting_accelerator": "4x Crafting Accelerator", "block.extendedae_plus.16x_crafting_accelerator": "16x Crafting Accelerator", 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 2ff4fb5..229c609 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -32,10 +32,26 @@ "item.extendedae_plus.oblivion_singularity": "湮灭奇点", "item.extendedae_plus.infinity_core": "吞噬核心", "item.extendedae_plus.infinity_biginteger_cell": "§4吞§c噬§6万§e籁§a的§b寂§d静", - "tooltip.extendedae_plus.infinity_biginteger_cell.summon1": "§6九重献祭, 终得虚空回响§r——觐见§8虚空之主Iava§r, 赐汝此物", - "tooltip.extendedae_plus.infinity_biginteger_cell.summon2": "§b——§4方§d寸§c之§e间§a, §6自§b有§5千§9寰", + "item.extendedae_plus.basic_core.storage.1": "基础核心·数据化", + "item.extendedae_plus.basic_core.storage.2": "基础核心·阵列化", + "item.extendedae_plus.basic_core.storage.3": "基础核心·矩阵化", + "item.extendedae_plus.basic_core.spatial.1": "基础核心·坐标化", + "item.extendedae_plus.basic_core.spatial.2": "基础核心·领域化", + "item.extendedae_plus.basic_core.spatial.3": "基础核心·维度化", + "item.extendedae_plus.basic_core.energy_storage.1": "基础核心·通量化", + "item.extendedae_plus.basic_core.energy_storage.2": "基础核心·流态化", + "item.extendedae_plus.basic_core.energy_storage.3": "基础核心·场域化", + "item.extendedae_plus.basic_core.quantum_storage.1": "基础核心·叠加化", + "item.extendedae_plus.basic_core.quantum_storage.2": "基础核心·纠缠化", + "item.extendedae_plus.basic_core.quantum_storage.3": "基础核心·相干化", + "tooltip.extendedae_plus.basic_core.untyped": "核心状态:待初始化", + "tooltip.extendedae_plus.basic_core.evolving_to": "定向演化:%s", + "tooltip.extendedae_plus.basic_core.progress": "构建进度:", + "tooltip.extendedae_plus.basic_core.ready_to_craft": "核心构建完成,等待最终合成", + "tooltip.extendedae_plus.infinity_biginteger_cell": "§7——§b绝对存储的现实投影,§e\"有限\"§6已被定义为§c非法\n§b其存在本身,即是对§d熵增§b的终极否定", "tooltip.extendedae_plus.entity_speed_card.multiplier": "乘数: %s", "tooltip.extendedae_plus.entity_speed_card.max": "最大生效: %s 倍", + "block.extendedae_plus.assembler_matrix_upload_core.tooltip": "装配矩阵上传核心", "block.extendedae_plus.assembler_matrix_upload_core.tooltip.upload": "上传到装配矩阵", "block.extendedae_plus.assembler_matrix_upload_core.tooltip.upload_success": "样板已上传到装配矩阵", From e95549fd344eb58ed01801dd09bc8c58729075cd Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Mon, 17 Nov 2025 02:01:09 +0800 Subject: [PATCH 17/19] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=85=8D=E6=96=B9?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E9=85=8D=E6=96=B9=E7=94=9F=E6=88=90=E5=99=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=EF=BC=9B=E8=B0=83=E6=95=B4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E9=85=8D=E6=96=B9=E4=B8=BAtag=E8=BE=93=E5=85=A5=EF=BC=9B?= =?UTF-8?q?=E5=88=A0=E5=8E=BB=E5=8E=9F=E6=89=8B=E5=8A=A8=E9=85=8D=E6=96=B9?= =?UTF-8?q?json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 +- .../recipes/oblivion_singularity.json | 35 ++++ .../core/compat/energy_storage_core.json | 51 ++++++ .../recipes/core/compat/infinity_core_1.json | 54 ++++++ .../recipes/core/compat/infinity_core_2.json | 54 ++++++ .../recipes/core/compat/infinity_core_3.json | 51 ++++++ .../recipes/core/compat/storage_core.json | 47 ++++++ .../recipes/core/energy_storage_core.json | 54 ++++++ .../recipes/core/energy_storage_core_1.json | 47 ++++++ .../recipes/core/energy_storage_core_2.json | 47 ++++++ .../recipes/core/energy_storage_core_3.json | 47 ++++++ .../recipes/core/infinity_core.json | 57 +++++++ .../recipes/core/quantum_storage_core.json | 47 ++++++ .../recipes/core/quantum_storage_core_1.json | 47 ++++++ .../recipes/core/quantum_storage_core_2.json | 47 ++++++ .../recipes/core/quantum_storage_core_3.json | 47 ++++++ .../recipes/core/storage_core.json | 50 ++++++ .../misc/assembler_matrix_upload_core.json | 35 ++++ .../recipes/misc/channel_card.json | 35 ++++ .../recipes/misc/core/basic_core.json | 35 ++++ .../recipes/misc/core/spatial_core.json | 35 ++++ .../recipes/misc/core/spatial_core_1.json | 35 ++++ .../recipes/misc/core/spatial_core_2.json | 35 ++++ .../recipes/misc/core/spatial_core_3.json | 35 ++++ .../recipes/misc/core/storage_core_1.json | 35 ++++ .../recipes/misc/core/storage_core_2.json | 35 ++++ .../recipes/misc/core/storage_core_3.json | 35 ++++ .../recipes/misc/entity_speed_card_16x.json | 35 ++++ .../recipes/misc/entity_speed_card_2x.json | 48 ++++++ .../recipes/misc/entity_speed_card_4x.json | 35 ++++ .../recipes/misc/entity_speed_card_8x.json | 35 ++++ .../recipes/misc/entity_speed_ticker.json | 48 ++++++ .../misc/infinity_biginteger_cell.json | 35 ++++ .../crafting/1024x_crafting_accelerator.json | 35 ++++ .../crafting/16x_crafting_accelerator.json | 35 ++++ .../crafting/256x_crafting_accelerator.json | 35 ++++ .../crafting/4x_crafting_accelerator.json | 35 ++++ .../crafting/64x_crafting_accelerator.json | 35 ++++ .../misc/network_pattern_controller.json | 46 +++++ .../recipes/misc/wireless_transceiver.json | 35 ++++ .../recipes/assembler_matrix_upload_core.json | 15 ++ .../extendedae_plus/recipes/channel_card.json | 15 ++ .../recipes/core/basic_core.json | 33 ++++ .../core/compat/energy_storage_core.json | 52 ++++++ .../recipes/core/compat/infinity_core_1.json | 53 ++++++ .../recipes/core/compat/infinity_core_2.json | 53 ++++++ .../recipes/core/compat/infinity_core_3.json | 50 ++++++ .../recipes/core/compat/storage_core.json | 48 ++++++ .../recipes/core/energy_storage_core.json | 55 ++++++ .../recipes/core/energy_storage_core_1.json | 45 +++++ .../recipes/core/energy_storage_core_2.json | 49 ++++++ .../recipes/core/energy_storage_core_3.json | 49 ++++++ .../recipes/core/infinity_core.json | 53 ++++++ .../recipes/core/quantum_storage_core.json | 48 ++++++ .../recipes/core/quantum_storage_core_1.json | 45 +++++ .../recipes/core/quantum_storage_core_2.json | 49 ++++++ .../recipes/core/quantum_storage_core_3.json | 49 ++++++ .../recipes/core/spatial_core.json | 35 ++++ .../recipes/core/spatial_core_1.json | 38 +++++ .../recipes/core/spatial_core_2.json | 36 ++++ .../recipes/core/spatial_core_3.json | 36 ++++ .../recipes/core/storage_core.json | 51 ++++++ .../recipes/core/storage_core_1.json | 38 +++++ .../recipes/core/storage_core_2.json | 36 ++++ .../recipes/core/storage_core_3.json | 36 ++++ .../recipes/entity_speed_card_16x.json} | 28 ++-- .../recipes/entity_speed_card_2x.json} | 20 +-- .../recipes/entity_speed_card_4x.json} | 28 ++-- .../recipes/entity_speed_card_8x.json} | 28 ++-- .../recipes/entity_speed_ticker.json | 35 ++-- .../recipes/infinity_biginteger_cell.json | 41 ++--- .../crafting/1024x_crafting_accelerator.json | 21 +++ .../crafting/16x_crafting_accelerator.json | 15 ++ .../crafting/256x_crafting_accelerator.json | 15 ++ .../crafting/4x_crafting_accelerator.json | 15 ++ .../crafting/64x_crafting_accelerator.json | 15 ++ .../recipes/network_pattern_controller.json | 18 ++ .../transform/oblivion_singularity.json | 20 +++ .../recipes/wireless_transceiver.json | 21 +++ .../crafting/EPlusCraftingUnitType.java | 13 +- .../datagen/CraftingRecipes.java | 158 +++++++++++++++++- .../com/extendedae_plus/init/ModBlocks.java | 10 +- .../extendedae_plus/init/ModCreativeTabs.java | 12 +- .../com/extendedae_plus/init/ModItems.java | 22 +-- .../recipes/1024x_crafting_accelerator.json | 13 -- .../recipes/16x_crafting_accelerator.json | 8 - .../recipes/256x_crafting_accelerator.json | 8 - .../recipes/4x_crafting_accelerator.json | 8 - .../recipes/64x_crafting_accelerator.json | 8 - .../recipes/assembler_matrix_upload_core.json | 11 -- .../extendedae_plus/recipes/channel_card.json | 8 - .../recipes/network_pattern_controller.json | 12 -- .../recipes/wireless_transceiver.json | 16 -- 93 files changed, 3105 insertions(+), 215 deletions(-) create mode 100644 src/generated/resources/data/advanced_ae/recipes/oblivion_singularity.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/energy_storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/infinity_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/core/storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/assembler_matrix_upload_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/channel_card.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/basic_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_16x.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_2x.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_4x.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_8x.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_ticker.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/infinity_biginteger_cell.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/1024x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/16x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/256x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/4x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/64x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network_pattern_controller.json create mode 100644 src/generated/resources/data/extendedae_plus/advancements/recipes/misc/wireless_transceiver.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/channel_card.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/basic_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/compat/energy_storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/compat/storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/infinity_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/spatial_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_3.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/storage_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/storage_core_1.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/storage_core_2.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/core/storage_core_3.json rename src/{main/resources/data/extendedae_plus/recipes/entity_speed_card_x16.json => generated/resources/data/extendedae_plus/recipes/entity_speed_card_16x.json} (90%) rename src/{main/resources/data/extendedae_plus/recipes/entity_speed_card_x2.json => generated/resources/data/extendedae_plus/recipes/entity_speed_card_2x.json} (93%) rename src/{main/resources/data/extendedae_plus/recipes/entity_speed_card_x4.json => generated/resources/data/extendedae_plus/recipes/entity_speed_card_4x.json} (90%) rename src/{main/resources/data/extendedae_plus/recipes/entity_speed_card_x8.json => generated/resources/data/extendedae_plus/recipes/entity_speed_card_8x.json} (90%) rename src/{main => generated}/resources/data/extendedae_plus/recipes/entity_speed_ticker.json (76%) rename src/{main => generated}/resources/data/extendedae_plus/recipes/infinity_biginteger_cell.json (79%) create mode 100644 src/generated/resources/data/extendedae_plus/recipes/network/crafting/1024x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/network/crafting/16x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/network/crafting/256x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/network/crafting/4x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/network/crafting/64x_crafting_accelerator.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/network_pattern_controller.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/transform/oblivion_singularity.json create mode 100644 src/generated/resources/data/extendedae_plus/recipes/wireless_transceiver.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/1024x_crafting_accelerator.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/16x_crafting_accelerator.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/256x_crafting_accelerator.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/4x_crafting_accelerator.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/64x_crafting_accelerator.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/channel_card.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/network_pattern_controller.json delete mode 100644 src/main/resources/data/extendedae_plus/recipes/wireless_transceiver.json diff --git a/build.gradle b/build.gradle index 5f0b1dd..797f1e4 100644 --- a/build.gradle +++ b/build.gradle @@ -92,7 +92,7 @@ dependencies { modImplementation "curse.maven:mega-cells-622112:${mega_cells_version}" //mae2 - // modRuntimeOnly "curse.maven:modern-ae2-additions-1028068:6827727" + modRuntimeOnly "curse.maven:modern-ae2-additions-1028068:6827727" modCompileOnly "curse.maven:modern-ae2-additions-1028068:6827727" //aea diff --git a/src/generated/resources/data/advanced_ae/recipes/oblivion_singularity.json b/src/generated/resources/data/advanced_ae/recipes/oblivion_singularity.json new file mode 100644 index 0000000..f9338d4 --- /dev/null +++ b/src/generated/resources/data/advanced_ae/recipes/oblivion_singularity.json @@ -0,0 +1,35 @@ +{ + "type": "advanced_ae:reaction", + "energy": 100000, + "fluid": { + "fluidStack": { + "Amount": 2000, + "FluidName": "advanced_ae:quantum_infusion_source" + } + }, + "input_items": [ + { + "amount": 2, + "ingredient": { + "item": "ae2:singularity" + } + }, + { + "amount": 1, + "ingredient": { + "item": "minecraft:nether_star" + } + }, + { + "amount": 4, + "ingredient": { + "item": "advanced_ae:quantum_alloy_plate" + } + } + ], + "output": { + "#": 1, + "#c": "ae2:i", + "id": "extendedae_plus:oblivion_singularity" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/energy_storage_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/energy_storage_core.json new file mode 100644 index 0000000..71099b5 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/energy_storage_core.json @@ -0,0 +1,51 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_energy_stage_3": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/compat/energy_storage_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_energy_stage_3", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/compat/energy_storage_core" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + }, + { + "type": "forge:mod_loaded", + "modid": "megacells" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_1.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_1.json new file mode 100644 index 0000000..8a1b976 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_1.json @@ -0,0 +1,54 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/compat/infinity_core_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/compat/infinity_core_1" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_2.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_2.json new file mode 100644 index 0000000..1231f19 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_2.json @@ -0,0 +1,54 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/compat/infinity_core_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/compat/infinity_core_2" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "appflux" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_3.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_3.json new file mode 100644 index 0000000..9b5e930 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/infinity_core_3.json @@ -0,0 +1,51 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/compat/infinity_core_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/compat/infinity_core_3" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + }, + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/storage_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/storage_core.json new file mode 100644 index 0000000..6c10904 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/compat/storage_core.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_storage_stage_3": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/compat/storage_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_storage_stage_3", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/compat/storage_core" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "megacells" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core.json new file mode 100644 index 0000000..d1b46d9 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core.json @@ -0,0 +1,54 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_energy_stage_3": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/energy_storage_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_energy_stage_3", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/energy_storage_core" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "megacells" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_1.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_1.json new file mode 100644 index 0000000..3e05877 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_1.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/energy_storage_core_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/energy_storage_core_1" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_2.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_2.json new file mode 100644 index 0000000..f12cf19 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_2.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_energy_stage_1": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/energy_storage_core_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_energy_stage_1", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/energy_storage_core_2" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_3.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_3.json new file mode 100644 index 0000000..d936f44 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/energy_storage_core_3.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_energy_stage_2": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/energy_storage_core_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_energy_stage_2", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/energy_storage_core_3" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/infinity_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/infinity_core.json new file mode 100644 index 0000000..ddd6068 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/infinity_core.json @@ -0,0 +1,57 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/infinity_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/infinity_core" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "appflux" + } + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core.json new file mode 100644 index 0000000..b91cc82 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_quantum_stage_3": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/quantum_storage_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_quantum_stage_3", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/quantum_storage_core" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_1.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_1.json new file mode 100644 index 0000000..fd552a7 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_1.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/quantum_storage_core_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/quantum_storage_core_1" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_2.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_2.json new file mode 100644 index 0000000..bdbfeef --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_2.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_quantum_stage_1": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/quantum_storage_core_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_quantum_stage_1", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/quantum_storage_core_2" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_3.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_3.json new file mode 100644 index 0000000..99f9b85 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/quantum_storage_core_3.json @@ -0,0 +1,47 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_quantum_stage_2": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/quantum_storage_core_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_quantum_stage_2", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/quantum_storage_core_3" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/core/storage_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/storage_core.json new file mode 100644 index 0000000..7dc9d34 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/core/storage_core.json @@ -0,0 +1,50 @@ +{ + "advancements": [ + { + "advancement": { + "parent": "minecraft:recipes/root", + "criteria": { + "has_storage_stage_3": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/storage_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_storage_stage_3", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/storage_core" + ] + }, + "sends_telemetry_event": false + }, + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "megacells" + } + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/assembler_matrix_upload_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/assembler_matrix_upload_core.json new file mode 100644 index 0000000..8a50439 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/assembler_matrix_upload_core.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_assembler_matrix_wall": { + "conditions": { + "items": [ + { + "items": [ + "expatternprovider:assembler_matrix_wall" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:assembler_matrix_upload_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_assembler_matrix_wall", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:assembler_matrix_upload_core" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/channel_card.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/channel_card.json new file mode 100644 index 0000000..84cde25 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/channel_card.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_advanced_card": { + "conditions": { + "items": [ + { + "items": [ + "ae2:advanced_card" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:channel_card" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_advanced_card", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:channel_card" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/basic_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/basic_core.json new file mode 100644 index 0000000..5196e27 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/basic_core.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_nether_star": { + "conditions": { + "items": [ + { + "items": [ + "minecraft:nether_star" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/basic_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_nether_star", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/basic_core" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core.json new file mode 100644 index 0000000..ecc987d --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spatial_stage_3": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/spatial_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_spatial_stage_3", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/spatial_core" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_1.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_1.json new file mode 100644 index 0000000..9315696 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_1.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/spatial_core_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/spatial_core_1" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_2.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_2.json new file mode 100644 index 0000000..fe79b35 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_2.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spatial_stage_1": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/spatial_core_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_spatial_stage_1", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/spatial_core_2" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_3.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_3.json new file mode 100644 index 0000000..4b84943 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/spatial_core_3.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spatial_stage_2": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/spatial_core_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_spatial_stage_2", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/spatial_core_3" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_1.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_1.json new file mode 100644 index 0000000..4ada174 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_1.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_basic_core": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/storage_core_1" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_basic_core", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/storage_core_1" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_2.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_2.json new file mode 100644 index 0000000..01c8326 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_2.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_storage_stage_1": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/storage_core_2" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_storage_stage_1", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/storage_core_2" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_3.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_3.json new file mode 100644 index 0000000..9d2b595 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/core/storage_core_3.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_storage_stage_2": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:basic_core" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:core/storage_core_3" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_storage_stage_2", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:core/storage_core_3" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_16x.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_16x.json new file mode 100644 index 0000000..27d4d9d --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_16x.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_entity_speed_card_8x": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:entity_speed_card" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:entity_speed_card_16x" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_entity_speed_card_8x", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:entity_speed_card_16x" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_2x.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_2x.json new file mode 100644 index 0000000..717d3c0 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_2x.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_64x_accelerator": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:64x_crafting_accelerator" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_speed_card": { + "conditions": { + "items": [ + { + "items": [ + "ae2:speed_card" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:entity_speed_card_2x" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_speed_card", + "has_64x_accelerator", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:entity_speed_card_2x" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_4x.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_4x.json new file mode 100644 index 0000000..a0f5449 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_4x.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_entity_speed_card_2x": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:entity_speed_card" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:entity_speed_card_4x" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_entity_speed_card_2x", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:entity_speed_card_4x" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_8x.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_8x.json new file mode 100644 index 0000000..64d9547 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_card_8x.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_entity_speed_card_4x": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:entity_speed_card" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:entity_speed_card_8x" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_entity_speed_card_4x", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:entity_speed_card_8x" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_ticker.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_ticker.json new file mode 100644 index 0000000..683b33a --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/entity_speed_ticker.json @@ -0,0 +1,48 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_entity_speed_card_x2": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:entity_speed_card" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_singularity": { + "conditions": { + "items": [ + { + "items": [ + "ae2:singularity" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:entity_speed_ticker" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_entity_speed_card_x2", + "has_singularity", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:entity_speed_ticker" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/infinity_biginteger_cell.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/infinity_biginteger_cell.json new file mode 100644 index 0000000..4f8466d --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/infinity_biginteger_cell.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oblivion_singularity": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:oblivion_singularity" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:infinity_biginteger_cell" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_oblivion_singularity", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:infinity_biginteger_cell" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/1024x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/1024x_crafting_accelerator.json new file mode 100644 index 0000000..95293c2 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/1024x_crafting_accelerator.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_256x": { + "conditions": { + "items": [ + { + "items": [ + "extendedae_plus:256x_crafting_accelerator" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:network/crafting/1024x_crafting_accelerator" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_256x", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:network/crafting/1024x_crafting_accelerator" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/16x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/16x_crafting_accelerator.json new file mode 100644 index 0000000..a39ac2c --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/16x_crafting_accelerator.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_accelerator": { + "conditions": { + "items": [ + { + "items": [ + "ae2:crafting_accelerator" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:network/crafting/16x_crafting_accelerator" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_accelerator", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:network/crafting/16x_crafting_accelerator" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/256x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/256x_crafting_accelerator.json new file mode 100644 index 0000000..c8f32e8 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/256x_crafting_accelerator.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_accelerator": { + "conditions": { + "items": [ + { + "items": [ + "ae2:crafting_accelerator" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:network/crafting/256x_crafting_accelerator" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_accelerator", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:network/crafting/256x_crafting_accelerator" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/4x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/4x_crafting_accelerator.json new file mode 100644 index 0000000..44f3874 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/4x_crafting_accelerator.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_accelerator": { + "conditions": { + "items": [ + { + "items": [ + "ae2:crafting_accelerator" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:network/crafting/4x_crafting_accelerator" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_accelerator", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:network/crafting/4x_crafting_accelerator" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/64x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/64x_crafting_accelerator.json new file mode 100644 index 0000000..dfe1278 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network/crafting/64x_crafting_accelerator.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_accelerator": { + "conditions": { + "items": [ + { + "items": [ + "ae2:crafting_accelerator" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:network/crafting/64x_crafting_accelerator" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_accelerator", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:network/crafting/64x_crafting_accelerator" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network_pattern_controller.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network_pattern_controller.json new file mode 100644 index 0000000..fe6d929 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/network_pattern_controller.json @@ -0,0 +1,46 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_network_tool": { + "conditions": { + "items": [ + { + "items": [ + "ae2:network_tool" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_pattern_provider": { + "conditions": { + "items": [ + { + "tag": "ae2:pattern_provider" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:network_pattern_controller" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_network_tool", + "has_pattern_provider", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:network_pattern_controller" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/wireless_transceiver.json b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/wireless_transceiver.json new file mode 100644 index 0000000..7082510 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancements/recipes/misc/wireless_transceiver.json @@ -0,0 +1,35 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_quantum_ring": { + "conditions": { + "items": [ + { + "items": [ + "ae2:quantum_ring" + ] + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "extendedae_plus:wireless_transceiver" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_quantum_ring", + "has_the_recipe" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:wireless_transceiver" + ] + }, + "sends_telemetry_event": false +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json b/src/generated/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json new file mode 100644 index 0000000..e02073c --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "expatternprovider:assembler_matrix_wall" + }, + { + "item": "minecraft:lever" + } + ], + "result": { + "item": "extendedae_plus:assembler_matrix_upload_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/channel_card.json b/src/generated/resources/data/extendedae_plus/recipes/channel_card.json new file mode 100644 index 0000000..22d6ea5 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/channel_card.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:advanced_card" + }, + { + "item": "extendedae_plus:wireless_transceiver" + } + ], + "result": { + "item": "extendedae_plus:channel_card" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/basic_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/basic_core.json new file mode 100644 index 0000000..24a3bb0 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/basic_core.json @@ -0,0 +1,33 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "minecraft:netherite_block" + }, + "B": { + "item": "minecraft:nether_star" + }, + "C": { + "item": "ae2:logic_processor" + }, + "D": { + "item": "ae2:fluix_pearl" + }, + "E": { + "item": "ae2:engineering_processor" + }, + "F": { + "item": "ae2:calculation_processor" + } + }, + "pattern": [ + "ABA", + "CDE", + "AFA" + ], + "result": { + "item": "extendedae_plus:basic_core" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/compat/energy_storage_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/compat/energy_storage_core.json new file mode 100644 index 0000000..42bdd3a --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/compat/energy_storage_core.json @@ -0,0 +1,52 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + }, + { + "type": "forge:mod_loaded", + "modid": "megacells" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 3, + "core_stage": 3 + } + }, + "C": { + "item": "appflux:core_256m" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "NBN", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:energy_storage_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_1.json b/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_1.json new file mode 100644 index 0000000..34cf8fa --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_1.json @@ -0,0 +1,53 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "C": { + "item": "extendedae_plus:spatial_core" + }, + "E": { + "item": "extendedae_plus:energy_storage_core" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + }, + "S": { + "item": "extendedae_plus:storage_core" + } + }, + "pattern": [ + "MNM", + "SOE", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:infinity_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_2.json b/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_2.json new file mode 100644 index 0000000..6132bd7 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_2.json @@ -0,0 +1,53 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "appflux" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "C": { + "item": "extendedae_plus:spatial_core" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + }, + "Q": { + "item": "extendedae_plus:quantum_storage_core" + }, + "S": { + "item": "extendedae_plus:storage_core" + } + }, + "pattern": [ + "MNM", + "SOQ", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:infinity_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_3.json b/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_3.json new file mode 100644 index 0000000..6d22df7 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/compat/infinity_core_3.json @@ -0,0 +1,50 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + }, + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "C": { + "item": "extendedae_plus:spatial_core" + }, + "E": { + "item": "extendedae_plus:energy_storage_core" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + }, + "Q": { + "item": "extendedae_plus:quantum_storage_core" + }, + "S": { + "item": "extendedae_plus:storage_core" + } + }, + "pattern": [ + "MQM", + "SOE", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:infinity_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/compat/storage_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/compat/storage_core.json new file mode 100644 index 0000000..1ab2824 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/compat/storage_core.json @@ -0,0 +1,48 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "megacells" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 1, + "core_stage": 3 + } + }, + "C": { + "item": "megacells:cell_component_256m" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "NBN", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:storage_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core.json new file mode 100644 index 0000000..367d896 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core.json @@ -0,0 +1,55 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "megacells" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 3, + "core_stage": 3 + } + }, + "C": { + "item": "appflux:core_256k" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "NBN", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:energy_storage_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_1.json b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_1.json new file mode 100644 index 0000000..398e44c --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_1.json @@ -0,0 +1,45 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core" + }, + "C": { + "item": "appflux:core_16k" + }, + "E": { + "item": "appflux:energy_processor" + }, + "M": { + "tag": "forge:gems/redstone" + } + }, + "pattern": [ + "MCM", + "EBE", + "MEM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 3, + "core_stage": 1 + } + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_2.json b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_2.json new file mode 100644 index 0000000..6820fad --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_2.json @@ -0,0 +1,49 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 3, + "core_stage": 1 + } + }, + "C": { + "item": "appflux:core_64k" + }, + "M": { + "item": "appflux:charged_redstone" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MOM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 3, + "core_stage": 2 + } + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_3.json b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_3.json new file mode 100644 index 0000000..02d7885 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/energy_storage_core_3.json @@ -0,0 +1,49 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "appflux" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 3, + "core_stage": 2 + } + }, + "C": { + "item": "appflux:core_256k" + }, + "M": { + "tag": "forge:ingots/sky_insulating_resin" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 3, + "core_stage": 3 + } + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/infinity_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/infinity_core.json new file mode 100644 index 0000000..e71358d --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/infinity_core.json @@ -0,0 +1,53 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "appflux" + } + }, + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "C": { + "item": "extendedae_plus:spatial_core" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + }, + "S": { + "item": "extendedae_plus:storage_core" + } + }, + "pattern": [ + "MNM", + "SOS", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:infinity_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core.json new file mode 100644 index 0000000..590c577 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core.json @@ -0,0 +1,48 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 4, + "core_stage": 3 + } + }, + "C": { + "item": "advanced_ae:quantum_storage_256" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "NBN", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:quantum_storage_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_1.json b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_1.json new file mode 100644 index 0000000..256489b --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_1.json @@ -0,0 +1,45 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core" + }, + "C": { + "item": "advanced_ae:quantum_storage_component" + }, + "E": { + "item": "advanced_ae:quantum_processor" + }, + "M": { + "item": "advanced_ae:quantum_alloy" + } + }, + "pattern": [ + "MCM", + "EBE", + "MEM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 4, + "core_stage": 1 + } + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_2.json b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_2.json new file mode 100644 index 0000000..426a974 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_2.json @@ -0,0 +1,49 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 4, + "core_stage": 1 + } + }, + "C": { + "item": "advanced_ae:quantum_storage_component" + }, + "M": { + "item": "advanced_ae:quantum_alloy_block" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MOM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 4, + "core_stage": 2 + } + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_3.json b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_3.json new file mode 100644 index 0000000..6c29641 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/quantum_storage_core_3.json @@ -0,0 +1,49 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "advanced_ae" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 4, + "core_stage": 2 + } + }, + "C": { + "item": "advanced_ae:quantum_storage_128" + }, + "M": { + "item": "advanced_ae:quantum_alloy_plate" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 4, + "core_stage": 3 + } + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core.json new file mode 100644 index 0000000..32b8267 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core.json @@ -0,0 +1,35 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 2, + "core_stage": 3 + } + }, + "C": { + "item": "ae2:spatial_cell_component_128" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "NBN", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:spatial_core" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_1.json b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_1.json new file mode 100644 index 0000000..4391217 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_1.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core" + }, + "C": { + "item": "ae2:spatial_cell_component_2" + }, + "E": { + "item": "ae2:engineering_processor" + }, + "L": { + "item": "ae2:logic_processor" + }, + "M": { + "tag": "forge:dusts/fluix" + }, + "P": { + "item": "ae2:calculation_processor" + } + }, + "pattern": [ + "MCM", + "LBP", + "MEM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 2, + "core_stage": 1 + } + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_2.json b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_2.json new file mode 100644 index 0000000..96de895 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_2.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 2, + "core_stage": 1 + } + }, + "C": { + "item": "ae2:spatial_cell_component_16" + }, + "M": { + "tag": "forge:gems/fluix" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MOM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 2, + "core_stage": 2 + } + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_3.json b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_3.json new file mode 100644 index 0000000..766ed22 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/spatial_core_3.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 2, + "core_stage": 2 + } + }, + "C": { + "item": "ae2:spatial_cell_component_128" + }, + "M": { + "item": "ae2:fluix_block" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 2, + "core_stage": 3 + } + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/storage_core.json b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core.json new file mode 100644 index 0000000..71ef7cf --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core.json @@ -0,0 +1,51 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:mod_loaded", + "modid": "megacells" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 1, + "core_stage": 3 + } + }, + "C": { + "item": "ae2:cell_component_256k" + }, + "M": { + "item": "minecraft:netherite_block" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "NBN", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:storage_core" + }, + "show_notification": true + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_1.json b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_1.json new file mode 100644 index 0000000..82e59d3 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_1.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core" + }, + "C": { + "item": "ae2:cell_component_16k" + }, + "E": { + "item": "ae2:engineering_processor" + }, + "L": { + "item": "ae2:logic_processor" + }, + "M": { + "tag": "forge:dusts/certus_quartz" + }, + "P": { + "item": "ae2:calculation_processor" + } + }, + "pattern": [ + "MCM", + "LBP", + "MEM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 1, + "core_stage": 1 + } + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_2.json b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_2.json new file mode 100644 index 0000000..7d3af7b --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_2.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 1, + "core_stage": 1 + } + }, + "C": { + "item": "ae2:cell_component_64k" + }, + "M": { + "tag": "ae2:all_certus_quartz" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MOM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 1, + "core_stage": 2 + } + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_3.json b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_3.json new file mode 100644 index 0000000..0535d05 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/core/storage_core_3.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "key": { + "B": { + "type": "forge:nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 1, + "core_stage": 2 + } + }, + "C": { + "item": "ae2:cell_component_256k" + }, + "M": { + "item": "ae2:quartz_block" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MCM" + ], + "result": { + "type": "forge:partial_nbt", + "item": "extendedae_plus:basic_core", + "nbt": { + "CustomModelData": 1, + "core_stage": 3 + } + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x16.json b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_16x.json similarity index 90% rename from src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x16.json rename to src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_16x.json index 821378b..95e2809 100644 --- a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x16.json +++ b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_16x.json @@ -1,18 +1,6 @@ { "type": "minecraft:crafting_shaped", - "pattern": [ - "SAS", - "QXQ", - "SBS" - ], "key": { - "S": { - "type": "forge:partial_nbt", - "item": "extendedae_plus:entity_speed_card", - "nbt": { - "EAS:mult": 8 - } - }, "A": { "item": "minecraft:nether_star" }, @@ -22,16 +10,28 @@ "Q": { "item": "ae2:spatial_cell_component_128" }, + "S": { + "type": "forge:nbt", + "item": "extendedae_plus:entity_speed_card", + "nbt": { + "EAS:mult": 8 + } + }, "X": { "item": "minecraft:dragon_egg" } }, + "pattern": [ + "SAS", + "QXQ", + "SBS" + ], "result": { "type": "forge:partial_nbt", "item": "extendedae_plus:entity_speed_card", - "count": 1, "nbt": { "EAS:mult": 16 } - } + }, + "show_notification": true } \ No newline at end of file diff --git a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x2.json b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_2x.json similarity index 93% rename from src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x2.json rename to src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_2x.json index 6c4466a..a178452 100644 --- a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x2.json +++ b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_2x.json @@ -1,30 +1,30 @@ { "type": "minecraft:crafting_shaped", - "pattern": [ - "SBS", - "QXQ", - "SBS" - ], "key": { - "S": { - "item": "ae2:speed_card" - }, "B": { "item": "extendedae_plus:64x_crafting_accelerator" }, "Q": { "item": "ae2:spatial_cell_component_2" }, + "S": { + "item": "ae2:speed_card" + }, "X": { "item": "ae2:cell_component_256k" } }, + "pattern": [ + "SBS", + "QXQ", + "SBS" + ], "result": { "type": "forge:partial_nbt", "item": "extendedae_plus:entity_speed_card", - "count": 1, "nbt": { "EAS:mult": 2 } - } + }, + "show_notification": true } \ No newline at end of file diff --git a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x4.json b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_4x.json similarity index 90% rename from src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x4.json rename to src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_4x.json index 91defa0..aba6faf 100644 --- a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x4.json +++ b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_4x.json @@ -1,34 +1,34 @@ { "type": "minecraft:crafting_shaped", - "pattern": [ - "SBS", - "QXQ", - "SBS" - ], "key": { - "S": { - "type": "forge:partial_nbt", - "item": "extendedae_plus:entity_speed_card", - "nbt": { - "EAS:mult": 2 - } - }, "B": { "item": "extendedae_plus:256x_crafting_accelerator" }, "Q": { "item": "ae2:spatial_cell_component_16" }, + "S": { + "type": "forge:nbt", + "item": "extendedae_plus:entity_speed_card", + "nbt": { + "EAS:mult": 2 + } + }, "X": { "item": "ae2:dense_energy_cell" } }, + "pattern": [ + "SBS", + "QXQ", + "SBS" + ], "result": { "type": "forge:partial_nbt", "item": "extendedae_plus:entity_speed_card", - "count": 1, "nbt": { "EAS:mult": 4 } - } + }, + "show_notification": true } \ No newline at end of file diff --git a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x8.json b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_8x.json similarity index 90% rename from src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x8.json rename to src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_8x.json index 73384f0..bfe8d59 100644 --- a/src/main/resources/data/extendedae_plus/recipes/entity_speed_card_x8.json +++ b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_card_8x.json @@ -1,34 +1,34 @@ { "type": "minecraft:crafting_shaped", - "pattern": [ - "SBS", - "QXQ", - "SBS" - ], "key": { - "S": { - "type": "forge:partial_nbt", - "item": "extendedae_plus:entity_speed_card", - "nbt": { - "EAS:mult": 4 - } - }, "B": { "item": "extendedae_plus:1024x_crafting_accelerator" }, "Q": { "item": "ae2:spatial_cell_component_128" }, + "S": { + "type": "forge:nbt", + "item": "extendedae_plus:entity_speed_card", + "nbt": { + "EAS:mult": 4 + } + }, "X": { "item": "minecraft:nether_star" } }, + "pattern": [ + "SBS", + "QXQ", + "SBS" + ], "result": { "type": "forge:partial_nbt", "item": "extendedae_plus:entity_speed_card", - "count": 1, "nbt": { "EAS:mult": 8 } - } + }, + "show_notification": true } \ No newline at end of file diff --git a/src/main/resources/data/extendedae_plus/recipes/entity_speed_ticker.json b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_ticker.json similarity index 76% rename from src/main/resources/data/extendedae_plus/recipes/entity_speed_ticker.json rename to src/generated/resources/data/extendedae_plus/recipes/entity_speed_ticker.json index 076d943..79b5066 100644 --- a/src/main/resources/data/extendedae_plus/recipes/entity_speed_ticker.json +++ b/src/generated/resources/data/extendedae_plus/recipes/entity_speed_ticker.json @@ -1,33 +1,34 @@ { "type": "minecraft:crafting_shaped", - "pattern": [ - "SZS", - "QXQ", - "SIS" - ], "key": { + "I": { + "item": "expatternprovider:ex_io_port" + }, + "Q": { + "item": "ae2:singularity" + }, "S": { - "type": "forge:partial_nbt", + "type": "forge:nbt", "item": "extendedae_plus:entity_speed_card", "nbt": { "EAS:mult": 2 } }, - "Z": { - "item": "ae2:dense_energy_cell" - }, - "Q": { - "item": "ae2:singularity" - }, "X": { "item": "minecraft:nether_star" }, - "I": { - "item": "expatternprovider:ex_io_port" + "Z": { + "item": "ae2:dense_energy_cell" } }, + "pattern": [ + "SZS", + "QXQ", + "SIS" + ], "result": { - "item": "extendedae_plus:entity_speed_ticker", - "count": 1 - } + "type": "forge:partial_nbt", + "item": "extendedae_plus:entity_speed_ticker" + }, + "show_notification": true } \ No newline at end of file diff --git a/src/main/resources/data/extendedae_plus/recipes/infinity_biginteger_cell.json b/src/generated/resources/data/extendedae_plus/recipes/infinity_biginteger_cell.json similarity index 79% rename from src/main/resources/data/extendedae_plus/recipes/infinity_biginteger_cell.json rename to src/generated/resources/data/extendedae_plus/recipes/infinity_biginteger_cell.json index 107dc02..94240ba 100644 --- a/src/main/resources/data/extendedae_plus/recipes/infinity_biginteger_cell.json +++ b/src/generated/resources/data/extendedae_plus/recipes/infinity_biginteger_cell.json @@ -1,29 +1,30 @@ { "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "minecraft:netherite_block" + }, + "G": { + "item": "ae2:quartz_vibrant_glass" + }, + "I": { + "item": "extendedae_plus:infinity_core" + }, + "N": { + "item": "minecraft:nether_star" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, "pattern": [ "GOG", "NIN", "BBB" ], - "key": { - "G": { - "item": "ae2:quartz_vibrant_glass" - }, - "O": { - "item": "extendedae_plus:oblivion_singularity" - }, - "N": { - "item": "minecraft:nether_star" - }, - "I": { - "item": "extendedae_plus:infinity_core" - }, - "B": { - "item": "minecraft:netherite_block" - } - }, "result": { - "item": "extendedae_plus:infinity_biginteger_cell", - "count": 1 - } + "item": "extendedae_plus:infinity_biginteger_cell" + }, + "show_notification": true } \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/network/crafting/1024x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/1024x_crafting_accelerator.json new file mode 100644 index 0000000..750d500 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/1024x_crafting_accelerator.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "A": { + "item": "ae2:cell_component_256k" + }, + "C": { + "item": "extendedae_plus:256x_crafting_accelerator" + } + }, + "pattern": [ + " ", + "ACA", + " " + ], + "result": { + "item": "extendedae_plus:1024x_crafting_accelerator" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/network/crafting/16x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/16x_crafting_accelerator.json new file mode 100644 index 0000000..ba1b0bf --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/16x_crafting_accelerator.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:crafting_accelerator" + }, + { + "item": "ae2:cell_component_16k" + } + ], + "result": { + "item": "extendedae_plus:16x_crafting_accelerator" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/network/crafting/256x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/256x_crafting_accelerator.json new file mode 100644 index 0000000..dfc3519 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/256x_crafting_accelerator.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:crafting_accelerator" + }, + { + "item": "ae2:cell_component_256k" + } + ], + "result": { + "item": "extendedae_plus:256x_crafting_accelerator" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/network/crafting/4x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/4x_crafting_accelerator.json new file mode 100644 index 0000000..478aa88 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/4x_crafting_accelerator.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:crafting_accelerator" + }, + { + "item": "ae2:cell_component_4k" + } + ], + "result": { + "item": "extendedae_plus:4x_crafting_accelerator" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/network/crafting/64x_crafting_accelerator.json b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/64x_crafting_accelerator.json new file mode 100644 index 0000000..03e29a6 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/network/crafting/64x_crafting_accelerator.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "ae2:crafting_accelerator" + }, + { + "item": "ae2:cell_component_64k" + } + ], + "result": { + "item": "extendedae_plus:64x_crafting_accelerator" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/network_pattern_controller.json b/src/generated/resources/data/extendedae_plus/recipes/network_pattern_controller.json new file mode 100644 index 0000000..04d0599 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/network_pattern_controller.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "tag": "ae2:illuminated_panel" + }, + { + "tag": "ae2:pattern_provider" + }, + { + "item": "ae2:network_tool" + } + ], + "result": { + "item": "extendedae_plus:network_pattern_controller" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/transform/oblivion_singularity.json b/src/generated/resources/data/extendedae_plus/recipes/transform/oblivion_singularity.json new file mode 100644 index 0000000..fad766a --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/transform/oblivion_singularity.json @@ -0,0 +1,20 @@ +{ + "type": "ae2:transform", + "circumstance": { + "type": "explosion" + }, + "ingredients": [ + { + "item": "ae2:singularity" + }, + { + "item": "minecraft:nether_star" + }, + { + "item": "minecraft:netherite_block" + } + ], + "result": { + "item": "extendedae_plus:oblivion_singularity" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipes/wireless_transceiver.json b/src/generated/resources/data/extendedae_plus/recipes/wireless_transceiver.json new file mode 100644 index 0000000..c8881bf --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipes/wireless_transceiver.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "L": { + "item": "ae2:quantum_link" + }, + "R": { + "item": "ae2:quantum_ring" + } + }, + "pattern": [ + "RRR", + "RLR", + "RRR" + ], + "result": { + "item": "extendedae_plus:wireless_transceiver" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/content/crafting/EPlusCraftingUnitType.java b/src/main/java/com/extendedae_plus/content/crafting/EPlusCraftingUnitType.java index 79953fd..ff77155 100644 --- a/src/main/java/com/extendedae_plus/content/crafting/EPlusCraftingUnitType.java +++ b/src/main/java/com/extendedae_plus/content/crafting/EPlusCraftingUnitType.java @@ -1,9 +1,8 @@ package com.extendedae_plus.content.crafting; import appeng.block.crafting.ICraftingUnitType; -import net.minecraft.world.item.Item; - import com.extendedae_plus.init.ModItems; +import net.minecraft.world.item.Item; public enum EPlusCraftingUnitType implements ICraftingUnitType { ACCELERATOR_4x(0, 4), @@ -34,11 +33,11 @@ public enum EPlusCraftingUnitType implements ICraftingUnitType { @Override public Item getItemFromType() { return switch (this) { - case ACCELERATOR_4x -> ModItems.ACCELERATOR_4x.get(); - case ACCELERATOR_16x -> ModItems.ACCELERATOR_16x.get(); - case ACCELERATOR_64x -> ModItems.ACCELERATOR_64x.get(); - case ACCELERATOR_256x -> ModItems.ACCELERATOR_256x.get(); - case ACCELERATOR_1024x -> ModItems.ACCELERATOR_1024x.get(); + case ACCELERATOR_4x -> ModItems.CRAFTING_ACCELERATOR_4x.get(); + case ACCELERATOR_16x -> ModItems.CRAFTING_ACCELERATOR_16x.get(); + case ACCELERATOR_64x -> ModItems.CRAFTING_ACCELERATOR_64x.get(); + case ACCELERATOR_256x -> ModItems.CRAFTING_ACCELERATOR_256x.get(); + case ACCELERATOR_1024x -> ModItems.CRAFTING_ACCELERATOR_1024x.get(); }; } } diff --git a/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java b/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java index 4a76d47..4c9fd2a 100644 --- a/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java +++ b/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java @@ -6,19 +6,19 @@ import appeng.datagen.providers.tags.ConventionTags; import appeng.recipes.transform.TransformCircumstance; import appeng.recipes.transform.TransformRecipeBuilder; import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.init.ModItems; import com.extendedae_plus.item.BasicCoreItem; import com.extendedae_plus.util.ModCheckUtils; import com.glodblock.github.appflux.common.AFItemAndBlock; import com.glodblock.github.appflux.util.AFTags; +import com.glodblock.github.extendedae.common.EPPItemAndBlock; import gripe._90.megacells.definition.MEGAItems; import net.minecraft.data.PackOutput; -import net.minecraft.data.recipes.FinishedRecipe; -import net.minecraft.data.recipes.RecipeCategory; -import net.minecraft.data.recipes.RecipeProvider; -import net.minecraft.data.recipes.ShapedRecipeBuilder; +import net.minecraft.data.recipes.*; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.level.block.Blocks; import net.pedroksl.advanced_ae.common.definitions.AAEBlocks; import net.pedroksl.advanced_ae.common.definitions.AAEFluids; import net.pedroksl.advanced_ae.common.definitions.AAEItems; @@ -34,9 +34,159 @@ public class CraftingRecipes extends RecipeProvider { @Override public void buildRecipes(@NotNull Consumer consumer) { + addCraftingAccelerators(consumer); + addCardRecipes(consumer); addCoreRecipes(consumer); addTransformRecipes(consumer); addReactionChamberRecipes(consumer); + + // 吞噬盘 + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.INFINITY_BIGINTEGER_CELL.get()) + .pattern("GOG") + .pattern("NIN") + .pattern("BBB") + .define('G', AEBlocks.QUARTZ_VIBRANT_GLASS) + .define('O', ModItems.OBLIVION_SINGULARITY.get()) + .define('N', Items.NETHER_STAR) + .define('I', ModItems.INFINITY_CORE.get()) + .define('B', Items.NETHERITE_BLOCK) + .unlockedBy("has_oblivion_singularity", has(ModItems.OBLIVION_SINGULARITY.get())) + .save(consumer); + + // 状态控制器 + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.NETWORK_PATTERN_CONTROLLER.get()) + .requires(ConventionTags.ILLUMINATED_PANEL) + .requires(ConventionTags.PATTERN_PROVIDER) + .requires(AEItems.NETWORK_TOOL) + .unlockedBy("has_network_tool", has(AEItems.NETWORK_TOOL)) + .unlockedBy("has_pattern_provider", has(ConventionTags.PATTERN_PROVIDER)) + .save(consumer); + + // 无线收发器 + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.WIRELESS_TRANSCEIVER.get()) + .pattern("RRR") + .pattern("RLR") + .pattern("RRR") + .define('R', AEBlocks.QUANTUM_RING) + .define('L', AEBlocks.QUANTUM_LINK) + .unlockedBy("has_quantum_ring", has(AEBlocks.QUANTUM_RING)) + .save(consumer); + + // 实体加速器 + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.ENTITY_TICKER_PART_ITEM.get()) + .pattern("SZS") + .pattern("QXQ") + .pattern("SIS") + .defineNbt('S', EntitySpeedCardItem.withMultiplier(2)) + .define('Z', AEBlocks.DENSE_ENERGY_CELL) + .define('Q', AEItems.SINGULARITY) + .define('X', Items.NETHER_STAR) + .define('I', EPPItemAndBlock.EX_IO_PORT) + .unlockedBy("has_entity_speed_card_x2", has(EntitySpeedCardItem.withMultiplier(2).getItem())) + .unlockedBy("has_singularity", has(AEItems.SINGULARITY)) + .save(consumer); + + // 上传核心 + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.ASSEMBLER_MATRIX_UPLOAD_CORE.get()) + .requires(EPPItemAndBlock.ASSEMBLER_MATRIX_WALL) + .requires(Items.LEVER) + .unlockedBy("has_assembler_matrix_wall", has(EPPItemAndBlock.ASSEMBLER_MATRIX_WALL)) + .save(consumer); + + } + + private void addCraftingAccelerators(Consumer consumer) { + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.CRAFTING_ACCELERATOR_4x.get()) + .requires(AEBlocks.CRAFTING_ACCELERATOR) + .requires(AEItems.CELL_COMPONENT_4K) + .unlockedBy("has_accelerator", has(AEBlocks.CRAFTING_ACCELERATOR)) + .save(consumer, ExtendedAEPlus.id("network/crafting/" + ModItems.CRAFTING_ACCELERATOR_4x.get().toString().toLowerCase())); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.CRAFTING_ACCELERATOR_16x.get()) + .requires(AEBlocks.CRAFTING_ACCELERATOR) + .requires(AEItems.CELL_COMPONENT_16K) + .unlockedBy("has_accelerator", has(AEBlocks.CRAFTING_ACCELERATOR)) + .save(consumer, ExtendedAEPlus.id("network/crafting/" + ModItems.CRAFTING_ACCELERATOR_16x.get().toString().toLowerCase())); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.CRAFTING_ACCELERATOR_64x.get()) + .requires(AEBlocks.CRAFTING_ACCELERATOR) + .requires(AEItems.CELL_COMPONENT_64K) + .unlockedBy("has_accelerator", has(AEBlocks.CRAFTING_ACCELERATOR)) + .save(consumer, ExtendedAEPlus.id("network/crafting/" + ModItems.CRAFTING_ACCELERATOR_64x.get().toString().toLowerCase())); + + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.CRAFTING_ACCELERATOR_256x.get()) + .requires(AEBlocks.CRAFTING_ACCELERATOR) + .requires(AEItems.CELL_COMPONENT_256K) + .unlockedBy("has_accelerator", has(AEBlocks.CRAFTING_ACCELERATOR)) + .save(consumer, ExtendedAEPlus.id("network/crafting/" + ModItems.CRAFTING_ACCELERATOR_256x.get().toString().toLowerCase())); + + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.CRAFTING_ACCELERATOR_1024x.get()) + .pattern(" ") + .pattern("ACA") + .pattern(" ") + .define('A', AEItems.CELL_COMPONENT_256K) + .define('C', ModItems.CRAFTING_ACCELERATOR_256x.get()) + .unlockedBy("has_256x", has(ModItems.CRAFTING_ACCELERATOR_256x.get())) + .save(consumer, ExtendedAEPlus.id("network/crafting/" + ModItems.CRAFTING_ACCELERATOR_1024x.get().toString().toLowerCase())); + } + + private void addCardRecipes(Consumer consumer) { + ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.CHANNEL_CARD.get()) + .requires(AEItems.ADVANCED_CARD) + .requires(ModItems.WIRELESS_TRANSCEIVER.get()) + .unlockedBy("has_advanced_card", has(AEItems.ADVANCED_CARD)) + .save(consumer); + + // 2x Entity Speed Card + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, EntitySpeedCardItem.withMultiplier(2)) + .pattern("SBS") + .pattern("QXQ") + .pattern("SBS") + .define('S', AEItems.SPEED_CARD) + .define('B', ModItems.CRAFTING_ACCELERATOR_64x.get()) + .define('Q', AEItems.SPATIAL_2_CELL_COMPONENT) + .define('X', AEItems.CELL_COMPONENT_256K) + .unlockedBy("has_speed_card", has(AEItems.SPEED_CARD)) + .unlockedBy("has_64x_accelerator", has(ModItems.CRAFTING_ACCELERATOR_64x.get())) + .save(consumer, ExtendedAEPlus.id("entity_speed_card_2x")); + + // 4x Entity Speed Card + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, EntitySpeedCardItem.withMultiplier(4)) + .pattern("SBS") + .pattern("QXQ") + .pattern("SBS") + .defineNbt('S', EntitySpeedCardItem.withMultiplier(2)) + .define('B', ModItems.CRAFTING_ACCELERATOR_256x.get()) + .define('Q', AEItems.SPATIAL_16_CELL_COMPONENT) + .define('X', AEBlocks.DENSE_ENERGY_CELL) + .unlockedBy("has_entity_speed_card_2x", has(EntitySpeedCardItem.withMultiplier(2).getItem())) + .save(consumer, ExtendedAEPlus.id("entity_speed_card_4x")); + + // 8x Entity Speed Card + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, EntitySpeedCardItem.withMultiplier(8)) + .pattern("SBS") + .pattern("QXQ") + .pattern("SBS") + .defineNbt('S', EntitySpeedCardItem.withMultiplier(4)) + .define('B', ModItems.CRAFTING_ACCELERATOR_1024x.get()) + .define('Q', AEItems.SPATIAL_128_CELL_COMPONENT) + .define('X', Items.NETHER_STAR) + .unlockedBy("has_entity_speed_card_4x", has(EntitySpeedCardItem.withMultiplier(4).getItem())) + .save(consumer, ExtendedAEPlus.id("entity_speed_card_8x")); + + // 16x Entity Speed Card + NBTShapedRecipeBuilder.shaped(RecipeCategory.MISC, + EntitySpeedCardItem.withMultiplier(16)) + .pattern("SAS") + .pattern("QXQ") + .pattern("SBS") + .defineNbt('S', EntitySpeedCardItem.withMultiplier(8)) + .define('A', Items.NETHER_STAR) + .define('Q', AEItems.SPATIAL_128_CELL_COMPONENT) + .define('X', Items.DRAGON_EGG) + .define('B', Blocks.BEACON) + .unlockedBy("has_entity_speed_card_8x", has(EntitySpeedCardItem.withMultiplier(8).getItem())) + .save(consumer, ExtendedAEPlus.id("entity_speed_card_16x")); } private void addCoreRecipes(Consumer consumer) { diff --git a/src/main/java/com/extendedae_plus/init/ModBlocks.java b/src/main/java/com/extendedae_plus/init/ModBlocks.java index c237109..a1d87ff 100644 --- a/src/main/java/com/extendedae_plus/init/ModBlocks.java +++ b/src/main/java/com/extendedae_plus/init/ModBlocks.java @@ -51,7 +51,7 @@ public final class ModBlocks { ); // Crafting Accelerators (reuse MAE2 textures/models) - public static final RegistryObject ACCELERATOR_4x = BLOCKS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_4x = BLOCKS.register( "4x_crafting_accelerator", () -> { var b = new CraftingUnitBlock(EPlusCraftingUnitType.ACCELERATOR_4x); @@ -60,7 +60,7 @@ public final class ModBlocks { } ); - public static final RegistryObject ACCELERATOR_16x = BLOCKS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_16x = BLOCKS.register( "16x_crafting_accelerator", () -> { var b = new CraftingUnitBlock(EPlusCraftingUnitType.ACCELERATOR_16x); @@ -69,7 +69,7 @@ public final class ModBlocks { } ); - public static final RegistryObject ACCELERATOR_64x = BLOCKS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_64x = BLOCKS.register( "64x_crafting_accelerator", () -> { var b = new CraftingUnitBlock(EPlusCraftingUnitType.ACCELERATOR_64x); @@ -78,7 +78,7 @@ public final class ModBlocks { } ); - public static final RegistryObject ACCELERATOR_256x = BLOCKS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_256x = BLOCKS.register( "256x_crafting_accelerator", () -> { var b = new CraftingUnitBlock(EPlusCraftingUnitType.ACCELERATOR_256x); @@ -87,7 +87,7 @@ public final class ModBlocks { } ); - public static final RegistryObject ACCELERATOR_1024x = BLOCKS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_1024x = BLOCKS.register( "1024x_crafting_accelerator", () -> { var b = new CraftingUnitBlock(EPlusCraftingUnitType.ACCELERATOR_1024x); diff --git a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java index b260297..a42c0ba 100644 --- a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java +++ b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java @@ -20,11 +20,11 @@ public final class ModCreativeTabs { output.accept(ModItems.NETWORK_PATTERN_CONTROLLER.get()); // 装配矩阵上传核心 output.accept(ModItems.ASSEMBLER_MATRIX_UPLOAD_CORE.get()); - output.accept(ModItems.ACCELERATOR_4x.get()); - output.accept(ModItems.ACCELERATOR_16x.get()); - output.accept(ModItems.ACCELERATOR_64x.get()); - output.accept(ModItems.ACCELERATOR_256x.get()); - output.accept(ModItems.ACCELERATOR_1024x.get()); + output.accept(ModItems.CRAFTING_ACCELERATOR_4x.get()); + output.accept(ModItems.CRAFTING_ACCELERATOR_16x.get()); + output.accept(ModItems.CRAFTING_ACCELERATOR_64x.get()); + output.accept(ModItems.CRAFTING_ACCELERATOR_256x.get()); + output.accept(ModItems.CRAFTING_ACCELERATOR_1024x.get()); output.accept(ModItems.ENTITY_TICKER_PART_ITEM.get()); // 放入四个预设的 stacks(x2,x4,x8,x16),使用 ModItems 工厂创建 @@ -47,7 +47,7 @@ public final class ModCreativeTabs { output.accept(ModItems.SPATIAL_CORE.get()); output.accept(ModItems.INFINITY_CORE.get()); - output.accept(ModItems.INFINITY_BIGINTEGER_CELL_ITEM.get()); + output.accept(ModItems.INFINITY_BIGINTEGER_CELL.get()); }) .build()); } diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index c6adf46..7b2d9c9 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -37,29 +37,29 @@ public final class ModItems { ); // Crafting Accelerators - public static final RegistryObject ACCELERATOR_4x = ITEMS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_4x = ITEMS.register( "4x_crafting_accelerator", - () -> new BlockItem(ModBlocks.ACCELERATOR_4x.get(), new Item.Properties()) + () -> new BlockItem(ModBlocks.CRAFTING_ACCELERATOR_4x.get(), new Item.Properties()) ); - public static final RegistryObject ACCELERATOR_16x = ITEMS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_16x = ITEMS.register( "16x_crafting_accelerator", - () -> new BlockItem(ModBlocks.ACCELERATOR_16x.get(), new Item.Properties()) + () -> new BlockItem(ModBlocks.CRAFTING_ACCELERATOR_16x.get(), new Item.Properties()) ); - public static final RegistryObject ACCELERATOR_64x = ITEMS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_64x = ITEMS.register( "64x_crafting_accelerator", - () -> new BlockItem(ModBlocks.ACCELERATOR_64x.get(), new Item.Properties()) + () -> new BlockItem(ModBlocks.CRAFTING_ACCELERATOR_64x.get(), new Item.Properties()) ); - public static final RegistryObject ACCELERATOR_256x = ITEMS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_256x = ITEMS.register( "256x_crafting_accelerator", - () -> new BlockItem(ModBlocks.ACCELERATOR_256x.get(), new Item.Properties()) + () -> new BlockItem(ModBlocks.CRAFTING_ACCELERATOR_256x.get(), new Item.Properties()) ); - public static final RegistryObject ACCELERATOR_1024x = ITEMS.register( + public static final RegistryObject CRAFTING_ACCELERATOR_1024x = ITEMS.register( "1024x_crafting_accelerator", - () -> new BlockItem(ModBlocks.ACCELERATOR_1024x.get(), new Item.Properties()) + () -> new BlockItem(ModBlocks.CRAFTING_ACCELERATOR_1024x.get(), new Item.Properties()) ); public static final RegistryObject ENTITY_TICKER_PART_ITEM = ITEMS.register( @@ -74,7 +74,7 @@ public final class ModItems { () -> new EntitySpeedCardItem(new Item.Properties()) ); - public static final RegistryObject INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register( + public static final RegistryObject INFINITY_BIGINTEGER_CELL = ITEMS.register( "infinity_biginteger_cell", () -> new InfinityBigIntegerCellItem(new Item.Properties()) ); diff --git a/src/main/resources/data/extendedae_plus/recipes/1024x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/recipes/1024x_crafting_accelerator.json deleted file mode 100644 index 518b2ae..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/1024x_crafting_accelerator.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - " ", - "ACA", - " " - ], - "key": { - "A": { "item": "ae2:cell_component_256k" }, - "C": { "item": "extendedae_plus:256x_crafting_accelerator" } - }, - "result": { "item": "extendedae_plus:1024x_crafting_accelerator", "count": 1 } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/16x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/recipes/16x_crafting_accelerator.json deleted file mode 100644 index 84ce19e..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/16x_crafting_accelerator.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "ae2:crafting_accelerator" }, - { "item": "ae2:cell_component_16k" } - ], - "result": { "item": "extendedae_plus:16x_crafting_accelerator", "count": 1 } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/256x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/recipes/256x_crafting_accelerator.json deleted file mode 100644 index eef86b8..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/256x_crafting_accelerator.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "ae2:crafting_accelerator" }, - { "item": "ae2:cell_component_256k" } - ], - "result": { "item": "extendedae_plus:256x_crafting_accelerator", "count": 1 } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/4x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/recipes/4x_crafting_accelerator.json deleted file mode 100644 index a6013c4..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/4x_crafting_accelerator.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "ae2:crafting_accelerator" }, - { "item": "ae2:cell_component_4k" } - ], - "result": { "item": "extendedae_plus:4x_crafting_accelerator", "count": 1 } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/64x_crafting_accelerator.json b/src/main/resources/data/extendedae_plus/recipes/64x_crafting_accelerator.json deleted file mode 100644 index d7bf57a..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/64x_crafting_accelerator.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "ae2:crafting_accelerator" }, - { "item": "ae2:cell_component_64k" } - ], - "result": { "item": "extendedae_plus:64x_crafting_accelerator", "count": 1 } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json b/src/main/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json deleted file mode 100644 index 12ca196..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/assembler_matrix_upload_core.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "expatternprovider:assembler_matrix_wall" }, - { "item": "minecraft:lever" } - ], - "result": { - "item": "extendedae_plus:assembler_matrix_upload_core", - "count": 1 - } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/channel_card.json b/src/main/resources/data/extendedae_plus/recipes/channel_card.json deleted file mode 100644 index d6b23ce..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/channel_card.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "ae2:advanced_card" }, - { "item": "extendedae_plus:wireless_transceiver" } - ], - "result": { "item": "extendedae_plus:channel_card", "count": 1 } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/network_pattern_controller.json b/src/main/resources/data/extendedae_plus/recipes/network_pattern_controller.json deleted file mode 100644 index 38721c7..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/network_pattern_controller.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "ae2:semi_dark_monitor" }, - { "item": "ae2:pattern_provider" }, - { "item": "ae2:network_tool" } - ], - "result": { - "item": "extendedae_plus:network_pattern_controller", - "count": 1 - } -} diff --git a/src/main/resources/data/extendedae_plus/recipes/wireless_transceiver.json b/src/main/resources/data/extendedae_plus/recipes/wireless_transceiver.json deleted file mode 100644 index f1cc4e6..0000000 --- a/src/main/resources/data/extendedae_plus/recipes/wireless_transceiver.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "type": "minecraft:crafting_shaped", - "pattern": [ - "RRR", - "RLR", - "RRR" - ], - "key": { - "R": { "item": "ae2:quantum_ring" }, - "L": { "item": "ae2:quantum_link" } - }, - "result": { - "item": "extendedae_plus:wireless_transceiver", - "count": 1 - } -} From d929697c3eee4f12d1b30dbb7633609e816b6fc5 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Mon, 17 Nov 2025 02:17:59 +0800 Subject: [PATCH 18/19] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8C=85=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/extendedae_plus/ExtendedAEPlus.java | 2 +- .../ae/parts/EntitySpeedTickerPart.java | 6 +++--- .../extendedae_plus/{ae => }/api/config/Settings.java | 2 +- .../{ae => }/api/crafting/ScaledProcessingPattern.java | 2 +- .../api/crafting/ScaledProcessingPatternAdv.java | 2 +- .../api/storage/InfinityBigIntegerCellHandler.java | 4 ++-- .../api/storage/InfinityBigIntegerCellInventory.java | 4 ++-- .../com/extendedae_plus/client/ClientRegistrar.java | 2 +- .../content/wireless/WirelessTransceiverBlock.java | 2 +- .../com/extendedae_plus/datagen/CraftingRecipes.java | 4 ++-- .../extendedae_plus/{ae/client => }/gui/NewIcon.java | 2 +- src/main/java/com/extendedae_plus/init/ModItems.java | 10 +++++----- .../integration/jei/ExtendedAEJeiPlugin.java | 4 ++-- .../extendedae_plus/{item => items}/BasicCoreItem.java | 2 +- .../{ae => }/items/EntitySpeedTickerPartItem.java | 7 ++++--- .../{ae => }/items/InfinityBigIntegerCellItem.java | 4 ++-- .../{ae/items => items/materials}/ChannelCardItem.java | 2 +- .../materials}/EntitySpeedCardItem.java | 2 +- .../AdvPatternProviderLogicContainsRedirectMixin.java | 2 +- .../autopattern/CraftingServiceGetProvidersMixin.java | 2 +- .../ae2/autopattern/CraftingSimulationStateMixin.java | 2 +- .../PatternProviderLogicContainsRedirectMixin.java | 2 +- .../ae2/compat/PatternProviderLogicCompatMixin.java | 2 +- .../ae2/helpers/InterfaceLogicChannelCardMixin.java | 2 +- .../parts/automation/IOBusPartChannelCardMixin.java | 2 +- .../storagebus/StorageBusPartChannelCardMixin.java | 2 +- .../extendedae_plus/network/ChannelCardBindPacket.java | 2 +- .../com/extendedae_plus/util/ScaleButtonHelper.java | 2 +- .../util/command/InfinityDiskGiveCommand.java | 2 +- .../extendedae_plus/util/entitySpeed/PowerUtils.java | 2 +- .../util/smartDoubling/PatternScaler.java | 4 ++-- 31 files changed, 46 insertions(+), 45 deletions(-) rename src/main/java/com/extendedae_plus/{ae => }/api/config/Settings.java (96%) rename src/main/java/com/extendedae_plus/{ae => }/api/crafting/ScaledProcessingPattern.java (99%) rename src/main/java/com/extendedae_plus/{ae => }/api/crafting/ScaledProcessingPatternAdv.java (96%) rename src/main/java/com/extendedae_plus/{ae => }/api/storage/InfinityBigIntegerCellHandler.java (85%) rename src/main/java/com/extendedae_plus/{ae => }/api/storage/InfinityBigIntegerCellInventory.java (99%) rename src/main/java/com/extendedae_plus/{ae/client => }/gui/NewIcon.java (95%) rename src/main/java/com/extendedae_plus/{item => items}/BasicCoreItem.java (99%) rename src/main/java/com/extendedae_plus/{ae => }/items/EntitySpeedTickerPartItem.java (97%) rename src/main/java/com/extendedae_plus/{ae => }/items/InfinityBigIntegerCellItem.java (97%) rename src/main/java/com/extendedae_plus/{ae/items => items/materials}/ChannelCardItem.java (99%) rename src/main/java/com/extendedae_plus/{ae/definitions/upgrades => items/materials}/EntitySpeedCardItem.java (98%) diff --git a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java index 011f78a..9261160 100644 --- a/src/main/java/com/extendedae_plus/ExtendedAEPlus.java +++ b/src/main/java/com/extendedae_plus/ExtendedAEPlus.java @@ -2,7 +2,7 @@ package com.extendedae_plus; import appeng.api.storage.StorageCells; import appeng.menu.locator.MenuLocators; -import com.extendedae_plus.ae.api.storage.InfinityBigIntegerCellHandler; +import com.extendedae_plus.api.storage.InfinityBigIntegerCellHandler; import com.extendedae_plus.client.ClientRegistrar; import com.extendedae_plus.config.ModConfig; import com.extendedae_plus.init.*; diff --git a/src/main/java/com/extendedae_plus/ae/parts/EntitySpeedTickerPart.java b/src/main/java/com/extendedae_plus/ae/parts/EntitySpeedTickerPart.java index 1de5943..a55a685 100644 --- a/src/main/java/com/extendedae_plus/ae/parts/EntitySpeedTickerPart.java +++ b/src/main/java/com/extendedae_plus/ae/parts/EntitySpeedTickerPart.java @@ -103,13 +103,13 @@ public class EntitySpeedTickerPart extends UpgradeablePart implements IGridTicka // 注册可记忆的配置(YES/NO) this.getConfigManager().registerSetting( - com.extendedae_plus.ae.api.config.Settings.ACCELERATE, + com.extendedae_plus.api.config.Settings.ACCELERATE, YesNo.YES ); } public boolean getAccelerateEnabled() { - return this.getConfigManager().getSetting(com.extendedae_plus.ae.api.config.Settings.ACCELERATE) == YesNo.YES; + return this.getConfigManager().getSetting(com.extendedae_plus.api.config.Settings.ACCELERATE) == YesNo.YES; } /** @@ -118,7 +118,7 @@ public class EntitySpeedTickerPart extends UpgradeablePart implements IGridTicka * @param enabled 是否启用加速 */ public void setAccelerateEnabled(boolean enabled) { - this.getConfigManager().putSetting(com.extendedae_plus.ae.api.config.Settings.ACCELERATE, enabled ? YesNo.YES : YesNo.NO); + this.getConfigManager().putSetting(com.extendedae_plus.api.config.Settings.ACCELERATE, enabled ? YesNo.YES : YesNo.NO); if (menu != null) { menu.setAccelerateEnabled(enabled); } diff --git a/src/main/java/com/extendedae_plus/ae/api/config/Settings.java b/src/main/java/com/extendedae_plus/api/config/Settings.java similarity index 96% rename from src/main/java/com/extendedae_plus/ae/api/config/Settings.java rename to src/main/java/com/extendedae_plus/api/config/Settings.java index 6ed3fc5..66c347b 100644 --- a/src/main/java/com/extendedae_plus/ae/api/config/Settings.java +++ b/src/main/java/com/extendedae_plus/api/config/Settings.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.ae.api.config; +package com.extendedae_plus.api.config; import appeng.api.config.Setting; import appeng.api.config.YesNo; diff --git a/src/main/java/com/extendedae_plus/ae/api/crafting/ScaledProcessingPattern.java b/src/main/java/com/extendedae_plus/api/crafting/ScaledProcessingPattern.java similarity index 99% rename from src/main/java/com/extendedae_plus/ae/api/crafting/ScaledProcessingPattern.java rename to src/main/java/com/extendedae_plus/api/crafting/ScaledProcessingPattern.java index 5cb96bc..f914a2f 100644 --- a/src/main/java/com/extendedae_plus/ae/api/crafting/ScaledProcessingPattern.java +++ b/src/main/java/com/extendedae_plus/api/crafting/ScaledProcessingPattern.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.ae.api.crafting; +package com.extendedae_plus.api.crafting; import appeng.api.crafting.IPatternDetails; import appeng.api.stacks.AEItemKey; diff --git a/src/main/java/com/extendedae_plus/ae/api/crafting/ScaledProcessingPatternAdv.java b/src/main/java/com/extendedae_plus/api/crafting/ScaledProcessingPatternAdv.java similarity index 96% rename from src/main/java/com/extendedae_plus/ae/api/crafting/ScaledProcessingPatternAdv.java rename to src/main/java/com/extendedae_plus/api/crafting/ScaledProcessingPatternAdv.java index 5c072d0..8a7872e 100644 --- a/src/main/java/com/extendedae_plus/ae/api/crafting/ScaledProcessingPatternAdv.java +++ b/src/main/java/com/extendedae_plus/api/crafting/ScaledProcessingPatternAdv.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.ae.api.crafting; +package com.extendedae_plus.api.crafting; import appeng.api.crafting.IPatternDetails; import appeng.api.stacks.AEKey; diff --git a/src/main/java/com/extendedae_plus/ae/api/storage/InfinityBigIntegerCellHandler.java b/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellHandler.java similarity index 85% rename from src/main/java/com/extendedae_plus/ae/api/storage/InfinityBigIntegerCellHandler.java rename to src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellHandler.java index 0609b6c..e0e7b4a 100644 --- a/src/main/java/com/extendedae_plus/ae/api/storage/InfinityBigIntegerCellHandler.java +++ b/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellHandler.java @@ -1,8 +1,8 @@ -package com.extendedae_plus.ae.api.storage; +package com.extendedae_plus.api.storage; import appeng.api.storage.cells.ICellHandler; import appeng.api.storage.cells.ISaveProvider; -import com.extendedae_plus.ae.items.InfinityBigIntegerCellItem; +import com.extendedae_plus.items.InfinityBigIntegerCellItem; import net.minecraft.world.item.ItemStack; public class InfinityBigIntegerCellHandler implements ICellHandler { diff --git a/src/main/java/com/extendedae_plus/ae/api/storage/InfinityBigIntegerCellInventory.java b/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellInventory.java similarity index 99% rename from src/main/java/com/extendedae_plus/ae/api/storage/InfinityBigIntegerCellInventory.java rename to src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellInventory.java index 9c69845..8c1eac8 100644 --- a/src/main/java/com/extendedae_plus/ae/api/storage/InfinityBigIntegerCellInventory.java +++ b/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellInventory.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.ae.api.storage; +package com.extendedae_plus.api.storage; import appeng.api.config.Actionable; import appeng.api.networking.security.IActionSource; @@ -10,7 +10,7 @@ import appeng.api.storage.cells.ISaveProvider; import appeng.api.storage.cells.StorageCell; import appeng.core.AELog; import com.extendedae_plus.ExtendedAEPlus; -import com.extendedae_plus.ae.items.InfinityBigIntegerCellItem; +import com.extendedae_plus.items.InfinityBigIntegerCellItem; import com.extendedae_plus.util.storage.InfinityConstants; import com.extendedae_plus.util.storage.InfinityDataStorage; import com.extendedae_plus.util.storage.InfinityStorageManager; diff --git a/src/main/java/com/extendedae_plus/client/ClientRegistrar.java b/src/main/java/com/extendedae_plus/client/ClientRegistrar.java index 0fa4b24..6f252c6 100644 --- a/src/main/java/com/extendedae_plus/client/ClientRegistrar.java +++ b/src/main/java/com/extendedae_plus/client/ClientRegistrar.java @@ -3,7 +3,6 @@ package com.extendedae_plus.client; import appeng.client.render.crafting.CraftingCubeModel; import appeng.init.client.InitScreens; import com.extendedae_plus.ExtendedAEPlus; -import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.ae.menu.EntitySpeedTickerMenu; import com.extendedae_plus.ae.screen.EntitySpeedTickerScreen; import com.extendedae_plus.client.render.crafting.EPlusCraftingCubeModelProvider; @@ -12,6 +11,7 @@ import com.extendedae_plus.content.crafting.EPlusCraftingUnitType; import com.extendedae_plus.hooks.BuiltInModelHooks; import com.extendedae_plus.init.ModItems; import com.extendedae_plus.init.ModMenuTypes; +import com.extendedae_plus.items.materials.EntitySpeedCardItem; import net.minecraft.client.gui.screens.MenuScreens; import net.minecraft.client.renderer.item.ItemProperties; diff --git a/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java b/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java index 0428722..e900fe5 100644 --- a/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java +++ b/src/main/java/com/extendedae_plus/content/wireless/WirelessTransceiverBlock.java @@ -1,8 +1,8 @@ package com.extendedae_plus.content.wireless; -import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.init.ModBlockEntities; import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.items.materials.ChannelCardItem; import net.minecraft.core.BlockPos; import net.minecraft.network.chat.Component; import net.minecraft.world.InteractionHand; diff --git a/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java b/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java index 4c9fd2a..8ad5c58 100644 --- a/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java +++ b/src/main/java/com/extendedae_plus/datagen/CraftingRecipes.java @@ -6,9 +6,9 @@ import appeng.datagen.providers.tags.ConventionTags; import appeng.recipes.transform.TransformCircumstance; import appeng.recipes.transform.TransformRecipeBuilder; import com.extendedae_plus.ExtendedAEPlus; -import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.init.ModItems; -import com.extendedae_plus.item.BasicCoreItem; +import com.extendedae_plus.items.BasicCoreItem; +import com.extendedae_plus.items.materials.EntitySpeedCardItem; import com.extendedae_plus.util.ModCheckUtils; import com.glodblock.github.appflux.common.AFItemAndBlock; import com.glodblock.github.appflux.util.AFTags; diff --git a/src/main/java/com/extendedae_plus/ae/client/gui/NewIcon.java b/src/main/java/com/extendedae_plus/gui/NewIcon.java similarity index 95% rename from src/main/java/com/extendedae_plus/ae/client/gui/NewIcon.java rename to src/main/java/com/extendedae_plus/gui/NewIcon.java index db82062..5b4cbe8 100644 --- a/src/main/java/com/extendedae_plus/ae/client/gui/NewIcon.java +++ b/src/main/java/com/extendedae_plus/gui/NewIcon.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.ae.client.gui; +package com.extendedae_plus.gui; import appeng.client.gui.style.Blitter; import com.extendedae_plus.ExtendedAEPlus; diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index 7b2d9c9..ba08c8c 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -4,11 +4,11 @@ import appeng.api.parts.IPart; import appeng.api.parts.PartModels; import appeng.items.parts.PartModelsHelper; import com.extendedae_plus.ExtendedAEPlus; -import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; -import com.extendedae_plus.ae.items.ChannelCardItem; -import com.extendedae_plus.ae.items.EntitySpeedTickerPartItem; -import com.extendedae_plus.ae.items.InfinityBigIntegerCellItem; -import com.extendedae_plus.item.BasicCoreItem; +import com.extendedae_plus.items.BasicCoreItem; +import com.extendedae_plus.items.EntitySpeedTickerPartItem; +import com.extendedae_plus.items.InfinityBigIntegerCellItem; +import com.extendedae_plus.items.materials.ChannelCardItem; +import com.extendedae_plus.items.materials.EntitySpeedCardItem; import com.extendedae_plus.util.ModCheckUtils; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; diff --git a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java index c27c19a..5acba00 100644 --- a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java +++ b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java @@ -1,9 +1,9 @@ package com.extendedae_plus.integration.jei; import com.extendedae_plus.ExtendedAEPlus; -import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.init.ModItems; -import com.extendedae_plus.item.BasicCoreItem; +import com.extendedae_plus.items.BasicCoreItem; +import com.extendedae_plus.items.materials.EntitySpeedCardItem; import com.extendedae_plus.util.ModCheckUtils; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; diff --git a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java b/src/main/java/com/extendedae_plus/items/BasicCoreItem.java similarity index 99% rename from src/main/java/com/extendedae_plus/item/BasicCoreItem.java rename to src/main/java/com/extendedae_plus/items/BasicCoreItem.java index ca68044..6bd9de6 100644 --- a/src/main/java/com/extendedae_plus/item/BasicCoreItem.java +++ b/src/main/java/com/extendedae_plus/items/BasicCoreItem.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.item; +package com.extendedae_plus.items; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.init.ModItems; diff --git a/src/main/java/com/extendedae_plus/ae/items/EntitySpeedTickerPartItem.java b/src/main/java/com/extendedae_plus/items/EntitySpeedTickerPartItem.java similarity index 97% rename from src/main/java/com/extendedae_plus/ae/items/EntitySpeedTickerPartItem.java rename to src/main/java/com/extendedae_plus/items/EntitySpeedTickerPartItem.java index d69893e..1900bfd 100644 --- a/src/main/java/com/extendedae_plus/ae/items/EntitySpeedTickerPartItem.java +++ b/src/main/java/com/extendedae_plus/items/EntitySpeedTickerPartItem.java @@ -1,13 +1,14 @@ -package com.extendedae_plus.ae.items; +package com.extendedae_plus.items; import appeng.items.parts.PartItem; +import com.extendedae_plus.ae.parts.EntitySpeedTickerPart; import net.minecraft.network.chat.Component; -import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; import org.jetbrains.annotations.Nullable; + import java.util.List; -import com.extendedae_plus.ae.parts.EntitySpeedTickerPart; public class EntitySpeedTickerPartItem extends PartItem { diff --git a/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java b/src/main/java/com/extendedae_plus/items/InfinityBigIntegerCellItem.java similarity index 97% rename from src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java rename to src/main/java/com/extendedae_plus/items/InfinityBigIntegerCellItem.java index 655cc0c..d96b295 100644 --- a/src/main/java/com/extendedae_plus/ae/items/InfinityBigIntegerCellItem.java +++ b/src/main/java/com/extendedae_plus/items/InfinityBigIntegerCellItem.java @@ -1,8 +1,8 @@ -package com.extendedae_plus.ae.items; +package com.extendedae_plus.items; import appeng.api.config.FuzzyMode; import appeng.api.storage.cells.ICellWorkbenchItem; -import com.extendedae_plus.ae.api.storage.InfinityBigIntegerCellInventory; +import com.extendedae_plus.api.storage.InfinityBigIntegerCellInventory; import com.extendedae_plus.util.storage.InfinityConstants; import com.google.common.base.Preconditions; import net.minecraft.ChatFormatting; diff --git a/src/main/java/com/extendedae_plus/ae/items/ChannelCardItem.java b/src/main/java/com/extendedae_plus/items/materials/ChannelCardItem.java similarity index 99% rename from src/main/java/com/extendedae_plus/ae/items/ChannelCardItem.java rename to src/main/java/com/extendedae_plus/items/materials/ChannelCardItem.java index 069d082..57add76 100644 --- a/src/main/java/com/extendedae_plus/ae/items/ChannelCardItem.java +++ b/src/main/java/com/extendedae_plus/items/materials/ChannelCardItem.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.ae.items; +package com.extendedae_plus.items.materials; import appeng.items.materials.UpgradeCardItem; import com.extendedae_plus.util.wireless.WirelessTeamUtil; diff --git a/src/main/java/com/extendedae_plus/ae/definitions/upgrades/EntitySpeedCardItem.java b/src/main/java/com/extendedae_plus/items/materials/EntitySpeedCardItem.java similarity index 98% rename from src/main/java/com/extendedae_plus/ae/definitions/upgrades/EntitySpeedCardItem.java rename to src/main/java/com/extendedae_plus/items/materials/EntitySpeedCardItem.java index f896d7e..3d4de25 100644 --- a/src/main/java/com/extendedae_plus/ae/definitions/upgrades/EntitySpeedCardItem.java +++ b/src/main/java/com/extendedae_plus/items/materials/EntitySpeedCardItem.java @@ -1,4 +1,4 @@ -package com.extendedae_plus.ae.definitions.upgrades; +package com.extendedae_plus.items.materials; import appeng.items.materials.UpgradeCardItem; import com.extendedae_plus.init.ModItems; diff --git a/src/main/java/com/extendedae_plus/mixin/advancedae/AdvPatternProviderLogicContainsRedirectMixin.java b/src/main/java/com/extendedae_plus/mixin/advancedae/AdvPatternProviderLogicContainsRedirectMixin.java index fb482b9..9f7add1 100644 --- a/src/main/java/com/extendedae_plus/mixin/advancedae/AdvPatternProviderLogicContainsRedirectMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/advancedae/AdvPatternProviderLogicContainsRedirectMixin.java @@ -1,7 +1,7 @@ package com.extendedae_plus.mixin.advancedae; import appeng.api.crafting.IPatternDetails; -import com.extendedae_plus.ae.api.crafting.ScaledProcessingPattern; +import com.extendedae_plus.api.crafting.ScaledProcessingPattern; import net.pedroksl.advanced_ae.common.logic.AdvPatternProviderLogic; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingServiceGetProvidersMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingServiceGetProvidersMixin.java index 1a508c2..5f6d439 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingServiceGetProvidersMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingServiceGetProvidersMixin.java @@ -2,7 +2,7 @@ package com.extendedae_plus.mixin.ae2.autopattern; import appeng.api.crafting.IPatternDetails; import appeng.me.service.CraftingService; -import com.extendedae_plus.ae.api.crafting.ScaledProcessingPattern; +import com.extendedae_plus.api.crafting.ScaledProcessingPattern; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.ModifyArg; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java index f6e8a7a..645f665 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/CraftingSimulationStateMixin.java @@ -6,7 +6,7 @@ import appeng.crafting.CraftingPlan; import appeng.crafting.inv.CraftingSimulationState; import appeng.crafting.pattern.AEProcessingPattern; import appeng.me.service.CraftingService; -import com.extendedae_plus.ae.api.crafting.ScaledProcessingPattern; +import com.extendedae_plus.api.crafting.ScaledProcessingPattern; import com.extendedae_plus.api.smartDoubling.ICraftingCalculationExt; import com.extendedae_plus.api.smartDoubling.ISmartDoublingAwarePattern; import com.extendedae_plus.config.ModConfig; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/PatternProviderLogicContainsRedirectMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/PatternProviderLogicContainsRedirectMixin.java index a1b6bf7..bb18db1 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/PatternProviderLogicContainsRedirectMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/autopattern/PatternProviderLogicContainsRedirectMixin.java @@ -2,7 +2,7 @@ package com.extendedae_plus.mixin.ae2.autopattern; import appeng.api.crafting.IPatternDetails; import appeng.helpers.patternprovider.PatternProviderLogic; -import com.extendedae_plus.ae.api.crafting.ScaledProcessingPattern; +import com.extendedae_plus.api.crafting.ScaledProcessingPattern; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/compat/PatternProviderLogicCompatMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/compat/PatternProviderLogicCompatMixin.java index 0c22e53..d5f4425 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/compat/PatternProviderLogicCompatMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/compat/PatternProviderLogicCompatMixin.java @@ -7,12 +7,12 @@ import appeng.api.upgrades.IUpgradeableObject; import appeng.api.upgrades.UpgradeInventories; import appeng.helpers.patternprovider.PatternProviderLogic; import appeng.helpers.patternprovider.PatternProviderLogicHost; -import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.ae.wireless.WirelessSlaveLink; import com.extendedae_plus.ae.wireless.endpoint.GenericNodeEndpointImpl; import com.extendedae_plus.api.bridge.IInterfaceWirelessLinkBridge; import com.extendedae_plus.compat.UpgradeSlotCompat; import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.items.materials.ChannelCardItem; import com.extendedae_plus.util.Logger; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.item.ItemStack; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/helpers/InterfaceLogicChannelCardMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/helpers/InterfaceLogicChannelCardMixin.java index a54735a..a960dd2 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/helpers/InterfaceLogicChannelCardMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/helpers/InterfaceLogicChannelCardMixin.java @@ -3,11 +3,11 @@ package com.extendedae_plus.mixin.ae2.helpers; import appeng.api.upgrades.IUpgradeInventory; import appeng.helpers.InterfaceLogic; import appeng.helpers.InterfaceLogicHost; -import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.ae.wireless.WirelessSlaveLink; import com.extendedae_plus.ae.wireless.endpoint.InterfaceNodeEndpointImpl; import com.extendedae_plus.api.bridge.IInterfaceWirelessLinkBridge; import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.items.materials.ChannelCardItem; import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/parts/automation/IOBusPartChannelCardMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/parts/automation/IOBusPartChannelCardMixin.java index a4048e0..657ca0c 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/parts/automation/IOBusPartChannelCardMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/parts/automation/IOBusPartChannelCardMixin.java @@ -4,11 +4,11 @@ import appeng.api.networking.security.IActionHost; import appeng.api.upgrades.IUpgradeInventory; import appeng.api.upgrades.IUpgradeableObject; import appeng.parts.automation.IOBusPart; -import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.ae.wireless.WirelessSlaveLink; import com.extendedae_plus.ae.wireless.endpoint.GenericNodeEndpointImpl; import com.extendedae_plus.api.bridge.IInterfaceWirelessLinkBridge; import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.items.materials.ChannelCardItem; import com.extendedae_plus.util.Logger; import net.minecraft.nbt.CompoundTag; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/parts/storagebus/StorageBusPartChannelCardMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/parts/storagebus/StorageBusPartChannelCardMixin.java index 63509b2..ee6d970 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/parts/storagebus/StorageBusPartChannelCardMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/parts/storagebus/StorageBusPartChannelCardMixin.java @@ -5,11 +5,11 @@ import appeng.api.networking.security.IActionHost; import appeng.api.upgrades.IUpgradeInventory; import appeng.api.upgrades.IUpgradeableObject; import appeng.parts.storagebus.StorageBusPart; -import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.ae.wireless.WirelessSlaveLink; import com.extendedae_plus.ae.wireless.endpoint.GenericNodeEndpointImpl; import com.extendedae_plus.api.bridge.IInterfaceWirelessLinkBridge; import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.items.materials.ChannelCardItem; import com.extendedae_plus.util.Logger; import net.minecraft.nbt.CompoundTag; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/com/extendedae_plus/network/ChannelCardBindPacket.java b/src/main/java/com/extendedae_plus/network/ChannelCardBindPacket.java index b7ef66f..b399bb9 100644 --- a/src/main/java/com/extendedae_plus/network/ChannelCardBindPacket.java +++ b/src/main/java/com/extendedae_plus/network/ChannelCardBindPacket.java @@ -1,7 +1,7 @@ package com.extendedae_plus.network; -import com.extendedae_plus.ae.items.ChannelCardItem; import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.items.materials.ChannelCardItem; import com.extendedae_plus.util.wireless.WirelessTeamUtil; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.Component; diff --git a/src/main/java/com/extendedae_plus/util/ScaleButtonHelper.java b/src/main/java/com/extendedae_plus/util/ScaleButtonHelper.java index 6dbc9c1..4bb4104 100644 --- a/src/main/java/com/extendedae_plus/util/ScaleButtonHelper.java +++ b/src/main/java/com/extendedae_plus/util/ScaleButtonHelper.java @@ -1,6 +1,6 @@ package com.extendedae_plus.util; -import com.extendedae_plus.ae.client.gui.NewIcon; +import com.extendedae_plus.gui.NewIcon; import com.glodblock.github.extendedae.client.button.ActionEPPButton; import java.util.ArrayList; diff --git a/src/main/java/com/extendedae_plus/util/command/InfinityDiskGiveCommand.java b/src/main/java/com/extendedae_plus/util/command/InfinityDiskGiveCommand.java index 61e4832..cb6c483 100644 --- a/src/main/java/com/extendedae_plus/util/command/InfinityDiskGiveCommand.java +++ b/src/main/java/com/extendedae_plus/util/command/InfinityDiskGiveCommand.java @@ -1,7 +1,7 @@ package com.extendedae_plus.util.command; import com.extendedae_plus.ExtendedAEPlus; -import com.extendedae_plus.ae.items.InfinityBigIntegerCellItem; +import com.extendedae_plus.items.InfinityBigIntegerCellItem; import com.extendedae_plus.util.storage.InfinityStorageManager; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.context.CommandContext; diff --git a/src/main/java/com/extendedae_plus/util/entitySpeed/PowerUtils.java b/src/main/java/com/extendedae_plus/util/entitySpeed/PowerUtils.java index 5115be4..730ec20 100644 --- a/src/main/java/com/extendedae_plus/util/entitySpeed/PowerUtils.java +++ b/src/main/java/com/extendedae_plus/util/entitySpeed/PowerUtils.java @@ -1,8 +1,8 @@ package com.extendedae_plus.util.entitySpeed; import appeng.api.upgrades.IUpgradeInventory; -import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.config.ModConfig; +import com.extendedae_plus.items.materials.EntitySpeedCardItem; import net.minecraft.world.item.ItemStack; import java.util.ArrayList; diff --git a/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java b/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java index 20f6bf6..a3564b6 100644 --- a/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java +++ b/src/main/java/com/extendedae_plus/util/smartDoubling/PatternScaler.java @@ -5,7 +5,7 @@ import appeng.api.stacks.AEFluidKey; import appeng.api.stacks.AEItemKey; import appeng.api.stacks.AEKey; import appeng.crafting.pattern.AEProcessingPattern; -import com.extendedae_plus.ae.api.crafting.ScaledProcessingPattern; +import com.extendedae_plus.api.crafting.ScaledProcessingPattern; import net.minecraftforge.fml.loading.LoadingModList; import java.lang.reflect.Constructor; @@ -23,7 +23,7 @@ public final class PatternScaler { try { // 尝试加载扩展类 - Class clazz = Class.forName("com.extendedae_plus.ae.api.crafting.ScaledProcessingPatternAdv"); + Class clazz = Class.forName("com.extendedae_plus.api.crafting.ScaledProcessingPatternAdv"); ctor = clazz.getConstructor(AEProcessingPattern.class, long.class); // 加载接口 From 1bc5ab52ca59a81dda759a88693f2bb9599ac1ba Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Mon, 17 Nov 2025 14:09:14 +0800 Subject: [PATCH 19/19] =?UTF-8?q?=E5=90=9E=E5=99=AC=E7=9B=98=E5=B0=8F?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 6 ++ .../InfinityBigIntegerCellInventory.java | 75 +++++++++++-------- 2 files changed, 50 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 626be86..837f2e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,8 @@ - Added natural sorting functionality for the upload pattern list - 添加合成计划字节数显示的格式化功能 - Added formatted display for crafting plan byte count +- 添加部分物品用于磁盘合成(与AAE、APPFLUX、MEGA均有联动) + - Add some items for disk synthesis (linked with AAE, APPFLUX, MEGA) ### Changed / 变更 - 调整实体加速器模型 @@ -33,6 +35,10 @@ - Added translation key support for some previously hardcoded text, improving internationalization experience - 略微提升无线收发器基础硬度,锁定状态下挖掘速度降至10% - Slightly increased wireless transceiver base hardness, mining speed reduced to 10% when locked +- 调整部分物品合成配方 + - Adjust the synthesis formula of some items +- 优化本mod磁盘性能 + - Optimize the disk performance of this mod ### Fixed / 修复 - 修复供应器高亮在服务器中不显示的问题 diff --git a/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellInventory.java b/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellInventory.java index 8c1eac8..72b86fc 100644 --- a/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellInventory.java +++ b/src/main/java/com/extendedae_plus/api/storage/InfinityBigIntegerCellInventory.java @@ -42,10 +42,13 @@ public class InfinityBigIntegerCellInventory implements StorageCell { // 存储的物品种类数量 private int totalAEKeyType; // 存储的物品总数 - private BigInteger totalAEKey2Amounts = BigInteger.ZERO; + private BigInteger totalAEKey2Amounts = BI_ZERO; // 标记是否已持久化到 SavedData private boolean isPersisted = true; + private static final BigInteger BI_ZERO = BigInteger.ZERO; + private static final BigInteger BI_LONG_MAX = BigInteger.valueOf(Long.MAX_VALUE); + public InfinityBigIntegerCellInventory(InfinityBigIntegerCellItem cell, ItemStack stack, ISaveProvider saveProvider) { // 保存存储单元类型(InfinityBigIntegerCellItem 实例),用于访问磁盘属性 @@ -93,15 +96,16 @@ public class InfinityBigIntegerCellInventory implements StorageCell { private void initData() { // 如果磁盘有 UUID,加载存储的物品数据 if (hasUUID()) { - this.totalAEKeyType = getCellStorage().amounts.size(); - this.totalAEKey2Amounts = getCellStorage().itemCount.equals(BigInteger.ZERO) ? - BigInteger.ZERO : - getCellStorage().itemCount; + InfinityDataStorage storage = getCellStorage(); + this.totalAEKeyType = storage.amounts.size(); + this.totalAEKey2Amounts = storage.itemCount.equals(BI_ZERO) ? + BI_ZERO : + storage.itemCount; } else { // 否则初始化为空 this.totalAEKeyType = 0; - this.totalAEKey2Amounts = BigInteger.ZERO; + this.totalAEKey2Amounts = BI_ZERO; // 加载物品数据 getCellStoredMap(); } @@ -111,7 +115,7 @@ public class InfinityBigIntegerCellInventory implements StorageCell { @Override public CellState getStatus() { // 如果没有存储任何物品,返回空状态 - if (this.getTotalAEKey2Amounts().equals(BigInteger.ZERO)) { + if (this.getTotalAEKey2Amounts().equals(BI_ZERO)) { return CellState.EMPTY; } // 否则返回满状态 @@ -130,7 +134,7 @@ public class InfinityBigIntegerCellInventory implements StorageCell { if (this.isPersisted) return; - if (totalAEKey2Amounts.equals(BigInteger.ZERO)) { + if (totalAEKey2Amounts.equals(BI_ZERO)) { if (hasUUID()) { getStorageManagerInstance().removeCell(getUUID()); if (self.hasTag()) { @@ -152,12 +156,12 @@ public class InfinityBigIntegerCellInventory implements StorageCell { // 创建物品数量列表 ListTag amounts = new ListTag(); // 初始化物品总数 - BigInteger itemCount = BigInteger.ZERO; + BigInteger itemCount = BI_ZERO; for (var entry : this.AEKey2AmountsMap.object2ObjectEntrySet()) { BigInteger amount = entry.getValue(); // 如果数量大于 0,添加到键和数量列表 - if (amount.compareTo(BigInteger.ZERO) > 0) { + if (amount.compareTo(BI_ZERO) > 0) { keys.add(entry.getKey().toTagGeneric()); CompoundTag amountTag = new CompoundTag(); amountTag.putByteArray("value", amount.toByteArray()); @@ -233,7 +237,7 @@ public class InfinityBigIntegerCellInventory implements StorageCell { // 获取或初始化存储映射 private Object2ObjectMap getCellStoredMap() { if (AEKey2AmountsMap == null) { - AEKey2AmountsMap = new Object2ObjectOpenHashMap<>(); + AEKey2AmountsMap = new Object2ObjectOpenHashMap<>(512, 0.6f); this.loadCellStoredMap(); } return AEKey2AmountsMap; @@ -242,30 +246,39 @@ public class InfinityBigIntegerCellInventory implements StorageCell { // 获取所有可用的物品堆栈及其数量 @Override public void getAvailableStacks(KeyCounter out) { - BigInteger maxLong = BigInteger.valueOf(Long.MAX_VALUE); - if(this.getCellStoredMap() == null) return; - for (var entry : this.getCellStoredMap().object2ObjectEntrySet()) { - AEKey key = entry.getKey(); - BigInteger value = entry.getValue(); + var map = getCellStoredMap(); + if (map == null || map.isEmpty()) { + return; + } - // 获取 KeyCounter 中已有的值 + for (var entry : map.object2ObjectEntrySet()) { + AEKey key = entry.getKey(); + BigInteger amount = entry.getValue(); + + // 如果当前要添加的数量本身就超过 Long.MAX_VALUE,直接设为 MAX + if (amount.compareTo(BI_LONG_MAX) > 0) { + out.set(key, Long.MAX_VALUE); + continue; + } + + long addAmount = amount.longValue(); long existing = out.get(key); - // 计算总和并限制到 Long.MAX_VALUE - BigInteger sum = BigInteger.valueOf(existing).add(value); - long toSet = sum.compareTo(maxLong) > 0 ? Long.MAX_VALUE : sum.longValue(); - // 更新 KeyCounter + // 如果已有值已是 MAX,直接跳过 if (existing == Long.MAX_VALUE) { continue; } - long delta = toSet - existing; - if (delta != 0) { - out.add(key, delta); + + // 计算总和,防止溢出 + long sum = existing + addAmount; + if (sum < 0 || sum < existing) { // 溢出检测 + out.set(key, Long.MAX_VALUE); + } else { + out.add(key, addAmount); // 安全添加 } } } - // 从存储中加载物品映射 private void loadCellStoredMap() { boolean dataCorruption = false; @@ -282,7 +295,7 @@ public class InfinityBigIntegerCellInventory implements StorageCell { AEKey key = AEKey.fromTagGeneric(keys.getCompound(i)); BigInteger amount = new BigInteger(amounts.getCompound(i).getByteArray("value")); // 检查数据是否损坏 - if (amount.compareTo(BigInteger.ZERO) <= 0 || key == null) { + if (amount.compareTo(BI_ZERO) <= 0 || key == null) { dataCorruption = true; } else { AEKey2AmountsMap.put(key, amount); @@ -303,7 +316,7 @@ public class InfinityBigIntegerCellInventory implements StorageCell { // 更新存储的物品种类数量 this.totalAEKeyType = this.AEKey2AmountsMap.size(); // 重置物品总数 - this.totalAEKey2Amounts = BigInteger.ZERO; + this.totalAEKey2Amounts = BI_ZERO; // 计算物品总数 for (BigInteger AEKey2Amounts : this.AEKey2AmountsMap.values()) { this.totalAEKey2Amounts = this.totalAEKey2Amounts.add(AEKey2Amounts); @@ -341,7 +354,7 @@ public class InfinityBigIntegerCellInventory implements StorageCell { loadCellStoredMap(); } // 获取当前物品数量 - BigInteger currentAmount = this.getCellStoredMap().getOrDefault(what, BigInteger.ZERO); + BigInteger currentAmount = this.getCellStoredMap().getOrDefault(what, BI_ZERO); if (mode == Actionable.MODULATE) { // 实际插入,更新数量并保存 @@ -355,9 +368,9 @@ public class InfinityBigIntegerCellInventory implements StorageCell { // 从存储单元提取物品 @Override public long extract(AEKey what, long amount, Actionable mode, IActionSource source) { - BigInteger currentAmount = this.getCellStoredMap().getOrDefault(what, BigInteger.ZERO); + BigInteger currentAmount = this.getCellStoredMap().getOrDefault(what, BI_ZERO); // 如果有物品可提取 - if (currentAmount.compareTo(BigInteger.ZERO) > 0) { + if (currentAmount.compareTo(BI_ZERO) > 0) { BigInteger requested = BigInteger.valueOf(amount); @@ -367,7 +380,7 @@ public class InfinityBigIntegerCellInventory implements StorageCell { getCellStoredMap().remove(what); this.saveChanges(); } - return currentAmount.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) > 0 ? Long.MAX_VALUE : currentAmount.longValue(); + return currentAmount.compareTo(BI_LONG_MAX) > 0 ? Long.MAX_VALUE : currentAmount.longValue(); } else { // 提取部分数量 if (mode == Actionable.MODULATE) {