1. 添加吞噬核心等相关物品
2. 添加吞噬核心相关物品与appflux/AAE/MegaCell mod的联动配方
3.同步1.20版本吞噬盘物品配方
This commit is contained in:
C-H716 2026-04-29 23:16:44 +08:00
parent b11af174f8
commit 2e8ebd1e4d
66 changed files with 1723 additions and 31 deletions

View File

@ -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"
}
}

View File

@ -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"
]
}
}

View File

@ -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"
]
}
}

View File

@ -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"
}
}

View File

@ -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"
}
}

View File

@ -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"
}
}

View File

@ -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<DataComponentType<?>> DR =
DeferredRegister.create(Registries.DATA_COMPONENT_TYPE, ExtendedAEPlus.MODID);
// 2. 你的自定义组件下面举几个常见例子
// 布尔值高级阻塞模式
public static final DeferredHolder<DataComponentType<?>, DataComponentType<Boolean>> 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<?>, DataComponentType<BasicCoreItem.CoreType>> 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<?>, DataComponentType<Integer>> CORE_STAGE =
register("core_stage", builder ->
builder.persistent(Codec.INT)
.networkSynchronized(ByteBufCodecs.INT));
private static <T> DeferredHolder<DataComponentType<?>, DataComponentType<T>> register(
String name,
UnaryOperator<DataComponentType.Builder<T>> builderOperator) {

View File

@ -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"),

View File

@ -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);
}
}

View File

@ -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());
}
// 放入四个预设的 stacksx2,x4,x8,x16使用 ModItems 工厂创建
for (byte multiplier : new byte[] {2, 4, 8, 16}) {
ItemStack stack = ModItems.createEntitySpeedCardStack(multiplier);

View File

@ -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<Item> INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register(
public static final DeferredItem<Item> INFINITY_BIGINTEGER_CELL_ITEM = ITEMS.register(
"infinity_biginteger_cell", InfinityBigIntegerCellItem::new
);
// ==================== 基础核心及相关物品 ====================
// 基础核心 - 用于合成各种高级核心稀有度由DataComponent动态设置
public static final DeferredItem<BasicCoreItem> BASIC_CORE = ITEMS.register(
"basic_core",
() -> new BasicCoreItem(new Item.Properties())
);
// 存储核心
public static final DeferredItem<Item> STORAGE_CORE = ITEMS.register(
"storage_core",
() -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC))
);
// 空间核心
public static final DeferredItem<Item> SPATIAL_CORE = ITEMS.register(
"spatial_core",
() -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC))
);
// 吞噬核心
public static final DeferredItem<Item> INFINITY_CORE = ITEMS.register(
"infinity_core",
() -> new Item(new Item.Properties().fireResistant().rarity(Rarity.EPIC))
);
// 湮灭奇点
public static final DeferredItem<Item> OBLIVION_SINGULARITY = ITEMS.register(
"oblivion_singularity",
() -> new Item(new Item.Properties().fireResistant().rarity(Rarity.RARE))
);
public static final DeferredItem<Item> ENERGY_STORAGE_CORE;
public static final DeferredItem<Item> 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() {}

View File

@ -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<ItemStack>() {
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;
}
}
);
}
}

View File

@ -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<CoreType> 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<Component> 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;
};
}
}
}

View File

@ -30,7 +30,8 @@ public class InfinityBigIntegerCellItem extends Item implements ICellWorkbenchIt
@Override
public void appendHoverText(ItemStack stack, TooltipContext context, List<Component> 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避免触发持久化或加载逻辑

View File

@ -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);
}
}

View File

@ -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",

View File

@ -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并行处理单元",

View File

@ -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"
}
]
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/basic_core_energy"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/basic_core_quantum"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/basic_core_spatial"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/basic_core_storage"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/energy_storage_core"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/infinity_core"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/oblivion_singularity"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/quantum_storage_core"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/spatial_core"
}
}

View File

@ -0,0 +1,6 @@
{
"parent": "item/generated",
"textures": {
"layer0": "extendedae_plus:item/core/storage_core"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,9 @@
{
"animation": {
"interpolate": true,
"frames": [
{"index": 0, "time": 30},
{"index": 1, "time": 3}
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,9 @@
{
"animation": {
"interpolate": true,
"frames": [
{"index": 0, "time": 30},
{"index": 1, "time": 3}
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,9 @@
{
"animation": {
"interpolate": true,
"frames": [
{"index": 0, "time": 30},
{"index": 1, "time": 3}
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -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}
]
}
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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
}

View File

@ -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 }
}