diff --git a/items/parts/ItemMultiPart.java b/items/parts/ItemMultiPart.java index 90c6b99b0..6dad54be8 100644 --- a/items/parts/ItemMultiPart.java +++ b/items/parts/ItemMultiPart.java @@ -191,7 +191,12 @@ public class ItemMultiPart extends AEBaseItem implements IPartItem, IItemGroup { PartType t = getTypeByStack( is ); if ( t != null ) - return t.getPart().getConstructor( ItemStack.class ).newInstance( is ); + { + if ( t.constructor == null ) + t.constructor = t.getPart().getConstructor( ItemStack.class ); + + return t.constructor.newInstance( is ); + } } catch (Throwable e) { diff --git a/items/parts/PartType.java b/items/parts/PartType.java index f26df5ae9..924f369fe 100644 --- a/items/parts/PartType.java +++ b/items/parts/PartType.java @@ -1,5 +1,6 @@ package appeng.items.parts; +import java.lang.reflect.Constructor; import java.util.EnumSet; import appeng.api.parts.IPart; @@ -112,6 +113,8 @@ public enum PartType private final GuiText extraName; public final int baseDamage; + public Constructor constructor; + PartType(int baseMetaValue, AEFeature part, Class c) { this( baseMetaValue, part, c, null ); }