Follow forges registration guidelines for entities and oredict. Remove ore camouflage (#3605)

This commit is contained in:
fscan
2018-07-14 16:37:50 +02:00
committed by GitHub
parent 8f6f35b9cf
commit 3363acb7db
12 changed files with 104 additions and 131 deletions
@@ -37,17 +37,13 @@ import net.minecraft.init.SoundEvents;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.SoundCategory; import net.minecraft.util.SoundCategory;
import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.Explosion; import net.minecraft.world.Explosion;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import appeng.block.AEBaseBlock; import appeng.block.AEBaseBlock;
import appeng.core.AppEng;
import appeng.entity.EntityIds;
import appeng.entity.EntityTinyTNTPrimed; import appeng.entity.EntityTinyTNTPrimed;
import appeng.helpers.ICustomCollision; import appeng.helpers.ICustomCollision;
@@ -67,9 +63,6 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
this.setSoundType( SoundType.GROUND ); this.setSoundType( SoundType.GROUND );
this.setHardness( 0F ); this.setHardness( 0F );
EntityRegistry.registerModEntity( new ResourceLocation( AppEng.MOD_ID, EntityTinyTNTPrimed.class.getName() ), EntityTinyTNTPrimed.class,
"EntityTinyTNTPrimed", EntityIds.get( EntityTinyTNTPrimed.class ), AppEng.instance(), 16, 4, true );
} }
@Override @Override
@@ -144,7 +144,7 @@ class ItemDefinitionBuilder implements IItemBuilder
item.setCreativeTab( this.creativeTab ); item.setCreativeTab( this.creativeTab );
// Register all extra handlers // Register all extra handlers
this.boostrapComponents.forEach( component -> component.apply( item ) ); this.boostrapComponents.forEach( component -> this.factory.addBootstrapComponent( component.apply( item ) ) );
// Register custom dispenser behavior if requested // Register custom dispenser behavior if requested
if( this.dispenserBehaviorSupplier != null ) if( this.dispenserBehaviorSupplier != null )
@@ -0,0 +1,12 @@
package appeng.bootstrap.components;
import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraftforge.registries.IForgeRegistry;
import appeng.bootstrap.IBootstrapComponent;
@FunctionalInterface
public interface IEntityRegistrationComponent extends IBootstrapComponent
{
void entityRegistration( IForgeRegistry<EntityEntry> entityRegistry );
}
+16 -47
View File
@@ -26,10 +26,8 @@ import java.util.Random;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
import net.minecraft.util.math.RayTraceResult; import net.minecraft.util.math.RayTraceResult;
@@ -42,6 +40,7 @@ import net.minecraftforge.client.model.ModelLoaderRegistry;
import net.minecraftforge.common.ForgeModContainer; import net.minecraftforge.common.ForgeModContainer;
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.client.FMLClientHandler; import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.client.registry.RenderingRegistry;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import appeng.api.parts.CableRenderMode; import appeng.api.parts.CableRenderMode;
@@ -85,30 +84,14 @@ public class ClientHelper extends ServerHelper
{ {
ModelLoaderRegistry.registerLoader( UVLModelLoader.INSTANCE ); ModelLoaderRegistry.registerLoader( UVLModelLoader.INSTANCE );
} }
RenderingRegistry.registerEntityRenderingHandler( EntityTinyTNTPrimed.class, manager -> new RenderTinyTNTPrimed( manager ) );
RenderingRegistry.registerEntityRenderingHandler( EntityFloatingItem.class, manager -> new RenderFloatingItem( manager ) );
} }
@Override @Override
public void init() public void init()
{ {
// final Block fluixBlock = GameRegistry.findBlock( "appliedenergistics2", "fluix" );
// Item fluixItem = Item.getItemFromBlock( fluixBlock );
// ModelResourceLocation itemModelResourceLocation = new ModelResourceLocation( "appliedenergistics2:fluix",
// "inventory" );
// final int DEFAULT_ITEM_SUBTYPE = 0;
// final ItemModelMesher mesher = Minecraft.getMinecraft().getRenderItem().getItemModelMesher();
// // mesher.register( fluixItem, DEFAULT_ITEM_SUBTYPE, itemModelResourceLocation );
//
// final ResourceLocation resource = new ResourceLocation( "appliedenergistics2", "stair.fluix" );
// final ModelResourceLocation fluixStairModel = new ModelResourceLocation( resource, "inventory" );
// AELog.info( "FluixStairModel: " + fluixStairModel );
//
// final Set<Item> items = AEApi.instance().definitions().blocks().fluixStairs().maybeItem().asSet();
// for( Item item : items )
// {
// AELog.info( "Registering with %s with unlocalized %s", item, item.getUnlocalizedName() );
// mesher.register( item, DEFAULT_ITEM_SUBTYPE, fluixStairModel );
// }
} }
@Override @Override
@@ -199,11 +182,6 @@ public class ClientHelper extends ServerHelper
@Override @Override
public void postInit() public void postInit()
{ {
// RenderingRegistry.registerBlockHandler( WorldRender.INSTANCE );
final RenderManager inst = Minecraft.getMinecraft().getRenderManager();
inst.entityRenderMap.put( EntityTinyTNTPrimed.class, new RenderTinyTNTPrimed( inst ) );
inst.entityRenderMap.put( EntityFloatingItem.class, new RenderFloatingItem( inst ) );
} }
@Override @Override
@@ -330,29 +308,20 @@ public class ClientHelper extends ServerHelper
final EntityPlayer player = mc.player; final EntityPlayer player = mc.player;
if( player.isSneaking() ) if( player.isSneaking() )
{ {
final EnumHand hand; final boolean mainHand = player.getHeldItem( EnumHand.MAIN_HAND ).getItem() instanceof IMouseWheelItem;
if( !player.getHeldItem( EnumHand.MAIN_HAND ).isEmpty() && player.getHeldItem( EnumHand.MAIN_HAND ).getItem() instanceof IMouseWheelItem ) final boolean offHand = player.getHeldItem( EnumHand.OFF_HAND ).getItem() instanceof IMouseWheelItem;
{
hand = EnumHand.MAIN_HAND;
}
else if( !player.getHeldItem( EnumHand.OFF_HAND ).isEmpty() && player.getHeldItem( EnumHand.OFF_HAND ).getItem() instanceof IMouseWheelItem )
{
hand = EnumHand.OFF_HAND;
}
else
{
return;
}
final ItemStack is = player.getHeldItem( hand ); if( mainHand || offHand )
try
{ {
NetworkHandler.instance().sendToServer( new PacketValueConfig( "Item", me.getDwheel() > 0 ? "WheelUp" : "WheelDown" ) ); try
me.setCanceled( true ); {
} NetworkHandler.instance().sendToServer( new PacketValueConfig( "Item", me.getDwheel() > 0 ? "WheelUp" : "WheelDown" ) );
catch( final IOException e ) me.setCanceled( true );
{ }
AELog.debug( e ); catch( final IOException e )
{
AELog.debug( e );
}
} }
} }
} }
+14 -7
View File
@@ -53,6 +53,7 @@ import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.EntityEntry;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import net.minecraftforge.fml.relauncher.ReflectionHelper; import net.minecraftforge.fml.relauncher.ReflectionHelper;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@@ -76,10 +77,10 @@ import appeng.api.networking.security.ISecurityGrid;
import appeng.api.networking.spatial.ISpatialCache; import appeng.api.networking.spatial.ISpatialCache;
import appeng.api.networking.storage.IStorageGrid; import appeng.api.networking.storage.IStorageGrid;
import appeng.api.networking.ticking.ITickManager; import appeng.api.networking.ticking.ITickManager;
import appeng.api.parts.IPartHelper;
import appeng.bootstrap.ICriterionTriggerRegistry; import appeng.bootstrap.ICriterionTriggerRegistry;
import appeng.bootstrap.IModelRegistry; import appeng.bootstrap.IModelRegistry;
import appeng.bootstrap.components.IBlockRegistrationComponent; import appeng.bootstrap.components.IBlockRegistrationComponent;
import appeng.bootstrap.components.IEntityRegistrationComponent;
import appeng.bootstrap.components.IInitComponent; import appeng.bootstrap.components.IInitComponent;
import appeng.bootstrap.components.IItemRegistrationComponent; import appeng.bootstrap.components.IItemRegistrationComponent;
import appeng.bootstrap.components.IModelRegistrationComponent; import appeng.bootstrap.components.IModelRegistrationComponent;
@@ -211,11 +212,9 @@ final class Registration
Preconditions.checkArgument( !recipeDirectory.isFile() ); Preconditions.checkArgument( !recipeDirectory.isFile() );
final Api api = Api.INSTANCE; final Api api = Api.INSTANCE;
final IPartHelper partHelper = api.partHelper();
final IRegistryContainer registries = api.registries(); final IRegistryContainer registries = api.registries();
ApiDefinitions definitions = api.definitions(); ApiDefinitions definitions = api.definitions();
definitions.getRegistry().getBootstrapComponents( IOreDictComponent.class ).forEachRemaining( b -> b.oreRegistration( event.getSide() ) );
definitions.getRegistry().getBootstrapComponents( IInitComponent.class ).forEachRemaining( b -> b.initialize( event.getSide() ) ); definitions.getRegistry().getBootstrapComponents( IInitComponent.class ).forEachRemaining( b -> b.initialize( event.getSide() ) );
MinecraftForge.EVENT_BUS.register( TickHandler.INSTANCE ); MinecraftForge.EVENT_BUS.register( TickHandler.INSTANCE );
@@ -286,6 +285,10 @@ final class Registration
final ApiDefinitions definitions = Api.INSTANCE.definitions(); final ApiDefinitions definitions = Api.INSTANCE.definitions();
final Side side = FMLCommonHandler.instance().getEffectiveSide(); final Side side = FMLCommonHandler.instance().getEffectiveSide();
definitions.getRegistry().getBootstrapComponents( IItemRegistrationComponent.class ).forEachRemaining( b -> b.itemRegistration( side, registry ) ); definitions.getRegistry().getBootstrapComponents( IItemRegistrationComponent.class ).forEachRemaining( b -> b.itemRegistration( side, registry ) );
// register oredicts
definitions.getRegistry().getBootstrapComponents( IOreDictComponent.class ).forEachRemaining( b -> b.oreRegistration( side ) );
ItemMaterial.instance.registerOredicts();
ItemPart.instance.registerOreDicts();
} }
@SubscribeEvent @SubscribeEvent
@@ -297,10 +300,6 @@ final class Registration
final ApiDefinitions definitions = api.definitions(); final ApiDefinitions definitions = api.definitions();
final Side side = FMLCommonHandler.instance().getEffectiveSide(); final Side side = FMLCommonHandler.instance().getEffectiveSide();
// Perform ore camouflage!
ItemMaterial.instance.makeUnique();
ItemPart.instance.registerOreDicts();
if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_DISASSEMBLY_CRAFTING ) ) if( AEConfig.instance().isFeatureEnabled( AEFeature.ENABLE_DISASSEMBLY_CRAFTING ) )
{ {
DisassembleRecipe r = new DisassembleRecipe(); DisassembleRecipe r = new DisassembleRecipe();
@@ -322,6 +321,14 @@ final class Registration
ldr.loadProcessingRecipes(); ldr.loadProcessingRecipes();
} }
@SubscribeEvent
public void registerEntities( RegistryEvent.Register<EntityEntry> event)
{
final IForgeRegistry<EntityEntry> registry = event.getRegistry();
final ApiDefinitions definitions = Api.INSTANCE.definitions();
definitions.getRegistry().getBootstrapComponents( IEntityRegistrationComponent.class ).forEachRemaining( b -> b.entityRegistration( registry ) );
}
@SubscribeEvent @SubscribeEvent
public void attachSpatialDimensionManager( AttachCapabilitiesEvent<World> event ) public void attachSpatialDimensionManager( AttachCapabilitiesEvent<World> event )
{ {
@@ -29,6 +29,7 @@ import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemSlab; import net.minecraft.item.ItemSlab;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.EntityEntryBuilder;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
@@ -93,6 +94,7 @@ import appeng.bootstrap.BlockRenderingCustomizer;
import appeng.bootstrap.FeatureFactory; import appeng.bootstrap.FeatureFactory;
import appeng.bootstrap.IBlockRendering; import appeng.bootstrap.IBlockRendering;
import appeng.bootstrap.IItemRendering; import appeng.bootstrap.IItemRendering;
import appeng.bootstrap.components.IEntityRegistrationComponent;
import appeng.bootstrap.components.IOreDictComponent; import appeng.bootstrap.components.IOreDictComponent;
import appeng.bootstrap.components.IPostInitComponent; import appeng.bootstrap.components.IPostInitComponent;
import appeng.bootstrap.components.IPreInitComponent; import appeng.bootstrap.components.IPreInitComponent;
@@ -126,6 +128,8 @@ import appeng.decorative.solid.BlockQuartzPillar;
import appeng.decorative.solid.BlockSkyStone; import appeng.decorative.solid.BlockSkyStone;
import appeng.decorative.solid.BlockSkyStone.SkystoneType; import appeng.decorative.solid.BlockSkyStone.SkystoneType;
import appeng.decorative.stair.BlockStairCommon; import appeng.decorative.stair.BlockStairCommon;
import appeng.entity.EntityIds;
import appeng.entity.EntityTinyTNTPrimed;
import appeng.fluids.block.BlockFluidInterface; import appeng.fluids.block.BlockFluidInterface;
import appeng.fluids.tile.TileFluidInterface; import appeng.fluids.tile.TileFluidInterface;
import appeng.hooks.DispenserBehaviorTinyTNT; import appeng.hooks.DispenserBehaviorTinyTNT;
@@ -345,6 +349,16 @@ public final class ApiBlocks implements IBlocks
.features( AEFeature.TINY_TNT ) .features( AEFeature.TINY_TNT )
.bootstrap( ( block, item ) -> (IPreInitComponent) side -> BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject( item, .bootstrap( ( block, item ) -> (IPreInitComponent) side -> BlockDispenser.DISPENSE_BEHAVIOR_REGISTRY.putObject( item,
new DispenserBehaviorTinyTNT() ) ) new DispenserBehaviorTinyTNT() ) )
.bootstrap( ( block, item ) -> (IEntityRegistrationComponent) r ->
{
r.register( EntityEntryBuilder.create()
.entity( EntityTinyTNTPrimed.class )
.id( new ResourceLocation( "appliedenergistics2", EntityTinyTNTPrimed.class.getName() ),
EntityIds.get( EntityTinyTNTPrimed.class ) )
.name( "EntityTinyTNTPrimed" )
.tracker( 16, 4, true )
.build() );
} )
.build(); .build();
this.securityStation = registry.block( "security_station", BlockSecurityStation::new ) this.securityStation = registry.block( "security_station", BlockSecurityStation::new )
.features( AEFeature.SECURITY ) .features( AEFeature.SECURITY )
@@ -19,10 +19,14 @@
package appeng.core.api.definitions; package appeng.core.api.definitions;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.EntityEntryBuilder;
import appeng.api.definitions.IItemDefinition; import appeng.api.definitions.IItemDefinition;
import appeng.api.definitions.IItems; import appeng.api.definitions.IItems;
import appeng.api.util.AEColoredItemDefinition; import appeng.api.util.AEColoredItemDefinition;
import appeng.bootstrap.FeatureFactory; import appeng.bootstrap.FeatureFactory;
import appeng.bootstrap.components.IEntityRegistrationComponent;
import appeng.client.render.crafting.ItemEncodedPatternRendering; import appeng.client.render.crafting.ItemEncodedPatternRendering;
import appeng.core.CreativeTabFacade; import appeng.core.CreativeTabFacade;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
@@ -30,6 +34,8 @@ import appeng.debug.ToolDebugCard;
import appeng.debug.ToolEraser; import appeng.debug.ToolEraser;
import appeng.debug.ToolMeteoritePlacer; import appeng.debug.ToolMeteoritePlacer;
import appeng.debug.ToolReplicatorCard; import appeng.debug.ToolReplicatorCard;
import appeng.entity.EntityGrowingCrystal;
import appeng.entity.EntityIds;
import appeng.fluids.items.BasicFluidStorageCell; import appeng.fluids.items.BasicFluidStorageCell;
import appeng.fluids.items.FluidDummyItem; import appeng.fluids.items.FluidDummyItem;
import appeng.fluids.items.FluidDummyItemRendering; import appeng.fluids.items.FluidDummyItemRendering;
@@ -231,6 +237,16 @@ public final class ApiItems implements IItems
this.crystalSeed = registry.item( "crystal_seed", ItemCrystalSeed::new ) this.crystalSeed = registry.item( "crystal_seed", ItemCrystalSeed::new )
.features( AEFeature.CRYSTAL_SEEDS ) .features( AEFeature.CRYSTAL_SEEDS )
.rendering( new ItemCrystalSeedRendering() ) .rendering( new ItemCrystalSeedRendering() )
.bootstrap( item -> (IEntityRegistrationComponent) r ->
{
r.register( EntityEntryBuilder.create()
.entity( EntityGrowingCrystal.class )
.id( new ResourceLocation( "appliedenergistics2", EntityGrowingCrystal.class.getName() ),
EntityIds.get( EntityGrowingCrystal.class ) )
.name( EntityGrowingCrystal.class.getSimpleName() )
.tracker( 16, 4, true )
.build() );
} )
.build(); .build();
// rv1 // rv1
@@ -22,6 +22,8 @@ package appeng.core.api.definitions;
import java.util.Arrays; import java.util.Arrays;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.EntityEntryBuilder;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@@ -30,7 +32,11 @@ import appeng.api.definitions.IMaterials;
import appeng.bootstrap.FeatureFactory; import appeng.bootstrap.FeatureFactory;
import appeng.bootstrap.IItemRendering; import appeng.bootstrap.IItemRendering;
import appeng.bootstrap.ItemRenderingCustomizer; import appeng.bootstrap.ItemRenderingCustomizer;
import appeng.bootstrap.components.IEntityRegistrationComponent;
import appeng.core.features.DamagedItemDefinition; import appeng.core.features.DamagedItemDefinition;
import appeng.entity.EntityChargedQuartz;
import appeng.entity.EntityIds;
import appeng.entity.EntitySingularity;
import appeng.items.materials.ItemMaterial; import appeng.items.materials.ItemMaterial;
import appeng.items.materials.MaterialType; import appeng.items.materials.MaterialType;
@@ -133,6 +139,22 @@ public final class ApiMaterials implements IMaterials
.collect( Collectors.toList() ) ); .collect( Collectors.toList() ) );
} }
} ) } )
.bootstrap( item -> (IEntityRegistrationComponent) r ->
{
r.register( EntityEntryBuilder.create()
.entity( EntitySingularity.class )
.id( new ResourceLocation( "appliedenergistics2", EntitySingularity.class.getName() ), EntityIds.get( EntitySingularity.class ) )
.name( EntitySingularity.class.getSimpleName() )
.tracker( 16, 4, true )
.build() );
r.register( EntityEntryBuilder.create()
.entity( EntityChargedQuartz.class )
.id( new ResourceLocation( "appliedenergistics2", EntityChargedQuartz.class.getName() ),
EntityIds.get( EntityChargedQuartz.class ) )
.name( EntityChargedQuartz.class.getSimpleName() )
.tracker( 16, 4, true )
.build() );
} )
.build(); .build();
this.cell2SpatialPart = new DamagedItemDefinition( "material.cell.spatial.2", materials.createMaterial( MaterialType.CELL2_SPATIAL_PART ) ); this.cell2SpatialPart = new DamagedItemDefinition( "material.cell.spatial.2", materials.createMaterial( MaterialType.CELL2_SPATIAL_PART ) );
@@ -25,7 +25,6 @@ import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
@@ -33,7 +32,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
@SideOnly( Side.CLIENT ) @SideOnly( Side.CLIENT )
public class RenderTinyTNTPrimed extends Render public class RenderTinyTNTPrimed extends Render<EntityTinyTNTPrimed>
{ {
public RenderTinyTNTPrimed( final RenderManager p_i46134_1_ ) public RenderTinyTNTPrimed( final RenderManager p_i46134_1_ )
@@ -43,12 +42,7 @@ public class RenderTinyTNTPrimed extends Render
} }
@Override @Override
public void doRender( final Entity tnt, final double x, final double y, final double z, final float unused, final float life ) public void doRender( final EntityTinyTNTPrimed tnt, final double x, final double y, final double z, final float unused, final float life )
{
this.renderPrimedTNT( (EntityTinyTNTPrimed) tnt, x, y, z, unused, life );
}
private void renderPrimedTNT( final EntityTinyTNTPrimed tnt, final double x, final double y, final double z, final float unused, final float life )
{ {
final BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher(); final BlockRendererDispatcher blockrendererdispatcher = Minecraft.getMinecraft().getBlockRendererDispatcher();
GlStateManager.pushMatrix(); GlStateManager.pushMatrix();
@@ -105,7 +99,7 @@ public class RenderTinyTNTPrimed extends Render
} }
@Override @Override
protected ResourceLocation getEntityTexture( final Entity entity ) protected ResourceLocation getEntityTexture( final EntityTinyTNTPrimed entity )
{ {
return TextureMap.LOCATION_BLOCKS_TEXTURE; return TextureMap.LOCATION_BLOCKS_TEXTURE;
} }
@@ -202,54 +202,17 @@ public final class ItemMaterial extends AEBaseItem implements IStorageComponent,
return mat.getStackSrc(); return mat.getStackSrc();
} }
public void makeUnique() public void registerOredicts()
{ {
for( final MaterialType mt : ImmutableSet.copyOf( this.dmgToMaterial.values() ) ) for( final MaterialType mt : ImmutableSet.copyOf( this.dmgToMaterial.values() ) )
{ {
if( mt.getOreName() != null ) if( mt.getOreName() != null )
{ {
ItemStack replacement = ItemStack.EMPTY;
final String[] names = mt.getOreName().split( "," ); final String[] names = mt.getOreName().split( "," );
for( final String name : names ) for( final String name : names )
{ {
if( !replacement.isEmpty() ) OreDictionary.registerOre( name, mt.stack( 1 ) );
{
break;
}
final List<ItemStack> options = OreDictionary.getOres( name );
if( options != OreDictionary.EMPTY_LIST && options.size() > 0 )
{
for( final ItemStack is : options )
{
if( !is.isEmpty() )
{
replacement = is.copy();
break;
}
}
}
}
if( replacement.isEmpty() || AEConfig.instance().useAEVersion( mt ) )
{
// continue using the AE2 item.
for( final String name : names )
{
OreDictionary.registerOre( name, mt.stack( 1 ) );
}
}
else
{
if( mt.getItemInstance() == this )
{
this.dmgToMaterial.remove( mt.getDamageValue() );
}
mt.setItemInstance( replacement.getItem() );
mt.setDamageValue( replacement.getItemDamage() );
} }
} }
} }
@@ -341,8 +304,9 @@ public final class ItemMaterial extends AEBaseItem implements IStorageComponent,
try try
{ {
eqi = droppedEntity.getConstructor( World.class, double.class, double.class, double.class, ItemStack.class ).newInstance( w, location.posX, eqi = droppedEntity.getConstructor( World.class, double.class, double.class, double.class, ItemStack.class )
location.posY, location.posZ, itemstack ); .newInstance( w, location.posX,
location.posY, location.posZ, itemstack );
} }
catch( final Throwable t ) catch( final Throwable t )
{ {
@@ -27,13 +27,11 @@ import net.minecraft.entity.Entity;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import appeng.core.AppEng; import appeng.core.AppEng;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
import appeng.core.features.MaterialStackSrc; import appeng.core.features.MaterialStackSrc;
import appeng.entity.EntityChargedQuartz; import appeng.entity.EntityChargedQuartz;
import appeng.entity.EntityIds;
import appeng.entity.EntitySingularity; import appeng.entity.EntitySingularity;
@@ -148,11 +146,6 @@ public enum MaterialType
{ {
this( metaValue, modelName, features ); this( metaValue, modelName, features );
this.droppedEntity = c; this.droppedEntity = c;
EntityRegistry.registerModEntity( new ResourceLocation( "appliedenergistics2", this.droppedEntity.getName() ), this.droppedEntity,
this.droppedEntity.getSimpleName(),
EntityIds.get( this.droppedEntity ), AppEng.instance(), 16, 4,
true );
} }
MaterialType( final int metaValue, String modelName, final Set<AEFeature> features, final String oreDictionary, final Class<? extends Entity> c ) MaterialType( final int metaValue, String modelName, final Set<AEFeature> features, final String oreDictionary, final Class<? extends Entity> c )
@@ -160,10 +153,6 @@ public enum MaterialType
this( metaValue, modelName, features ); this( metaValue, modelName, features );
this.oreName = oreDictionary; this.oreName = oreDictionary;
this.droppedEntity = c; this.droppedEntity = c;
EntityRegistry.registerModEntity( new ResourceLocation( "appliedenergistics2", this.droppedEntity.getName() ), this.droppedEntity,
this.droppedEntity.getSimpleName(),
EntityIds.get( this.droppedEntity ), AppEng.instance(), 16, 4,
true );
} }
MaterialType( final int metaValue, String modelName, final Set<AEFeature> features, final String oreDictionary ) MaterialType( final int metaValue, String modelName, final Set<AEFeature> features, final String oreDictionary )
@@ -32,9 +32,7 @@ import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.common.registry.EntityRegistry;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
@@ -42,10 +40,8 @@ import appeng.api.AEApi;
import appeng.api.definitions.IMaterials; import appeng.api.definitions.IMaterials;
import appeng.api.implementations.items.IGrowableCrystal; import appeng.api.implementations.items.IGrowableCrystal;
import appeng.api.recipes.ResolverResult; import appeng.api.recipes.ResolverResult;
import appeng.core.AppEng;
import appeng.core.localization.ButtonToolTips; import appeng.core.localization.ButtonToolTips;
import appeng.entity.EntityGrowingCrystal; import appeng.entity.EntityGrowingCrystal;
import appeng.entity.EntityIds;
import appeng.items.AEBaseItem; import appeng.items.AEBaseItem;
import appeng.util.Platform; import appeng.util.Platform;
@@ -64,9 +60,6 @@ public class ItemCrystalSeed extends AEBaseItem implements IGrowableCrystal
public ItemCrystalSeed() public ItemCrystalSeed()
{ {
this.setHasSubtypes( true ); this.setHasSubtypes( true );
EntityRegistry.registerModEntity( new ResourceLocation( "appliedenergistics2", EntityGrowingCrystal.class.getName() ), EntityGrowingCrystal.class,
EntityGrowingCrystal.class.getSimpleName(), EntityIds.get( EntityGrowingCrystal.class ), AppEng.instance(), 16, 4, true );
} }
@Nullable @Nullable