From c40d6937d6609bd55f8f0b32e6218c37b68b31fd Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Tue, 28 Jan 2014 14:20:19 -0600 Subject: [PATCH] Replace Non created materials/parts with null item definitions instead of null. --- core/Registration.java | 8 ++++- core/features/NullItemDefinition.java | 42 +++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 core/features/NullItemDefinition.java diff --git a/core/Registration.java b/core/Registration.java index fb59beb7d..0b5ec44d1 100644 --- a/core/Registration.java +++ b/core/Registration.java @@ -67,6 +67,7 @@ import appeng.core.features.AEFeatureHandler; import appeng.core.features.ColoredItemDefinition; import appeng.core.features.DamagedItemDefinition; import appeng.core.features.IAEFeature; +import appeng.core.features.NullItemDefinition; import appeng.core.features.registries.P2PTunnelRegistry; import appeng.core.features.registries.entries.BasicCellHandler; import appeng.core.features.registries.entries.CreativeCellHandler; @@ -156,7 +157,10 @@ public class Registration { Field f = materialClass.getField( "material" + mat.name() ); ItemStack is = ((ItemMaterial) materialItem.item()).createMaterial( mat ); - f.set( materials, new DamagedItemDefinition( is ) ); + if ( is != null ) + f.set( materials, new DamagedItemDefinition( is ) ); + else + f.set( parts, new NullItemDefinition() ); } catch (Throwable err) { @@ -179,6 +183,8 @@ public class Registration ItemStack is = ((ItemPart) partItem.item()).createPart( type, null ); if ( is != null ) f.set( parts, new DamagedItemDefinition( is ) ); + else + f.set( parts, new NullItemDefinition() ); } else { diff --git a/core/features/NullItemDefinition.java b/core/features/NullItemDefinition.java new file mode 100644 index 000000000..7de3023e3 --- /dev/null +++ b/core/features/NullItemDefinition.java @@ -0,0 +1,42 @@ +package appeng.core.features; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import appeng.api.util.AEItemDefinition; + +public class NullItemDefinition implements AEItemDefinition +{ + + @Override + public Block block() + { + return null; + } + + @Override + public Item item() + { + return null; + } + + @Override + public Class entity() + { + return null; + } + + @Override + public ItemStack stack(int stackSize) + { + return null; + } + + @Override + public boolean sameAs(ItemStack comparableItem) + { + return false; + } + +}