Enhancement: better generics

This commit is contained in:
thatsIch 2014-11-27 18:18:15 +01:00
parent 1aeac3b989
commit 17ce3eadc4
2 changed files with 16 additions and 17 deletions

View file

@ -21,10 +21,6 @@ package appeng.core;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import com.google.common.base.Optional;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import net.minecraft.item.crafting.CraftingManager; import net.minecraft.item.crafting.CraftingManager;
import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.BiomeGenBase;
@ -41,6 +37,10 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.VillagerRegistry; import cpw.mods.fml.common.registry.VillagerRegistry;
import com.google.common.base.Optional;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import appeng.api.AEApi; import appeng.api.AEApi;
import appeng.api.config.Upgrades; import appeng.api.config.Upgrades;
import appeng.api.definitions.Blocks; import appeng.api.definitions.Blocks;
@ -210,16 +210,16 @@ import appeng.util.Platform;
public class Registration public class Registration
{ {
final public static Registration instance = new Registration(); final public static Registration instance = new Registration();
public final RecipeHandler recipeHandler; private final RecipeHandler recipeHandler;
final private Multimap<AEFeature, Class> featuresToEntities = ArrayListMultimap.create(); private final Multimap<AEFeature, Class<? extends IAEFeature>> featuresToEntities;
public BiomeGenBase storageBiome; public BiomeGenBase storageBiome;
private Registration() private Registration()
{ {
recipeHandler = new RecipeHandler(); recipeHandler = new RecipeHandler();
featuresToEntities = ArrayListMultimap.create();
} }
public void PreInit( FMLPreInitializationEvent event ) public void PreInit( FMLPreInitializationEvent event )
@ -251,14 +251,14 @@ public class Registration
MinecraftForge.EVENT_BUS.register( OreDictionaryHandler.instance ); MinecraftForge.EVENT_BUS.register( OreDictionaryHandler.instance );
Items items = appeng.core.Api.instance.items(); Items items = Api.instance.items();
Materials materials = appeng.core.Api.instance.materials(); Materials materials = Api.instance.materials();
Parts parts = appeng.core.Api.instance.parts(); Parts parts = Api.instance.parts();
Blocks blocks = appeng.core.Api.instance.blocks(); Blocks blocks = Api.instance.blocks();
AEItemDefinition materialItem = addFeature( ItemMultiMaterial.class ); AEItemDefinition materialItem = addFeature( ItemMultiMaterial.class );
Class materialClass = materials.getClass(); Class<?> materialClass = materials.getClass();
for ( MaterialType mat : MaterialType.values() ) for ( MaterialType mat : MaterialType.values() )
{ {
try try
@ -284,7 +284,7 @@ public class Registration
AEItemDefinition partItem = addFeature( ItemMultiPart.class ); AEItemDefinition partItem = addFeature( ItemMultiPart.class );
Class partClass = parts.getClass(); Class<?> partClass = parts.getClass();
for ( PartType type : PartType.values() ) for ( PartType type : PartType.values() )
{ {
try try
@ -294,7 +294,7 @@ public class Registration
else else
{ {
Field f = partClass.getField( "part" + type.name() ); Field f = partClass.getField( "part" + type.name() );
Enum variants[] = type.getVariants(); Enum<AEColor>[] variants = type.getVariants();
if ( variants == null ) if ( variants == null )
{ {
ItemStackSrc is = ( ( ItemMultiPart ) partItem.item() ).createPart( type, null ); ItemStackSrc is = ( ( ItemMultiPart ) partItem.item() ).createPart( type, null );
@ -309,7 +309,7 @@ public class Registration
{ {
ColoredItemDefinition def = new ColoredItemDefinition(); ColoredItemDefinition def = new ColoredItemDefinition();
for ( Enum v : variants ) for ( Enum<AEColor> v : variants )
{ {
ItemStackSrc is = ( ( ItemMultiPart ) partItem.item() ).createPart( type, v ); ItemStackSrc is = ( ( ItemMultiPart ) partItem.item() ).createPart( type, v );
if ( is != null ) if ( is != null )
@ -757,5 +757,4 @@ public class Registration
*/ */
OreDictionaryHandler.instance.bakeRecipes(); OreDictionaryHandler.instance.bakeRecipes();
} }
} }

View file

@ -144,7 +144,7 @@ public enum PartType
baseDamage = baseMetaValue; baseDamage = baseMetaValue;
} }
public Enum[] getVariants() public Enum<AEColor>[] getVariants()
{ {
if ( this == CableSmart || this == CableCovered || this == CableGlass || this == CableDense ) if ( this == CableSmart || this == CableCovered || this == CableGlass || this == CableDense )
return AEColor.values(); return AEColor.values();