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

View File

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

View File

@ -1,8 +1,5 @@
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.ae.definitions.upgrades.EntitySpeedCardItem;
import com.extendedae_plus.ae.items.EntitySpeedTickerPartItem;
@ -65,22 +62,10 @@ public final class ModItems {
() -> 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
*/
public static ItemStack createEntitySpeedCardStack(int multiplier) {
public static ItemStack createEntitySpeedCardStack(byte multiplier) {
return EntitySpeedCardItem.withMultiplier(multiplier);
}
}

View File

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

View File

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

View File

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

View File

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

View File

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