diff --git a/api b/api index d9b2b144..61846382 160000 --- a/api +++ b/api @@ -1 +1 @@ -Subproject commit d9b2b1442347a580e89c86f1108aeaac2b2b4a82 +Subproject commit 6184638276293ab83ca63cd4f404590c58931adb diff --git a/core/Registration.java b/core/Registration.java index dff96c7e..60e2522c 100644 --- a/core/Registration.java +++ b/core/Registration.java @@ -1,24 +1,19 @@ package appeng.core; -import ic2.api.energy.tile.IEnergySink; - import java.lang.reflect.Constructor; import java.lang.reflect.Field; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.biome.BiomeGenBase; import net.minecraftforge.common.ChestGenHooks; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fluids.IFluidHandler; import appeng.api.AEApi; import appeng.api.config.Upgrades; import appeng.api.definitions.Blocks; import appeng.api.definitions.Items; import appeng.api.definitions.Materials; import appeng.api.definitions.Parts; -import appeng.api.implementations.tiles.ITileStorageMonitorable; import appeng.api.networking.energy.IEnergyGrid; import appeng.api.networking.pathing.IPathingGrid; import appeng.api.networking.security.ISecurityGrid; @@ -118,8 +113,6 @@ import appeng.me.cache.SpatialPylonCache; import appeng.me.cache.TickManagerCache; import appeng.me.storage.AEExternalHandler; import appeng.recipes.ores.OreDictionaryHandler; -import buildcraft.api.power.IPowerEmitter; -import buildcraft.api.power.IPowerReceptor; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.Multimap; @@ -396,12 +389,12 @@ public class Registration public void Init(FMLInitializationEvent event) { - AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIEnergySink", IEnergySink.class ); - AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerISidedInventory", ISidedInventory.class ); - AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIPowerEmitter", IPowerEmitter.class ); - AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIPowerReceptor", IPowerReceptor.class ); - AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIFluidHandler", IFluidHandler.class ); - AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerITileStorageMonitorable", ITileStorageMonitorable.class ); + AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIEnergySink", "ic2.api.energy.tile.IEnergySink" ); + AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerISidedInventory", "net.minecraft.inventory.ISidedInventory" ); + AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIPowerEmitter", "buildcraft.api.power.IPowerEmitter" ); + AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIPowerReceptor", "buildcraft.api.power.IPowerReceptor" ); + AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIFluidHandler", "net.minecraftforge.fluids.IFluidHandler" ); + AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerITileStorageMonitorable", "appeng.api.implementations.tiles.ITileStorageMonitorable" ); TickRegistry.registerTickHandler( TickHandler.instance, Side.SERVER ); TickRegistry.registerTickHandler( TickHandler.instance, Side.CLIENT ); diff --git a/core/api/ApiPart.java b/core/api/ApiPart.java index f0e25fb2..2b2e8ac3 100644 --- a/core/api/ApiPart.java +++ b/core/api/ApiPart.java @@ -65,10 +65,8 @@ public class ApiPart implements IPartHelper ClassLoader loader = getClass().getClassLoader();// ClassLoader.getSystemClassLoader(); Class root = ClassLoader.class; Class cls = loader.getClass(); - java.lang.reflect.Method defineClassMethod = root.getDeclaredMethod( "defineClass", - new Class[] { String.class, byte[].class, int.class, int.class } ); - java.lang.reflect.Method runTransformersMethod = cls - .getDeclaredMethod( "runTransformers", new Class[] { String.class, String.class, byte[].class } ); + java.lang.reflect.Method defineClassMethod = root.getDeclaredMethod( "defineClass", new Class[] { String.class, byte[].class, int.class, int.class } ); + java.lang.reflect.Method runTransformersMethod = cls.getDeclaredMethod( "runTransformers", new Class[] { String.class, String.class, byte[].class } ); runTransformersMethod.setAccessible( true ); defineClassMethod.setAccessible( true ); @@ -121,9 +119,11 @@ public class ApiPart implements IPartHelper public Class getCombinedInstance(String base)// , CableBusContainer cbc) { /* - * List desc = new LinkedList(); for (ForgeDirection side : ForgeDirection.values()) { IBusPart part = - * cbc.getPart( side ); if ( part != null ) { for (Class c : interfaces2Layer.keySet()) { if ( c.isInstance( - * part ) ) desc.add( interfaces2Layer.get( c ).getName() ); } } } + * List desc = new LinkedList(); for (ForgeDirection side : + * ForgeDirection.values()) { IBusPart part = cbc.getPart( side ); if ( + * part != null ) { for (Class c : interfaces2Layer.keySet()) { if ( + * c.isInstance( part ) ) desc.add( interfaces2Layer.get( c ).getName() + * ); } } } */ if ( desc.size() == 0 ) @@ -328,15 +328,22 @@ public class ApiPart implements IPartHelper } @Override - public boolean registerNewLayer(String layer, Class layerInterface) + public boolean registerNewLayer(String layer, String layerInterface) { - if ( interfaces2Layer.get( layerInterface ) == null ) + try + { + if ( interfaces2Layer.get( layerInterface ) == null ) + { + interfaces2Layer.put( Class.forName( layerInterface ), layer ); + desc.add( layerInterface ); + return true; + } + else + AELog.info( "Layer " + layer + " not registered, " + layerInterface + " aready has a layer." ); + } + catch (Throwable t) { - desc.add( layerInterface.getName() ); - interfaces2Layer.put( layerInterface, layer ); } - else - AELog.info( "Layer " + layer + " not registered, " + layerInterface.getName() + " aready has a layer." ); return false; } diff --git a/integration/modules/BC.java b/integration/modules/BC.java index fde1e7fa..5712e77f 100644 --- a/integration/modules/BC.java +++ b/integration/modules/BC.java @@ -19,7 +19,6 @@ import buildcraft.BuildCraftEnergy; import buildcraft.BuildCraftTransport; import buildcraft.api.tools.IToolWrench; import buildcraft.api.transport.FacadeManager; -import buildcraft.api.transport.IPipeConnection; import buildcraft.api.transport.IPipeTile; import buildcraft.api.transport.IPipeTile.PipeType; import buildcraft.transport.ItemFacade; @@ -176,7 +175,7 @@ public class BC implements IIntegrationModule, IBC @Override public void Init() { - AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIPipeConnection", IPipeConnection.class ); + AEApi.instance().partHelper().registerNewLayer( "appeng.api.parts.layers.LayerIPipeConnection", "buildcraft.api.transport.IPipeConnection" ); AEApi.instance().registries().externalStorage().addExternalStorageInterface( new BCPipeHandler() ); }