我正在尝试制作一个1.7.10的mod(我知道已经过时了,但在这个情况下我认为这不会太重要),将一些mod与CustomNPC合并,基本上添加一些武器,它们看起来和使用起来像CustomNPC武器,但是由不同的mod材料制成。该mod提供的盾牌在其构造函数中需要特定的枚举类型:
public class ItemShield extends ItemNpcInterface {
public EnumNpcToolMaterial material;
public ItemShield(int par1, EnumNpcToolMaterial material) {
super(par1);
this.material = material;
setMaxDamage(material.getMaxUses());
setCreativeTab((CreativeTabs)CustomItems.tabWeapon);
}
枚举类型存储材料类型及其所有值。我不想编辑该模组代码本身,但我想向其中添加更多的材料。是否有一种方法可以向该枚举添加内容,或者可能将具有不同材料的相同枚举转换为该类型? 我已经通过创建一个自定义护盾类绕过了这个问题,该类仅从我的自定义枚举中获取值,但我很好奇是否有一种方法可以在不添加新类的情况下完成这项工作。 编辑: 我想添加模组的EnumNpcToolMaterial,以便更清楚地了解该盾构造函数需要什么。
public enum EnumNpcToolMaterial {
WOOD(0, 59, 2.0F, 0, 15),
STONE(1, 131, 4.0F, 1, 5),
BRONZE(2, 170, 5.0F, 2, 15),
IRON(2, 250, 6.0F, 2, 14),
DIA(3, 1561, 8.0F, 3, 10),
GOLD(0, 32, 12.0F, 1, 22),
EMERALD(3, 1000, 8.0F, 4, 10),
DEMONIC(3, 100, 8.0F, 6, 10),
FROST(2, 59, 6.0F, 3, 5),
MITHRIL(3, 3000, 8.0F, 3, 10);
private final int harvestLevel;
private final int maxUses;
private final float efficiencyOnProperMaterial;
private final int damageVsEntity;
private final int enchantability;
EnumNpcToolMaterial(int par3, int par4, float par5, int par6, int par7) {
this.harvestLevel = par3;
this.maxUses = par4;
this.efficiencyOnProperMaterial = par5;
this.damageVsEntity = par6;
this.enchantability = par7;
}
public int getMaxUses() {
return this.maxUses;
}
public float getEfficiencyOnProperMaterial() {
return this.efficiencyOnProperMaterial;
}
public int getDamageVsEntity() {
return this.damageVsEntity;
}
public int getHarvestLevel() {
return this.harvestLevel;
}
public int getEnchantability() {
return this.enchantability;
}
}
YourOtherEnum.valueOf(otherEnum.name())
或者类似的东西。 - Elikill58