fix: 修复实体加速器、实体加速卡配方问题

This commit is contained in:
C-H716 2025-09-21 13:44:32 +08:00
parent 0cdfd7cb28
commit fa850a5187
9 changed files with 85 additions and 108 deletions

View File

@ -25,30 +25,30 @@ public class EntitySpeedCardItem extends UpgradeCardItem {
super(props); super(props);
} }
public static ItemStack withMultiplier(int multiplier) { public static ItemStack withMultiplier(byte multiplier) {
ItemStack stack = new ItemStack(ModItems.ENTITY_SPEED_CARD.get()); ItemStack stack = new ItemStack(ModItems.ENTITY_SPEED_CARD.get());
CompoundTag tag = new CompoundTag(); CompoundTag tag = new CompoundTag();
tag.putInt(NBT_MULTIPLIER, multiplier); tag.putByte(NBT_MULTIPLIER, multiplier);
stack.set(DataComponents.CUSTOM_DATA, CustomData.of(tag)); stack.set(DataComponents.CUSTOM_DATA, CustomData.of(tag));
return stack; return stack;
} }
public static int readMultiplier(ItemStack stack) { public static byte readMultiplier(ItemStack stack) {
if (stack == null || stack.isEmpty()) return 1; if (stack == null || stack.isEmpty()) return (byte) 1;
CustomData customData = stack.get(DataComponents.CUSTOM_DATA); CustomData customData = stack.get(DataComponents.CUSTOM_DATA);
if (customData == null || !customData.copyTag().contains(NBT_MULTIPLIER)) return 1; if (customData == null || !customData.copyTag().contains(NBT_MULTIPLIER)) return (byte)1;
return customData.copyTag().getInt(NBT_MULTIPLIER); return customData.copyTag().getByte(NBT_MULTIPLIER);
} }
@Override @Override
public @NotNull Component getName(@NotNull ItemStack stack) { public @NotNull Component getName(@NotNull ItemStack stack) {
int mult = readMultiplier(stack); byte mult = readMultiplier(stack);
String key; String key;
switch (mult) { switch (mult) {
case 2 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x2"; case (byte)2 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x2";
case 4 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x4"; case (byte)4 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x4";
case 8 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x8"; case (byte)8 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x8";
case 16 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x16"; case (byte)16 -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x16";
default -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x1"; default -> key = "item." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.x1";
} }
return Component.translatable(key); return Component.translatable(key);
@ -56,13 +56,13 @@ public class EntitySpeedCardItem extends UpgradeCardItem {
public List<Component> getTooltipLines(ItemStack stack) { public List<Component> getTooltipLines(ItemStack stack) {
int mult = readMultiplier(stack); byte mult = readMultiplier(stack);
long cap = 1L; int cap = 1;
switch (mult) { switch (mult) {
case 16 -> cap = 1024L; case (byte)16 -> cap = 1024;
case 8 -> cap = 256L; case (byte)8 -> cap = 256;
case 4 -> cap = 64L; case (byte)4 -> cap = 64;
case 2 -> cap = 8L; case (byte)2 -> cap = 8;
} }
MutableComponent line1 = Component.translatable("tooltip." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.multiplier", "x" + mult); MutableComponent line1 = Component.translatable("tooltip." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.multiplier", "x" + mult);
MutableComponent line2 = Component.translatable("tooltip." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.max", cap); MutableComponent line2 = Component.translatable("tooltip." + com.extendedae_plus.ExtendedAEPlus.MODID + ".entity_speed_card.max", cap);

View File

@ -8,11 +8,8 @@ import net.neoforged.neoforge.registries.DeferredHolder;
import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.DeferredRegister;
public final class ModCreativeTabs { public final class ModCreativeTabs {
private ModCreativeTabs() {}
public static final DeferredRegister<CreativeModeTab> TABS = public static final DeferredRegister<CreativeModeTab> TABS =
DeferredRegister.create(Registries.CREATIVE_MODE_TAB, ExtendedAEPlus.MODID); DeferredRegister.create(Registries.CREATIVE_MODE_TAB, ExtendedAEPlus.MODID);
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> MAIN = TABS.register("main", public static final DeferredHolder<CreativeModeTab, CreativeModeTab> MAIN = TABS.register("main",
() -> CreativeModeTab.builder() () -> CreativeModeTab.builder()
.title(Component.translatable("itemGroup." + ExtendedAEPlus.MODID + ".main")) .title(Component.translatable("itemGroup." + ExtendedAEPlus.MODID + ".main"))
@ -28,10 +25,13 @@ public final class ModCreativeTabs {
output.accept(ModItems.ACCELERATOR_1024x.get()); output.accept(ModItems.ACCELERATOR_1024x.get());
output.accept(ModItems.ENTITY_TICKER_PART_ITEM.get()); output.accept(ModItems.ENTITY_TICKER_PART_ITEM.get());
// 放入四个预设的 stacksx2,x4,x8,x16使用 ModItems 工厂创建 // 放入四个预设的 stacksx2,x4,x8,x16使用 ModItems 工厂创建
output.accept(ModItems.createEntitySpeedCardStack(2)); output.accept(ModItems.createEntitySpeedCardStack((byte) 2));
output.accept(ModItems.createEntitySpeedCardStack(4)); output.accept(ModItems.createEntitySpeedCardStack((byte) 4));
output.accept(ModItems.createEntitySpeedCardStack(8)); output.accept(ModItems.createEntitySpeedCardStack((byte) 8));
output.accept(ModItems.createEntitySpeedCardStack(16)); output.accept(ModItems.createEntitySpeedCardStack((byte) 16));
}) })
.build()); .build());
private ModCreativeTabs() {
}
} }

View File

@ -1,8 +1,5 @@
package com.extendedae_plus.init; package com.extendedae_plus.init;
import appeng.api.parts.IPart;
import appeng.api.parts.PartModels;
import appeng.items.parts.PartModelsHelper;
import com.extendedae_plus.ExtendedAEPlus; import com.extendedae_plus.ExtendedAEPlus;
import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem; import com.extendedae_plus.ae.definitions.upgrades.EntitySpeedCardItem;
import com.extendedae_plus.ae.items.EntitySpeedTickerPartItem; import com.extendedae_plus.ae.items.EntitySpeedTickerPartItem;
@ -65,22 +62,10 @@ public final class ModItems {
() -> new EntitySpeedCardItem(new Item.Properties()) () -> new EntitySpeedCardItem(new Item.Properties())
); );
/**
* PartItem 注册 AE2 部件模型
* 在客户端进行模型/几何体注册时调用
*/
public static void registerPartModels() {
PartModels.registerModels(
PartModelsHelper.createModels(
ENTITY_TICKER_PART_ITEM.get().getPartClass().asSubclass(IPart.class)
)
);
}
/** /**
* 工厂创建带 multiplier 的实体加速卡 ItemStack2/4/8/16 * 工厂创建带 multiplier 的实体加速卡 ItemStack2/4/8/16
*/ */
public static ItemStack createEntitySpeedCardStack(int multiplier) { public static ItemStack createEntitySpeedCardStack(byte multiplier) {
return EntitySpeedCardItem.withMultiplier(multiplier); return EntitySpeedCardItem.withMultiplier(multiplier);
} }
} }

View File

@ -7,11 +7,14 @@
], ],
"key": { "key": {
"S": { "S": {
"type": "forge:partial_nbt", "type": "neoforge:components",
"item": "extendedae_plus:entity_speed_card", "items": "extendedae_plus:entity_speed_card",
"nbt": { "components": {
"EAS:mult": 8 "minecraft:custom_data": {
} "EAS:mult": 8
}
},
"strict": true
}, },
"A": { "A": {
"item": "minecraft:nether_star" "item": "minecraft:nether_star"
@ -27,11 +30,12 @@
} }
}, },
"result": { "result": {
"type": "forge:partial_nbt", "id": "extendedae_plus:entity_speed_card",
"item": "extendedae_plus:entity_speed_card",
"count": 1, "count": 1,
"nbt": { "components": {
"EAS:mult": 16 "minecraft:custom_data": {
"EAS:mult": 16
}
} }
} }
} }

View File

@ -20,11 +20,12 @@
} }
}, },
"result": { "result": {
"type": "forge:partial_nbt", "id": "extendedae_plus:entity_speed_card",
"item": "extendedae_plus:entity_speed_card",
"count": 1, "count": 1,
"nbt": { "components": {
"EAS:mult": 2 "minecraft:custom_data": {
"EAS:mult": 2
}
} }
} }
} }

View File

@ -7,28 +7,26 @@
], ],
"key": { "key": {
"S": { "S": {
"type": "forge:partial_nbt", "type": "neoforge:components",
"item": "extendedae_plus:entity_speed_card", "items": "extendedae_plus:entity_speed_card",
"nbt": { "components": {
"EAS:mult": 2 "minecraft:custom_data": {
} "EAS:mult": 2
}
},
"strict": true
}, },
"B": { "B": { "item": "extendedae_plus:256x_crafting_accelerator" },
"item": "extendedae_plus:256x_crafting_accelerator" "Q": { "item": "ae2:spatial_cell_component_2" },
}, "X": { "item": "ae2:dense_energy_cell" }
"Q": {
"item": "ae2:spatial_cell_component_16"
},
"X": {
"item": "ae2:dense_energy_cell"
}
}, },
"result": { "result": {
"type": "forge:partial_nbt", "id": "extendedae_plus:entity_speed_card",
"item": "extendedae_plus:entity_speed_card",
"count": 1, "count": 1,
"nbt": { "components": {
"EAS:mult": 4 "minecraft:custom_data": {
"EAS:mult": 4
}
} }
} }
} }

View File

@ -7,28 +7,32 @@
], ],
"key": { "key": {
"S": { "S": {
"type": "forge:partial_nbt", "type": "neoforge:components",
"item": "extendedae_plus:entity_speed_card", "items": "extendedae_plus:entity_speed_card",
"nbt": { "components": {
"EAS:mult": 4 "minecraft:custom_data": {
} "EAS:mult": 4
}
},
"strict": true
}, },
"B": { "B": {
"item": "extendedae_plus:1024x_crafting_accelerator" "item": "extendedae_plus:1024x_crafting_accelerator"
}, },
"Q": { "Q": {
"item": "ae2:spatial_cell_component_128" "item": "ae2:spatial_cell_component_16"
}, },
"X": { "X": {
"item": "minecraft:nether_star" "item": "minecraft:nether_star"
} }
}, },
"result": { "result": {
"type": "forge:partial_nbt", "id": "extendedae_plus:entity_speed_card",
"item": "extendedae_plus:entity_speed_card",
"count": 1, "count": 1,
"nbt": { "components": {
"EAS:mult": 8 "minecraft:custom_data": {
"EAS:mult": 8
}
} }
} }
} }

View File

@ -7,11 +7,14 @@
], ],
"key": { "key": {
"S": { "S": {
"type": "forge:partial_nbt", "type": "neoforge:components",
"item": "extendedae_plus:entity_speed_card", "items": "extendedae_plus:entity_speed_card",
"nbt": { "components": {
"EAS:mult": 2 "minecraft:custom_data": {
} "EAS:mult": 2
}
},
"strict": true
}, },
"Z": { "Z": {
"item": "ae2:dense_energy_cell" "item": "ae2:dense_energy_cell"
@ -23,11 +26,11 @@
"item": "minecraft:nether_star" "item": "minecraft:nether_star"
}, },
"I": { "I": {
"item": "expatternprovider:ex_io_port" "item": "extendedae:ex_io_port"
} }
}, },
"result": { "result": {
"item": "extendedae_plus:entity_speed_ticker", "id": "extendedae_plus:entity_speed_ticker",
"count": 1 "count": 1
} }
} }

View File

@ -1,18 +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
}
}