From 2e8ebd1e4dc893e4795068736ac6408ea1cbeae6 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Wed, 29 Apr 2026 23:16:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=201.=20=E6=B7=BB=E5=8A=A0=E5=90=9E?= =?UTF-8?q?=E5=99=AC=E6=A0=B8=E5=BF=83=E7=AD=89=E7=9B=B8=E5=85=B3=E7=89=A9?= =?UTF-8?q?=E5=93=81=202.=20=E6=B7=BB=E5=8A=A0=E5=90=9E=E5=99=AC=E6=A0=B8?= =?UTF-8?q?=E5=BF=83=E7=9B=B8=E5=85=B3=E7=89=A9=E5=93=81=E4=B8=8Eappflux/A?= =?UTF-8?q?AE/MegaCell=20mod=E7=9A=84=E8=81=94=E5=8A=A8=E9=85=8D=E6=96=B9?= =?UTF-8?q?=203.=E5=90=8C=E6=AD=A51.20=E7=89=88=E6=9C=AC=E5=90=9E=E5=99=AC?= =?UTF-8?q?=E7=9B=98=E7=89=A9=E5=93=81=E9=85=8D=E6=96=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../recipe/oblivion_singularity.json | 34 +++++ .../advancement/recipes/misc/basic_core.json | 32 ++++ .../misc/infinity_biginteger_cell.json | 32 ++++ .../extendedae_plus/recipe/basic_core.json | 33 +++++ .../recipe/infinity_biginteger_cell.json | 30 ++++ .../transform/oblivion_singularity.json | 21 +++ .../api/ids/EAPComponents.java | 20 ++- .../extendedae_plus/client/ClientProxy.java | 9 ++ .../datagen/CrafterRecipe.java | 55 ++++++- .../extendedae_plus/init/ModCreativeTabs.java | 15 +- .../com/extendedae_plus/init/ModItems.java | 55 ++++++- .../integration/jei/ExtendedAEJeiPlugin.java | 49 +++++- .../extendedae_plus/items/BasicCoreItem.java | 139 ++++++++++++++++++ .../items/InfinityBigIntegerCellItem.java | 3 +- .../extendedae_plus/util/ModCheckUtils.java | 92 ++++++++++++ .../assets/extendedae_plus/lang/en_us.json | 26 +++- .../assets/extendedae_plus/lang/zh_cn.json | 27 +++- .../models/item/basic_core.json | 24 +++ .../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 | 6 + .../models/item/infinity_core.json | 6 + .../models/item/oblivion_singularity.json | 6 + .../models/item/quantum_storage_core.json | 6 + .../models/item/spatial_core.json | 6 + .../models/item/storage_core.json | 6 + .../textures/item/core/basic_core.png | Bin 0 -> 2109 bytes .../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 0 -> 2645 bytes .../item/core/energy_storage_core.png.mcmeta | 9 ++ .../textures/item/core/infinity_core.png | Bin 0 -> 3822 bytes .../item/core/quantum_storage_core.png | Bin 0 -> 2569 bytes .../item/core/quantum_storage_core.png.mcmeta | 9 ++ .../textures/item/core/spatial_core.png | Bin 0 -> 2223 bytes .../textures/item/core/storage_core.png | Bin 0 -> 2588 bytes .../item/core/storage_core.png.mcmeta | 9 ++ .../textures/item/oblivion_singularity.png | Bin 0 -> 1389 bytes .../item/oblivion_singularity.png.mcmeta | 31 ++++ .../core/compat/energy_storage_core.json | 46 ++++++ .../recipe/core/compat/infinity_core_1.json | 47 ++++++ .../recipe/core/compat/infinity_core_2.json | 47 ++++++ .../recipe/core/compat/infinity_core_3.json | 44 ++++++ .../recipe/core/compat/storage_core.json | 42 ++++++ .../recipe/core/energy_storage_core.json | 49 ++++++ .../recipe/core/energy_storage_core_1.json | 38 +++++ .../recipe/core/energy_storage_core_2.json | 44 ++++++ .../recipe/core/energy_storage_core_3.json | 44 ++++++ .../recipe/core/infinity_core.json | 47 ++++++ .../recipe/core/quantum_storage_core.json | 42 ++++++ .../recipe/core/quantum_storage_core_1.json | 38 +++++ .../recipe/core/quantum_storage_core_2.json | 44 ++++++ .../recipe/core/quantum_storage_core_3.json | 44 ++++++ .../recipe/core/spatial_core.json | 36 +++++ .../recipe/core/spatial_core_1.json | 38 +++++ .../recipe/core/spatial_core_2.json | 38 +++++ .../recipe/core/spatial_core_3.json | 38 +++++ .../recipe/core/storage_core.json | 45 ++++++ .../recipe/core/storage_core_1.json | 38 +++++ .../recipe/core/storage_core_2.json | 38 +++++ .../recipe/core/storage_core_3.json | 38 +++++ .../recipe/infinity_biginteger_cell.json | 15 -- 66 files changed, 1723 insertions(+), 31 deletions(-) create mode 100644 src/generated/resources/data/advanced_ae/recipe/oblivion_singularity.json create mode 100644 src/generated/resources/data/extendedae_plus/advancement/recipes/misc/basic_core.json create mode 100644 src/generated/resources/data/extendedae_plus/advancement/recipes/misc/infinity_biginteger_cell.json create mode 100644 src/generated/resources/data/extendedae_plus/recipe/basic_core.json create mode 100644 src/generated/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json create mode 100644 src/generated/resources/data/extendedae_plus/recipe/transform/oblivion_singularity.json create mode 100644 src/main/java/com/extendedae_plus/items/BasicCoreItem.java create mode 100644 src/main/java/com/extendedae_plus/util/ModCheckUtils.java create mode 100644 src/main/resources/assets/extendedae_plus/models/item/basic_core.json 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 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 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/core/basic_core.png 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 create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png.mcmeta create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/infinity_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/quantum_storage_core.png.mcmeta create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/spatial_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/storage_core.png create mode 100644 src/main/resources/assets/extendedae_plus/textures/item/core/storage_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/data/extendedae_plus/recipe/core/compat/energy_storage_core.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_1.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_2.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/compat/infinity_core_3.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/compat/storage_core.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_1.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_2.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/energy_storage_core_3.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/infinity_core.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_1.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_2.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/quantum_storage_core_3.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/spatial_core.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/spatial_core_1.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/spatial_core_2.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/spatial_core_3.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/storage_core.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/storage_core_1.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/storage_core_2.json create mode 100644 src/main/resources/data/extendedae_plus/recipe/core/storage_core_3.json delete mode 100644 src/main/resources/data/extendedae_plus/recipe/infinity_biginteger_cell.json 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 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 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/core/energy_storage_core.png b/src/main/resources/assets/extendedae_plus/textures/item/core/energy_storage_core.png new file mode 100644 index 0000000000000000000000000000000000000000..2513f8e75b22279b212597c6be6a11b0ed310058 GIT binary patch literal 2645 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 Rk$jPMW;bRYy?W~{{{f0y2I2q! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..6fc8508d46a5ccb9cd35a0cb3c22a316c8779ddd GIT binary patch literal 2569 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 KU0Y_q-1IMHvi^zy literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..8602e1e32188531a73d840df03a75233dd74195a GIT binary patch literal 2588 zcmb_e4Nw&48D4Zo{v;TQ#-AFut5OXt`*XK_h`h7@p~2M*Y04)|YMa=#0le4TN>kRixF$a8o> zhpQJs(3}dZDNRW;CNP|64`X@JEQGo3PJo7>@JP3l<+20?HVYQ3Lyrs|KZ(FrUXN^| zjJVMmEo55b@+BcPKhebHXK^%-L`J~jZUzw81%-v(cAGOq47bLDRH{gCtRaK;=A#!n#q1ykeTcAjq6#bt+cT z0ecu(vzVjk5g>Ik2fK5I)*(;%1RTTMtP>-`a8FJXK%SeyIddf2L~x$N1e;(N9EuFE z#0=J%DJr6zDSiX>%!-uI|~xF+F6T$IUN=R zp0SaM7Hy&g0t0ob2^B^o6Yr1}*1-w!20a3D4zpT$hT}<2rP1;zsU|p7L#Sz#qFLiwZbSnJJzl2vX81loD`F?%**ku0q$@>2#gL(GL$qvIFZN7kP}m2!}bhkUKQYC=4B%|fKL*5mB?GhHbcN^*%RN zJ%9Qc6BW8I2P@@z_O9P>DrV=;dGFF%=)CP`kH|=}oMqoi>Rn+XC96ukQ{o~mi0`}JbZU|b`XF)&z`GFH?Q(JZ~Yi}A}JW!tZv$HGPf2lpO zEVg=XMd60pfnZlgL|ymmeOFo+t?6ld^|`3qiJF&=^~~}Y?|m}z>5hcopvb~!EBn{R zsWs=8*sJqStvs^S^v{|!du)DRM{sK$QvBMsdG%ROUXOV5hiZaH|2>A0qJmy5)n?&f;v-GQOa zZMTBY1jT-M!)6Y)zt=6yxrbC9T{k?w=<|-UfIIu~^gI1+xd%)6`8U^Y^*vNgM;;i- zJs%R_dfOWq(!G1^NP0@q@JM>v$3BitqZJf zi8cj=f3&}#^Dgkwf7_EEUGHddq};4DOUgdW;o`$d^GgP$G%l_IeO!IVWiRb$*J|@x7 JxPI%){{>THx9$J{ literal 0 HcmV?d00001 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 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/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