diff --git a/src/generated/resources/data/advanced_ae/recipe/oblivion_singularity.json b/src/generated/resources/data/advanced_ae/recipe/oblivion_singularity.json new file mode 100644 index 0000000..bd2e1ed --- /dev/null +++ b/src/generated/resources/data/advanced_ae/recipe/oblivion_singularity.json @@ -0,0 +1,34 @@ +{ + "type": "advanced_ae:reaction", + "input_energy": 100000, + "input_fluid": { + "amount": 2000, + "ingredient": { + "fluid": "advanced_ae:quantum_infusion_source" + } + }, + "input_items": [ + { + "amount": 2, + "ingredient": { + "item": "ae2:singularity" + } + }, + { + "ingredient": { + "item": "minecraft:nether_star" + } + }, + { + "amount": 4, + "ingredient": { + "item": "advanced_ae:quantum_alloy_plate" + } + } + ], + "output": { + "#": 1, + "#t": "ae2:i", + "id": "extendedae_plus:oblivion_singularity" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancement/recipes/misc/basic_core.json b/src/generated/resources/data/extendedae_plus/advancement/recipes/misc/basic_core.json new file mode 100644 index 0000000..c754ae4 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancement/recipes/misc/basic_core.json @@ -0,0 +1,32 @@ +{ + "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:basic_core" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_nether_star" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:basic_core" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/advancement/recipes/misc/infinity_biginteger_cell.json b/src/generated/resources/data/extendedae_plus/advancement/recipes/misc/infinity_biginteger_cell.json new file mode 100644 index 0000000..64c6027 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/advancement/recipes/misc/infinity_biginteger_cell.json @@ -0,0 +1,32 @@ +{ + "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_the_recipe", + "has_oblivion_singularity" + ] + ], + "rewards": { + "recipes": [ + "extendedae_plus:infinity_biginteger_cell" + ] + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipe/basic_core.json b/src/generated/resources/data/extendedae_plus/recipe/basic_core.json new file mode 100644 index 0000000..9df62e6 --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipe/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": { + "count": 1, + "id": "extendedae_plus:basic_core" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json b/src/generated/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json new file mode 100644 index 0000000..6cae89b --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json @@ -0,0 +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" + ], + "result": { + "count": 1, + "id": "extendedae_plus:infinity_biginteger_cell" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/extendedae_plus/recipe/transform/oblivion_singularity.json b/src/generated/resources/data/extendedae_plus/recipe/transform/oblivion_singularity.json new file mode 100644 index 0000000..5a6a65b --- /dev/null +++ b/src/generated/resources/data/extendedae_plus/recipe/transform/oblivion_singularity.json @@ -0,0 +1,21 @@ +{ + "type": "ae2:transform", + "circumstance": { + "type": "explosion" + }, + "ingredients": [ + { + "item": "ae2:singularity" + }, + { + "item": "minecraft:nether_star" + }, + { + "item": "minecraft:netherite_block" + } + ], + "result": { + "count": 1, + "id": "extendedae_plus:oblivion_singularity" + } +} \ No newline at end of file diff --git a/src/main/java/com/extendedae_plus/api/ids/EAPComponents.java b/src/main/java/com/extendedae_plus/api/ids/EAPComponents.java index f58c797..a7f3ced 100644 --- a/src/main/java/com/extendedae_plus/api/ids/EAPComponents.java +++ b/src/main/java/com/extendedae_plus/api/ids/EAPComponents.java @@ -1,10 +1,13 @@ package com.extendedae_plus.api.ids; import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.items.BasicCoreItem; import com.mojang.serialization.Codec; import net.minecraft.core.component.DataComponentType; import net.minecraft.core.registries.Registries; +import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; +import net.minecraft.network.codec.StreamCodec; import net.neoforged.neoforge.registries.DeferredHolder; import net.neoforged.neoforge.registries.DeferredRegister; @@ -15,8 +18,6 @@ public final class EAPComponents { public static final DeferredRegister> DR = DeferredRegister.create(Registries.DATA_COMPONENT_TYPE, ExtendedAEPlus.MODID); - // 2. 你的自定义组件(下面举几个常见例子) - // 布尔值:高级阻塞模式 public static final DeferredHolder, DataComponentType> ADVANCED_BLOCKING = register("advanced_blocking", builder -> @@ -28,6 +29,21 @@ public final class EAPComponents { builder.persistent(Codec.BOOL) // 存档持久化 .networkSynchronized(ByteBufCodecs.BOOL)); // 网络同步(客户端要看到) + // 核心类型组件(CoreType) + public static final DeferredHolder, DataComponentType> CORE_TYPE = + register("core_type", builder -> + builder.persistent(Codec.STRING.xmap(BasicCoreItem.CoreType::valueOf, Enum::name)) + .networkSynchronized(StreamCodec.of( + FriendlyByteBuf::writeEnum, + buf -> buf.readEnum(BasicCoreItem.CoreType.class) + ))); + + // 核心阶段组件(Stage) + public static final DeferredHolder, DataComponentType> CORE_STAGE = + register("core_stage", builder -> + builder.persistent(Codec.INT) + .networkSynchronized(ByteBufCodecs.INT)); + private static DeferredHolder, DataComponentType> register( String name, UnaryOperator> builderOperator) { diff --git a/src/main/java/com/extendedae_plus/client/ClientProxy.java b/src/main/java/com/extendedae_plus/client/ClientProxy.java index 33bedb7..8d197db 100644 --- a/src/main/java/com/extendedae_plus/client/ClientProxy.java +++ b/src/main/java/com/extendedae_plus/client/ClientProxy.java @@ -4,11 +4,13 @@ import appeng.client.render.crafting.CraftingCubeModel; import appeng.init.client.InitScreens; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.ae.screen.EntitySpeedTickerScreen; +import com.extendedae_plus.api.ids.EAPComponents; import com.extendedae_plus.client.render.crafting.EPlusCraftingCubeModelProvider; 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.BasicCoreItem; import com.extendedae_plus.items.materials.EntitySpeedCardItem; import com.extendedae_plus.client.screen.LabeledWirelessTransceiverScreen; import com.extendedae_plus.menu.LabeledWirelessTransceiverMenu; @@ -34,6 +36,13 @@ public final class ClientProxy { ItemProperties.register(ModItems.ENTITY_SPEED_CARD.get(), ExtendedAEPlus.id("mult"), (stack, world, entity, seed) -> (float) EntitySpeedCardItem.readMultiplier(stack)); + // 注册 BasicCore 的 core_type 属性用于模型切换 + ItemProperties.register(ModItems.BASIC_CORE.get(), ExtendedAEPlus.id("core_type"), + (stack, world, entity, seed) -> { + BasicCoreItem.CoreType type = stack.get(EAPComponents.CORE_TYPE.get()); + return type != null ? (float) type.id : 0.0f; + }); + // 注册五种形成态模型为内置模型 BuiltInModelHooks.addBuiltInModel( ExtendedAEPlus.id("block/crafting/4x_accelerator_formed_v2"), diff --git a/src/main/java/com/extendedae_plus/datagen/CrafterRecipe.java b/src/main/java/com/extendedae_plus/datagen/CrafterRecipe.java index 877a48f..6e03494 100644 --- a/src/main/java/com/extendedae_plus/datagen/CrafterRecipe.java +++ b/src/main/java/com/extendedae_plus/datagen/CrafterRecipe.java @@ -2,14 +2,21 @@ package com.extendedae_plus.datagen; import appeng.core.definitions.AEBlocks; import appeng.core.definitions.AEItems; +import appeng.recipes.transform.TransformCircumstance; +import appeng.recipes.transform.TransformRecipeBuilder; import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.init.ModItems; import com.glodblock.github.extendedae.common.EAESingletons; import net.minecraft.core.HolderLookup; import net.minecraft.data.PackOutput; -import net.minecraft.data.recipes.*; +import net.minecraft.data.recipes.RecipeCategory; +import net.minecraft.data.recipes.RecipeOutput; +import net.minecraft.data.recipes.RecipeProvider; +import net.minecraft.data.recipes.ShapedRecipeBuilder; import net.minecraft.world.item.Items; -import net.minecraft.world.level.ItemLike; +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.concurrent.CompletableFuture; @@ -26,7 +33,6 @@ public class CrafterRecipe extends RecipeProvider { @Override protected void buildRecipes(@NotNull RecipeOutput output) { - //超级装配矩阵速度核心 ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.ASSEMBLER_MATRIX_SPEED_PLUS.get()) .pattern("BRB") @@ -92,5 +98,48 @@ public class CrafterRecipe extends RecipeProvider { .define('C', Items.REDSTONE) .define('D', AEItems.CALCULATION_PROCESSOR) .save(output); + + // 湮灭奇点 - 爆炸转换 + TransformRecipeBuilder.transform(output, + ExtendedAEPlus.id("transform/oblivion_singularity"), + ModItems.OBLIVION_SINGULARITY.get(), 1, + TransformCircumstance.EXPLOSION, + AEItems.SINGULARITY, Items.NETHER_STAR, Items.NETHERITE_BLOCK + ); + + // 湮灭奇点 - AAE反应仓配方 + 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(output, "oblivion_singularity"); + + // 基础核心配方 + 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(output); + + // 吞噬盘 + ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.INFINITY_BIGINTEGER_CELL_ITEM.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(output); } } diff --git a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java index 9ef14d4..61f7766 100644 --- a/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java +++ b/src/main/java/com/extendedae_plus/init/ModCreativeTabs.java @@ -40,9 +40,22 @@ public final class ModCreativeTabs { ModItems.FISH_DAN.get().getDefaultInstance(), ModItems._FENG.get().getDefaultInstance(), ModItems.XBAI.get().getDefaultInstance(), - ModItems.MIRROR_PATTERN_BINDING_TOOL.get().getDefaultInstance() + ModItems.MIRROR_PATTERN_BINDING_TOOL.get().getDefaultInstance(), + // 基础核心相关物品 + ModItems.OBLIVION_SINGULARITY.get().getDefaultInstance(), + ModItems.BASIC_CORE.get().getDefaultInstance(), + ModItems.STORAGE_CORE.get().getDefaultInstance(), + ModItems.SPATIAL_CORE.get().getDefaultInstance(), + ModItems.INFINITY_CORE.get().getDefaultInstance() ).forEach(output::accept); + 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()); + } + // 放入四个预设的 stacks(x2,x4,x8,x16),使用 ModItems 工厂创建 for (byte multiplier : new byte[] {2, 4, 8, 16}) { ItemStack stack = ModItems.createEntitySpeedCardStack(multiplier); diff --git a/src/main/java/com/extendedae_plus/init/ModItems.java b/src/main/java/com/extendedae_plus/init/ModItems.java index 0ac9146..590f936 100644 --- a/src/main/java/com/extendedae_plus/init/ModItems.java +++ b/src/main/java/com/extendedae_plus/init/ModItems.java @@ -1,15 +1,18 @@ package com.extendedae_plus.init; import com.extendedae_plus.ExtendedAEPlus; +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.items.materials.VirtualCraftingCardItem; import com.extendedae_plus.items.tools.MirrorPatternBindingToolItem; +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.minecraft.world.item.Rarity; import net.neoforged.neoforge.registries.DeferredItem; import net.neoforged.neoforge.registries.DeferredRegister; @@ -109,10 +112,60 @@ public final class ModItems { "network_pattern_controller", () -> new BlockItem(ModBlocks.NETWORK_PATTERN_CONTROLLER.get(), new Item.Properties()) ); - static final DeferredItem INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register( + public static final DeferredItem INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register( "infinity_biginteger_cell", InfinityBigIntegerCellItem::new ); + // ==================== 基础核心及相关物品 ==================== + // 基础核心 - 用于合成各种高级核心,稀有度由DataComponent动态设置 + public static final DeferredItem BASIC_CORE = ITEMS.register( + "basic_core", + () -> new BasicCoreItem(new Item.Properties()) + ); + // 存储核心 + public static final DeferredItem STORAGE_CORE = ITEMS.register( + "storage_core", + () -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC)) + ); + // 空间核心 + public static final DeferredItem SPATIAL_CORE = ITEMS.register( + "spatial_core", + () -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC)) + ); + // 吞噬核心 + public static final DeferredItem INFINITY_CORE = ITEMS.register( + "infinity_core", + () -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC)) + ); + // 湮灭奇点 + public static final DeferredItem OBLIVION_SINGULARITY = ITEMS.register( + "oblivion_singularity", + () -> new Item(new Item.Properties().fireResistant().rarity(Rarity.RARE)) + ); + public static final DeferredItem ENERGY_STORAGE_CORE; + public static final DeferredItem QUANTUM_STORAGE_CORE; + + static { + // 能源存储核心 - 需要AppFlux模组 + if (ModCheckUtils.isAppfluxLoading()) { + ENERGY_STORAGE_CORE = ITEMS.register( + "energy_storage_core", + () -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC)) + ); + } else { + ENERGY_STORAGE_CORE = null; + } + + // 量子存储核心 - 需要AdvancedAE模组 + if (ModCheckUtils.isAAELoading()) { + QUANTUM_STORAGE_CORE = ITEMS.register( + "quantum_storage_core", + () -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC)) + ); + } else { + QUANTUM_STORAGE_CORE = null; + } + } private ModItems() {} 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 03b7dfc..4b6be08 100644 --- a/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java +++ b/src/main/java/com/extendedae_plus/integration/jei/ExtendedAEJeiPlugin.java @@ -1,6 +1,8 @@ package com.extendedae_plus.integration.jei; import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.init.ModItems; +import com.extendedae_plus.items.BasicCoreItem; import com.extendedae_plus.items.materials.EntitySpeedCardItem; import mezz.jei.api.IModPlugin; import mezz.jei.api.JeiPlugin; @@ -27,27 +29,62 @@ public class ExtendedAEJeiPlugin implements IModPlugin { JeiRuntimeProxy.setRuntime(jeiRuntime); } - @Override public void registerItemSubtypes(ISubtypeRegistration registration) { - // Register NBT-based subtype interpreter so JEI treats different multipliers as distinct items registration.registerSubtypeInterpreter( VanillaTypes.ITEM_STACK, - com.extendedae_plus.init.ModItems.ENTITY_SPEED_CARD.get(), - new ISubtypeInterpreter() { + ModItems.ENTITY_SPEED_CARD.get(), + new ISubtypeInterpreter<>() { @Override public @NotNull Object getSubtypeData(@NotNull ItemStack ingredient, @NotNull UidContext context) { - // 返回你想让 JEI 区分子类型的数据,这里用 multiplier return EntitySpeedCardItem.readMultiplier(ingredient); } @Override - public @NotNull String getLegacyStringSubtypeInfo(@NotNull ItemStack ingredient, @NotNull UidContext context) { + public @NotNull String getLegacyStringSubtypeInfo(@NotNull ItemStack ingredient, + @NotNull UidContext context) { // 返回同样的值给旧接口兼容 return String.valueOf(EntitySpeedCardItem.readMultiplier(ingredient)); } } ); + // Basic Core - 基础核心的NBT变体支持 + registration.registerSubtypeInterpreter( + VanillaTypes.ITEM_STACK, + ModItems.BASIC_CORE.get(), + new ISubtypeInterpreter<>() { + @Override + public @NotNull Object getSubtypeData(@NotNull ItemStack stack, @NotNull UidContext context) { + if (!BasicCoreItem.isTyped(stack)) { + return "untyped"; + } + + BasicCoreItem.CoreType type = BasicCoreItem.getType(stack).orElse(null); + if (type == null) { + return "untyped"; + } + + int stage = BasicCoreItem.getStage(stack); + return type.id + "_" + stage; // 如 "1_1", "2_3" + } + + @Override + public @NotNull String getLegacyStringSubtypeInfo(@NotNull ItemStack stack, + @NotNull UidContext context) { + if (!BasicCoreItem.isTyped(stack)) { + return "untyped"; + } + + BasicCoreItem.CoreType type = BasicCoreItem.getType(stack).orElse(null); + if (type == null) { + return "untyped"; + } + + int stage = BasicCoreItem.getStage(stack); + return type.id + "_" + stage; + } + } + ); } } diff --git a/src/main/java/com/extendedae_plus/items/BasicCoreItem.java b/src/main/java/com/extendedae_plus/items/BasicCoreItem.java new file mode 100644 index 0000000..4e73efb --- /dev/null +++ b/src/main/java/com/extendedae_plus/items/BasicCoreItem.java @@ -0,0 +1,139 @@ +package com.extendedae_plus.items; + +import com.extendedae_plus.ExtendedAEPlus; +import com.extendedae_plus.api.ids.EAPComponents; +import com.extendedae_plus.init.ModItems; +import net.minecraft.ChatFormatting; +import net.minecraft.core.component.DataComponents; +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.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import org.jetbrains.annotations.NotNull; + +import java.util.List; +import java.util.Optional; + +public class BasicCoreItem extends Item { + private static final int MAX_STAGE = 3; + + public BasicCoreItem(Properties props) { + super(props.stacksTo(1)); + } + + // ==================== 工厂方法 ==================== + public static ItemStack of(CoreType type, int stage) { + ItemStack stack = new ItemStack(ModItems.BASIC_CORE.get()); + if (type != null && stage >= 0 && stage <= MAX_STAGE) { + stack.set(EAPComponents.CORE_TYPE.get(), type); + stack.set(EAPComponents.CORE_STAGE.get(), stage); + stack.set(DataComponents.RARITY, type.getRarity(stage)); + } + return stack; + } + + 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); } + + // ==================== DataComponents 查询 ==================== + public static Optional getType(ItemStack stack) { + return Optional.ofNullable(stack.get(EAPComponents.CORE_TYPE.get())); + } + + public static int getStage(ItemStack stack) { + Integer stage = stack.get(EAPComponents.CORE_STAGE.get()); + return stage != null ? Math.min(stage, MAX_STAGE) : 0; + } + + public static boolean isTyped(ItemStack stack) { return getType(stack).isPresent(); } + + public static boolean isFinalStage(ItemStack stack) { return getStage(stack) >= MAX_STAGE; } + + // ==================== 耐久条 ==================== + @Override + public boolean isBarVisible(ItemStack stack) { + return isTyped(stack); + } + + @Override + public int getBarWidth(@NotNull ItemStack stack) { + if (!isTyped(stack)) return 0; + return Math.round(13.0f * getStage(stack) / MAX_STAGE); + } + + @Override + public int getBarColor(@NotNull ItemStack stack) { + return getType(stack) + .map(type -> type.getTextColor().getColor()) + .orElse(0xFFFFFF); + } + + // ==================== Tooltip ==================== + @OnlyIn(Dist.CLIENT) + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag flag) { + 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 <= 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 ? "✔ " : "✘ "; + 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.ready_to_craft") + .withStyle(ChatFormatting.GOLD)); + } + }); + } + + // ==================== 核心类型枚举 ==================== + public enum CoreType { + 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; + + CoreType(int id, String key, ChatFormatting textColor) { + this.id = id; + this.key = key; + this.textColor = textColor; + } + + public ChatFormatting getTextColor() { return textColor; } + + public Rarity getRarity(int stage) { + return switch (stage) { + case 1, 2 -> Rarity.UNCOMMON; + case 3 -> Rarity.EPIC; + default -> Rarity.COMMON; + }; + } + } +} diff --git a/src/main/java/com/extendedae_plus/items/InfinityBigIntegerCellItem.java b/src/main/java/com/extendedae_plus/items/InfinityBigIntegerCellItem.java index 948e24b..de47f0d 100644 --- a/src/main/java/com/extendedae_plus/items/InfinityBigIntegerCellItem.java +++ b/src/main/java/com/extendedae_plus/items/InfinityBigIntegerCellItem.java @@ -30,7 +30,8 @@ public class InfinityBigIntegerCellItem extends Item implements ICellWorkbenchIt @Override public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag tooltipFlag) { - tooltip.add(Component.translatable("tooltip.extendedae_plus.infinity_biginteger_cell")); + tooltip.add(Component.translatable("tooltip.extendedae_plus.infinity_biginteger_cell.line1")); + tooltip.add(Component.translatable("tooltip.extendedae_plus.infinity_biginteger_cell.line2")); Preconditions.checkArgument(stack.getItem() == this); // 仅在 ItemStack 自身存在 UUID 时显示 UUID,避免触发持久化或加载逻辑 diff --git a/src/main/java/com/extendedae_plus/util/ModCheckUtils.java b/src/main/java/com/extendedae_plus/util/ModCheckUtils.java new file mode 100644 index 0000000..615153c --- /dev/null +++ b/src/main/java/com/extendedae_plus/util/ModCheckUtils.java @@ -0,0 +1,92 @@ +package com.extendedae_plus.util; + + +import net.neoforged.fml.loading.LoadingModList; +import net.neoforged.fml.loading.moddiscovery.ModFileInfo; + +/** + * Forge 加载阶段的 Mod 检测工具 + * 适用于 MixinConfigPlugin 阶段使用 + * 包含版本比较工具 + */ +public class ModCheckUtils { + + private static final LoadingModList MOD_LIST = LoadingModList.get(); + + public static final String + MODID_JEI = "jei", + MODID_EMI = "emi", + MODID_AE = "ae2", + MODID_AAE = "advanced_ae", + MODID_AE2WTLIB = "ae2wtlib", + MODID_FTB_TEAMS = "ftbteams", + MODID_APPFLUX = "appflux", + MODID_GUIDEME = "guideme", + MODID_MAE2 = "mae2", + MODID_MEGA = "megacells", + MODID_EPA = "expandedae"; + + /** + * 检查指定模组是否存在 + */ + public static boolean isLoaded(String modid) { + return MOD_LIST != null && MOD_LIST.getModFileById(modid) != null; + } + + /** + * 获取模组版本号(x.x.x),若不存在则返回 "0.0.0" + */ + public static String getVersion(String modid) { + if (MOD_LIST == null) return "0.0.0"; + ModFileInfo file = MOD_LIST.getModFileById(modid); + if (file == null || file.getMods().isEmpty()) return "0.0.0"; + return file.getMods().get(0).getVersion().toString(); + } + + /** + * 检查模组是否存在且版本低于指定版本 + */ + public static boolean isLoadedAndLowerThan(String modid, String targetVersion) { + if (!isLoaded(modid)) return false; + return isVersionLower(getVersion(modid), targetVersion); + } + + /** + * 比较两个版本号 + * + * @param current 当前版本号,格式 x.x.x + * @param target 目标版本号,格式 x.x.x + * @return true 如果 current < target,否则 false + */ + public static boolean isVersionLower(String current, String target) { + if (current == null || target == null) return false; + + String[] curParts = current.split("\\."); + String[] tarParts = target.split("\\."); + + for (int i = 0; i < 3; i++) { + int curNum = i < curParts.length ? parse(curParts[i]) : 0; + int tarNum = i < tarParts.length ? parse(tarParts[i]) : 0; + + if (curNum < tarNum) return true; + if (curNum > tarNum) return false; + } + return false; // 相等则不小于 + } + + private static int parse(String s) { + try { + return Integer.parseInt(s.replaceAll("[^0-9]", "")); + } catch (Exception e) { + return 0; + } + } + + 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 097e187..d174fd1 100644 --- a/src/main/resources/assets/extendedae_plus/lang/en_us.json +++ b/src/main/resources/assets/extendedae_plus/lang/en_us.json @@ -48,7 +48,31 @@ "item.extendedae_plus.entity_speed_card.x8": "Entity Speed Card (x8)", "item.extendedae_plus.entity_speed_card.x16": "Entity Speed Card (x16)", "item.extendedae_plus.infinity_biginteger_cell": "§4De§cvou§6rer §eof §aCo§bsmic §dSilence", - "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", + "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", + "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.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.line1": "§7—§bThe tangible projection of absolute storage§r, §ewhere '§6The Finite§e' §chas been deemed illegal§r", + "tooltip.extendedae_plus.infinity_biginteger_cell.line2": "§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": "Maximum Effect: %s Times", 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 5d3e841..96b3cac 100644 --- a/src/main/resources/assets/extendedae_plus/lang/zh_cn.json +++ b/src/main/resources/assets/extendedae_plus/lang/zh_cn.json @@ -48,10 +48,35 @@ "item.extendedae_plus.entity_speed_card.x8": "实体加速卡 (x8)", "item.extendedae_plus.entity_speed_card.x16": "实体加速卡 (x16)", "item.extendedae_plus.infinity_biginteger_cell": "§4吞§c噬§6万§e籁§a的§b寂§d静", - "tooltip.extendedae_plus.infinity_biginteger_cell": "§7——§b绝对存储的现实投影,§e\"有限\"§6已被定义为§c非法\n§b其存在本身,即是对§d熵增§b的终极否定", + "tooltip.extendedae_plus.infinity_biginteger_cell.line1": "§7——§b绝对存储的现实投影,§e\"有限\"§6已被定义为§c非法", + "tooltip.extendedae_plus.infinity_biginteger_cell.line2": "§b其存在本身,即是对§d熵增§b的终极否定", "tooltip.extendedae_plus.entity_speed_card.multiplier": "乘数: %s", "tooltip.extendedae_plus.entity_speed_card.max": "最大生效: %s 倍", + "item.extendedae_plus.basic_core": "基础核心", + "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.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": "核心构建完成,等待最终合成", + "block.extendedae_plus.wireless_transceiver": "无线收发器", "block.extendedae_plus.4x_crafting_accelerator": "4x并行处理单元", "block.extendedae_plus.16x_crafting_accelerator": "16x并行处理单元", 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..9e1fa26 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/basic_core.json @@ -0,0 +1,24 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/basic_core" + }, + "overrides": [ + { + "predicate": { "extendedae_plus:core_type": 1 }, + "model": "extendedae_plus:item/core/basic_core_storage" + }, + { + "predicate": { "extendedae_plus:core_type": 2 }, + "model": "extendedae_plus:item/core/basic_core_spatial" + }, + { + "predicate": { "extendedae_plus:core_type": 3 }, + "model": "extendedae_plus:item/core/basic_core_energy" + }, + { + "predicate": { "extendedae_plus:core_type": 4 }, + "model": "extendedae_plus:item/core/basic_core_quantum" + } + ] +} 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 new file mode 100644 index 0000000..7a2d400 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/energy_storage_core.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/energy_storage_core" + } +} 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..f50ed5d --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/infinity_core.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/infinity_core" + } +} 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..7bee36f --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/oblivion_singularity.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/oblivion_singularity" + } +} 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..629fb56 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/quantum_storage_core.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/quantum_storage_core" + } +} 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..bb83b0e --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/spatial_core.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/spatial_core" + } +} 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..4731bc7 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/models/item/storage_core.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "extendedae_plus:item/core/storage_core" + } +} diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core.png new file mode 100644 index 0000000..5571b16 Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core.png differ 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 0000000..e1b24d1 Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_energy.png differ 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 0000000..7883ffd Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_quantum.png differ 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 0000000..7c1e5c2 Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_spatial.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_storage.png b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_storage.png new file mode 100644 index 0000000..7e69709 Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/basic_core_storage.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png new file mode 100644 index 0000000..2513f8e Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png.mcmeta new file mode 100644 index 0000000..f1fb7d0 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png.mcmeta @@ -0,0 +1,9 @@ +{ + "animation": { + "interpolate": true, + "frames": [ + {"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/core/infinity_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/infinity_core.png new file mode 100644 index 0000000..0ca4214 Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/infinity_core.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png new file mode 100644 index 0000000..6fc8508 Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png.mcmeta new file mode 100644 index 0000000..f1fb7d0 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png.mcmeta @@ -0,0 +1,9 @@ +{ + "animation": { + "interpolate": true, + "frames": [ + {"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/core/spatial_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/spatial_core.png new file mode 100644 index 0000000..b531cfc Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/spatial_core.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/storage_core.png new file mode 100644 index 0000000..8602e1e Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/core/storage_core.png differ diff --git a/src/main/resources/assets/extendedae_plus/textures/item/core/storage_core.png.mcmeta b/src/main/resources/assets/extendedae_plus/textures/item/core/storage_core.png.mcmeta new file mode 100644 index 0000000..f1fb7d0 --- /dev/null +++ b/src/main/resources/assets/extendedae_plus/textures/item/core/storage_core.png.mcmeta @@ -0,0 +1,9 @@ +{ + "animation": { + "interpolate": true, + "frames": [ + {"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/oblivion_singularity.png b/src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png new file mode 100644 index 0000000..1542794 Binary files /dev/null and b/src/main/resources/assets/extendedae_plus/textures/item/oblivion_singularity.png differ 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/data/extendedae_plus/recipe/core/compat/energy_storage_core.json b/src/main/resources/data/extendedae_plus/recipe/core/compat/energy_storage_core.json new file mode 100644 index 0000000..b360085 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/compat/energy_storage_core.json @@ -0,0 +1,46 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appflux" + }, + { + "type": "neoforge:mod_loaded", + "modid": "megacells" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "ENERGY", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:energy_storage_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_1.json b/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_1.json new file mode 100644 index 0000000..036b9a2 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_1.json @@ -0,0 +1,47 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appflux" + }, + { + "type": "neoforge:not", + "value": { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + } + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "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": { + "count": 1, + "id": "extendedae_plus:infinity_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_2.json b/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_2.json new file mode 100644 index 0000000..76a9bca --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_2.json @@ -0,0 +1,47 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + }, + { + "type": "neoforge:not", + "value": { + "type": "neoforge:mod_loaded", + "modid": "appflux" + } + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "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": { + "count": 1, + "id": "extendedae_plus:infinity_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_3.json b/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_3.json new file mode 100644 index 0000000..8304f4e --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_3.json @@ -0,0 +1,44 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + }, + { + "type": "neoforge:mod_loaded", + "modid": "appflux" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "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": { + "count": 1, + "id": "extendedae_plus:infinity_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/compat/storage_core.json b/src/main/resources/data/extendedae_plus/recipe/core/compat/storage_core.json new file mode 100644 index 0000000..16a0bc7 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/compat/storage_core.json @@ -0,0 +1,42 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "megacells" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "STORAGE", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:storage_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core.json b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core.json new file mode 100644 index 0000000..53da5c4 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core.json @@ -0,0 +1,49 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appflux" + }, + { + "type": "neoforge:not", + "value": { + "type": "neoforge:mod_loaded", + "modid": "megacells" + } + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "ENERGY", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:energy_storage_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_1.json b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_1.json new file mode 100644 index 0000000..e605327 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_1.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appflux" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "extendedae_plus:basic_core" + }, + "C": { + "item": "appflux:core_16k" + }, + "E": { + "item": "appflux:energy_processor" + }, + "M": { + "item": "appflux:redstone_crystal" + } + }, + "pattern": [ + "MCM", + "EBE", + "MEM" + ], + "result": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "ENERGY", + "extendedae_plus:core_stage": 1 + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_2.json b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_2.json new file mode 100644 index 0000000..6a276de --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_2.json @@ -0,0 +1,44 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appflux" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "ENERGY", + "extendedae_plus:core_stage": 1 + } + }, + "C": { + "item": "appflux:core_64k" + }, + "M": { + "item": "appflux:charged_redstone" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MOM" + ], + "result": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "ENERGY", + "extendedae_plus:core_stage": 2, + "minecraft:rarity": "uncommon" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_3.json b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_3.json new file mode 100644 index 0000000..085b477 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_3.json @@ -0,0 +1,44 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "appflux" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "ENERGY", + "extendedae_plus:core_stage": 2 + } + }, + "C": { + "item": "appflux:core_256k" + }, + "M": { + "item": "appflux:harden_insulating_resin" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MCM" + ], + "result": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "ENERGY", + "extendedae_plus:core_stage": 3, + "minecraft:rarity": "rare" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/infinity_core.json b/src/main/resources/data/extendedae_plus/recipe/core/infinity_core.json new file mode 100644 index 0000000..795cc4a --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/infinity_core.json @@ -0,0 +1,47 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:mod_loaded", + "modid": "appflux" + } + }, + { + "type": "neoforge:not", + "value": { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + } + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "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": { + "count": 1, + "id": "extendedae_plus:infinity_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core.json b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core.json new file mode 100644 index 0000000..dde9a94 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core.json @@ -0,0 +1,42 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "QUANTUM", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:quantum_storage_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_1.json b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_1.json new file mode 100644 index 0000000..5810557 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_1.json @@ -0,0 +1,38 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "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": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "QUANTUM", + "extendedae_plus:core_stage": 1 + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_2.json b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_2.json new file mode 100644 index 0000000..fe3e4b1 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_2.json @@ -0,0 +1,44 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "QUANTUM", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "QUANTUM", + "extendedae_plus:core_stage": 2, + "minecraft:rarity": "uncommon" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_3.json b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_3.json new file mode 100644 index 0000000..6668908 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_3.json @@ -0,0 +1,44 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:mod_loaded", + "modid": "advanced_ae" + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "QUANTUM", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "QUANTUM", + "extendedae_plus:core_stage": 3, + "minecraft:rarity": "rare" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/spatial_core.json b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core.json new file mode 100644 index 0000000..206a2ff --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core.json @@ -0,0 +1,36 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "SPATIAL", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:spatial_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_1.json b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_1.json new file mode 100644 index 0000000..c2ec6c3 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_1.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "extendedae_plus:basic_core" + }, + "C": { + "item": "ae2:spatial_cell_component_2" + }, + "E": { + "item": "ae2:engineering_processor" + }, + "L": { + "item": "ae2:logic_processor" + }, + "M": { + "tag": "c:dusts/fluix" + }, + "P": { + "item": "ae2:calculation_processor" + } + }, + "pattern": [ + "MCM", + "LBP", + "MEM" + ], + "result": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "SPATIAL", + "extendedae_plus:core_stage": 1 + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_2.json b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_2.json new file mode 100644 index 0000000..15bc0ec --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_2.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "SPATIAL", + "extendedae_plus:core_stage": 1 + } + }, + "C": { + "item": "ae2:spatial_cell_component_16" + }, + "M": { + "tag": "c:gems/fluix" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MOM" + ], + "result": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "SPATIAL", + "extendedae_plus:core_stage": 2, + "minecraft:rarity": "uncommon" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_3.json b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_3.json new file mode 100644 index 0000000..c5cdbb3 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/spatial_core_3.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "SPATIAL", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "SPATIAL", + "extendedae_plus:core_stage": 3, + "minecraft:rarity": "rare" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/storage_core.json b/src/main/resources/data/extendedae_plus/recipe/core/storage_core.json new file mode 100644 index 0000000..5d23e67 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/storage_core.json @@ -0,0 +1,45 @@ +{ + "neoforge:conditions": [ + { + "type": "neoforge:not", + "value": { + "type": "neoforge:mod_loaded", + "modid": "megacells" + } + } + ], + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "STORAGE", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:storage_core" + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/storage_core_1.json b/src/main/resources/data/extendedae_plus/recipe/core/storage_core_1.json new file mode 100644 index 0000000..9e93895 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/storage_core_1.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "item": "extendedae_plus:basic_core" + }, + "C": { + "item": "ae2:cell_component_16k" + }, + "E": { + "item": "ae2:engineering_processor" + }, + "L": { + "item": "ae2:logic_processor" + }, + "M": { + "tag": "c:dusts/certus_quartz" + }, + "P": { + "item": "ae2:calculation_processor" + } + }, + "pattern": [ + "MCM", + "LBP", + "MEM" + ], + "result": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "STORAGE", + "extendedae_plus:core_stage": 1 + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/storage_core_2.json b/src/main/resources/data/extendedae_plus/recipe/core/storage_core_2.json new file mode 100644 index 0000000..d31b2a1 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/storage_core_2.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "STORAGE", + "extendedae_plus:core_stage": 1 + } + }, + "C": { + "item": "ae2:cell_component_64k" + }, + "M": { + "tag": "c:gems/certus_quartz" + }, + "O": { + "item": "extendedae_plus:oblivion_singularity" + } + }, + "pattern": [ + "MOM", + "CBC", + "MOM" + ], + "result": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "STORAGE", + "extendedae_plus:core_stage": 2, + "minecraft:rarity": "uncommon" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/core/storage_core_3.json b/src/main/resources/data/extendedae_plus/recipe/core/storage_core_3.json new file mode 100644 index 0000000..8f68758 --- /dev/null +++ b/src/main/resources/data/extendedae_plus/recipe/core/storage_core_3.json @@ -0,0 +1,38 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "B": { + "type": "neoforge:components", + "items": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "STORAGE", + "extendedae_plus: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": { + "count": 1, + "id": "extendedae_plus:basic_core", + "components": { + "extendedae_plus:core_type": "STORAGE", + "extendedae_plus:core_stage": 3, + "minecraft:rarity": "rare" + } + }, + "show_notification": true +} diff --git a/src/main/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json b/src/main/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json deleted file mode 100644 index 2b10715..0000000 --- a/src/main/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { "item": "minecraft:turtle_helmet" }, - { "item": "minecraft:dragon_head" }, - { "item": "minecraft:totem_of_undying" }, - { "item": "minecraft:echo_shard" }, - { "item": "ae2:cell_component_256k" }, - { "item": "minecraft:heart_of_the_sea" }, - { "item": "minecraft:nether_star" }, - { "item": "minecraft:netherite_block" }, - { "item": "minecraft:enchanted_golden_apple" } - ], - "result": { "id": "extendedae_plus:infinity_biginteger_cell", "count": 1 } -} \ No newline at end of file