diff --git a/block/networking/BlockCableBus.java b/block/networking/BlockCableBus.java index 27e1c387..f115d4da 100644 --- a/block/networking/BlockCableBus.java +++ b/block/networking/BlockCableBus.java @@ -39,6 +39,7 @@ import appeng.core.Api; import appeng.core.AppEng; import appeng.core.CommonHelper; import appeng.core.features.AEFeature; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IFMP; import appeng.parts.ICableBusContainer; import appeng.parts.NullCableBusContainer; @@ -412,8 +413,8 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection if ( te instanceof TileCableBus ) out = ((TileCableBus) te).cb; - else if ( AppEng.instance.isIntegrationEnabled( "FMP" ) ) - out = ((IFMP) AppEng.instance.getIntegration( "FMP" )).getCableContainer( te ); + else if ( AppEng.instance.isIntegrationEnabled( IntegrationType.FMP ) ) + out = ((IFMP) AppEng.instance.getIntegration( IntegrationType.FMP )).getCableContainer( te ); return out == null ? nullCB : out; } diff --git a/block/solids/BlockSkyStone.java b/block/solids/BlockSkyStone.java index 8f4e9aac..afc1103b 100644 --- a/block/solids/BlockSkyStone.java +++ b/block/solids/BlockSkyStone.java @@ -25,6 +25,7 @@ import appeng.core.WorldSettings; import appeng.core.features.AEFeature; import appeng.helpers.LocationRotation; import appeng.helpers.NullRotation; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IRB; import appeng.util.Platform; import cpw.mods.fml.common.eventhandler.SubscribeEvent; @@ -94,12 +95,12 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock @Override public IOrientable getOrientable(final IBlockAccess w, final int x, final int y, final int z) { - if ( AppEng.instance.isIntegrationEnabled( "RB" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.RB ) ) { TileEntity te = w.getTileEntity( x, y, z ); if ( te != null ) { - IOrientable out = ((IRB) AppEng.instance.getIntegration( "RB" )).getOrientable( te ); + IOrientable out = ((IRB) AppEng.instance.getIntegration( IntegrationType.RB )).getOrientable( te ); if ( out != null ) return out; } diff --git a/client/gui/AEBaseGui.java b/client/gui/AEBaseGui.java index cd30a5c0..8d5e2ed0 100644 --- a/client/gui/AEBaseGui.java +++ b/client/gui/AEBaseGui.java @@ -48,6 +48,7 @@ import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketInventoryAction; import appeng.core.sync.packets.PacketSwapSlots; import appeng.helpers.InventoryAction; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.INEI; import appeng.util.Platform; import cpw.mods.fml.common.ObfuscationReflectionHelper; @@ -684,9 +685,9 @@ public abstract class AEBaseGui extends GuiContainer private RenderItem setItemRender(RenderItem aeri2) { - if ( AppEng.instance.isIntegrationEnabled( "NEI" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.NEI ) ) { - return ((INEI) AppEng.instance.getIntegration( "NEI" )).setItemRender( aeri2 ); + return ((INEI) AppEng.instance.getIntegration( IntegrationType.NEI )).setItemRender( aeri2 ); } else { diff --git a/client/gui/implementations/GuiMEMonitorable.java b/client/gui/implementations/GuiMEMonitorable.java index 3e7557df..5df21680 100644 --- a/client/gui/implementations/GuiMEMonitorable.java +++ b/client/gui/implementations/GuiMEMonitorable.java @@ -38,6 +38,7 @@ import appeng.core.localization.GuiText; import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketValueConfig; import appeng.helpers.WirelessTerminalGuiObject; +import appeng.integration.IntegrationType; import appeng.parts.reporting.PartTerminal; import appeng.tile.misc.TileSecurity; import appeng.util.IConfigManagerHost; @@ -148,7 +149,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi maxRows = getMaxRows(); perRow = AEConfig.instance.getConfigManager().getSetting( Settings.TERMINAL_STYLE ) != TerminalStyle.FULL ? 9 : 9 + ((width - standardSize) / 18); - boolean hasNEI = AppEng.instance.isIntegrationEnabled( "NEI" ); + boolean hasNEI = AppEng.instance.isIntegrationEnabled( IntegrationType.NEI ); int NEI = hasNEI ? 0 : 0; int top = hasNEI ? 22 : 0; diff --git a/client/gui/implementations/GuiSkyChest.java b/client/gui/implementations/GuiSkyChest.java index 5e3c0cc2..f37f8a3c 100644 --- a/client/gui/implementations/GuiSkyChest.java +++ b/client/gui/implementations/GuiSkyChest.java @@ -5,6 +5,7 @@ import appeng.client.gui.AEBaseGui; import appeng.container.implementations.ContainerSkyChest; import appeng.core.AppEng; import appeng.core.localization.GuiText; +import appeng.integration.IntegrationType; import appeng.tile.storage.TileSkyChest; public class GuiSkyChest extends AEBaseGui @@ -32,7 +33,7 @@ public class GuiSkyChest extends AEBaseGui @Override protected boolean enableSpaceClicking() { - return !AppEng.instance.isIntegrationEnabled( "InvTweaks" ); + return !AppEng.instance.isIntegrationEnabled( IntegrationType.InvTweaks ); } } diff --git a/core/AppEng.java b/core/AppEng.java index 67e698d8..e7edcd2d 100644 --- a/core/AppEng.java +++ b/core/AppEng.java @@ -18,6 +18,7 @@ import appeng.core.sync.GuiBridge; import appeng.core.sync.network.NetworkHandler; import appeng.hooks.TickHandler; import appeng.integration.IntegrationRegistry; +import appeng.integration.IntegrationType; import appeng.server.AECommand; import appeng.services.Profiler; import appeng.services.VersionChecker; @@ -85,12 +86,12 @@ public class AppEng FMLCommonHandler.instance().registerCrashCallable( new CrashEnhancement( CrashInfo.MOD_VERSION ) ); } - public boolean isIntegrationEnabled(String Name) + public boolean isIntegrationEnabled( IntegrationType Name ) { return IntegrationRegistry.instance.isEnabled( Name ); } - public Object getIntegration(String Name) + public Object getIntegration( IntegrationType Name ) { return IntegrationRegistry.instance.getInstance( Name ); } diff --git a/core/Registration.java b/core/Registration.java index 1b88de16..19585ce2 100644 --- a/core/Registration.java +++ b/core/Registration.java @@ -98,6 +98,7 @@ import appeng.hooks.AETrading; import appeng.hooks.MeteoriteWorldGen; import appeng.hooks.QuartzWorldGen; import appeng.hooks.TickHandler; +import appeng.integration.IntegrationType; import appeng.items.materials.ItemMultiMaterial; import appeng.items.materials.MaterialType; import appeng.items.misc.ItemCrystalSeed; @@ -511,22 +512,22 @@ public class Registration ph.registerNewLayer( "appeng.parts.layers.LayerIFluidHandler", "net.minecraftforge.fluids.IFluidHandler" ); ph.registerNewLayer( "appeng.parts.layers.LayerITileStorageMonitorable", "appeng.api.implementations.tiles.ITileStorageMonitorable" ); - if ( AppEng.instance.isIntegrationEnabled( "IC2" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.IC2 ) ) { ph.registerNewLayer( "appeng.parts.layers.LayerIEnergySink", "ic2.api.energy.tile.IEnergySink" ); ph.registerNewLayer( "appeng.parts.layers.LayerIEnergySource", "ic2.api.energy.tile.IEnergySource" ); } - if ( AppEng.instance.isIntegrationEnabled( "MJ5" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.MJ5 ) ) { ph.registerNewLayer( "appeng.parts.layers.LayerIPowerEmitter", "buildcraft.api.power.IPowerEmitter" ); ph.registerNewLayer( "appeng.parts.layers.LayerIPowerReceptor", "buildcraft.api.power.IPowerReceptor" ); } - if ( AppEng.instance.isIntegrationEnabled( "MJ6" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.MJ6 ) ) ph.registerNewLayer( "appeng.parts.layers.LayerIBatteryProvider", "buildcraft.api.mj.IBatteryProvider" ); - if ( AppEng.instance.isIntegrationEnabled( "RF" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.RF ) ) ph.registerNewLayer( "appeng.parts.layers.LayerIEnergyHandler", "cofh.api.energy.IEnergyHandler" ); FMLCommonHandler.instance().bus().register( TickHandler.instance ); diff --git a/core/api/ApiPart.java b/core/api/ApiPart.java index 25db2945..4e088e2c 100644 --- a/core/api/ApiPart.java +++ b/core/api/ApiPart.java @@ -29,6 +29,7 @@ import appeng.api.parts.LayerBase; import appeng.client.render.BusRenderer; import appeng.core.AELog; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IFMP; import appeng.parts.PartPlacement; import appeng.tile.networking.TileCableBus; @@ -52,8 +53,8 @@ public class ApiPart implements IPartHelper { for (Class layerInterface : interfaces2Layer.keySet()) { - if ( AppEng.instance.isIntegrationEnabled( "FMP" ) ) - ((IFMP) AppEng.instance.getIntegration( "FMP" )).registerPassThru( layerInterface ); + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.FMP ) ) + ((IFMP) AppEng.instance.getIntegration( IntegrationType.FMP )).registerPassThru( layerInterface ); } } diff --git a/core/sync/packets/PacketMultiPart.java b/core/sync/packets/PacketMultiPart.java index fad705e4..528f7fcd 100644 --- a/core/sync/packets/PacketMultiPart.java +++ b/core/sync/packets/PacketMultiPart.java @@ -11,6 +11,7 @@ import net.minecraftforge.common.MinecraftForge; import appeng.core.AppEng; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IFMP; public class PacketMultiPart extends AppEngPacket @@ -24,7 +25,7 @@ public class PacketMultiPart extends AppEngPacket @Override public void serverPacketData(INetworkInfo manager, AppEngPacket packet, EntityPlayer player) { - IFMP fmp = (IFMP) AppEng.instance.getIntegration( "FMP" ); + IFMP fmp = (IFMP) AppEng.instance.getIntegration( IntegrationType.FMP ); if ( fmp != null ) { EntityPlayerMP sender = (EntityPlayerMP) player; diff --git a/facade/FacadeContainer.java b/facade/FacadeContainer.java index 3be869e2..ffdea422 100644 --- a/facade/FacadeContainer.java +++ b/facade/FacadeContainer.java @@ -14,6 +14,7 @@ import appeng.api.parts.IFacadeContainer; import appeng.api.parts.IFacadePart; import appeng.api.parts.IPartHost; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; import appeng.items.parts.ItemFacade; @@ -63,9 +64,9 @@ public class FacadeContainer implements IFacadeContainer boolean isBC = ids[0] < 0; ids[0] = Math.abs( ids[0] ); - if ( isBC && AppEng.instance.isIntegrationEnabled( "BC" ) ) + if ( isBC && AppEng.instance.isIntegrationEnabled( IntegrationType.BC ) ) { - IBC bc = (IBC) AppEng.instance.getIntegration( "BC" ); + IBC bc = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); changed = changed || facades[x] == null; facades[x] = bc.createFacadePart( (Block) Block.blockRegistry.getObjectById( ids[0] ), ids[1], side ); } @@ -107,9 +108,9 @@ public class FacadeContainer implements IFacadeContainer facades[x] = ((IFacadeItem) i).createPartFromItemStack( is, ForgeDirection.getOrientation( x ) ); else { - if ( AppEng.instance.isIntegrationEnabled( "BC" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.BC ) ) { - IBC bc = (IBC) AppEng.instance.getIntegration( "BC" ); + IBC bc = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); if ( bc.isFacade( is ) ) facades[x] = bc.createFacadePart( is, ForgeDirection.getOrientation( x ) ); } diff --git a/facade/FacadePart.java b/facade/FacadePart.java index 54f5ec96..a9fd28ad 100644 --- a/facade/FacadePart.java +++ b/facade/FacadePart.java @@ -25,6 +25,7 @@ import appeng.client.render.BusRenderHelper; import appeng.client.render.RenderBlocksWorkaround; import appeng.core.AELog; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -71,9 +72,9 @@ public class FacadePart implements IFacadePart IFacadeItem fi = (IFacadeItem) facade.getItem(); return fi.getTextureItem( facade ); } - else if ( AppEng.instance.isIntegrationEnabled( "BC" ) ) + else if ( AppEng.instance.isIntegrationEnabled( IntegrationType.BC ) ) { - IBC bc = (IBC) AppEng.instance.getIntegration( "BC" ); + IBC bc = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); return bc.getTextureForFacade( facade ); } return null; @@ -109,7 +110,7 @@ public class FacadePart implements IFacadePart IIcon myIcon = null; if ( isBC() ) { - IBC bc = (IBC) AppEng.instance.getIntegration( "BC" ); + IBC bc = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); myIcon = bc.getFacadeTexture(); } diff --git a/integration/IntegrationNode.java b/integration/IntegrationNode.java index 6532fb1a..b8254d37 100644 --- a/integration/IntegrationNode.java +++ b/integration/IntegrationNode.java @@ -17,13 +17,13 @@ public class IntegrationNode String displayName; String modID; - String shortName; + IntegrationType shortName; String name = null; Class classValue = null; Object instance; IIntegrationModule mod = null; - public IntegrationNode(String dspname, String _modID, String sName, String n) { + public IntegrationNode(String dspname, String _modID, IntegrationType sName, String n) { displayName = dspname; shortName = sName; modID = _modID; diff --git a/integration/IntegrationRegistry.java b/integration/IntegrationRegistry.java index 529a1d65..1f6d2ec0 100644 --- a/integration/IntegrationRegistry.java +++ b/integration/IntegrationRegistry.java @@ -9,18 +9,17 @@ public class IntegrationRegistry { public static IntegrationRegistry instance = null; - private LinkedList modules = new LinkedList(); - public void add(IntegrationSide side, String dspname, String modID, String name) + public void add( IntegrationType type) { - if ( side == IntegrationSide.CLIENT && FMLLaunchHandler.side() == Side.SERVER ) + if ( type.side == IntegrationSide.CLIENT && FMLLaunchHandler.side() == Side.SERVER ) return; - if ( side == IntegrationSide.SERVER && FMLLaunchHandler.side() == Side.CLIENT ) + if ( type.side == IntegrationSide.SERVER && FMLLaunchHandler.side() == Side.CLIENT ) return; - modules.add( new IntegrationNode( dspname, modID, name, "appeng.integration.modules." + name ) ); + modules.add( new IntegrationNode( type.dspName, type.modID, type, "appeng.integration.modules." + type.name() ) ); } public IntegrationRegistry() { @@ -59,17 +58,17 @@ public class IntegrationRegistry return out; } - public boolean isEnabled(String name) + public boolean isEnabled(IntegrationType name) { for (IntegrationNode node : modules) { - if ( node.shortName.equals( name ) ) + if ( node.shortName == name ) return node.isActive(); } - throw new RuntimeException( "invalid integration" ); + return false; } - public Object getInstance(String name) + public Object getInstance(IntegrationType name) { for (IntegrationNode node : modules) { @@ -78,7 +77,7 @@ public class IntegrationRegistry return node.instance; } } - throw new RuntimeException( "invalid integration" ); + throw new RuntimeException( "integration with "+name.name()+" is disabled." ); } } diff --git a/integration/modules/Waila.java b/integration/modules/Waila.java index 12ff7304..20d131c4 100644 --- a/integration/modules/Waila.java +++ b/integration/modules/Waila.java @@ -29,6 +29,7 @@ import appeng.core.AppEng; import appeng.core.localization.GuiText; import appeng.core.localization.WailaText; import appeng.integration.BaseModule; +import appeng.integration.IntegrationType; import appeng.parts.networking.PartCableSmart; import appeng.parts.networking.PartDenseCable; import appeng.tile.misc.TileCharger; @@ -44,7 +45,7 @@ public class Waila extends BaseModule implements IWailaDataProvider, IWailaFMPPr public static void register(IWailaRegistrar registrar) { - Waila w = (Waila) AppEng.instance.getIntegration( "Waila" ); + Waila w = (Waila) AppEng.instance.getIntegration( IntegrationType.Waila ); registrar.registerBodyProvider( w, AEBaseBlock.class ); registrar.registerBodyProvider( w, "ae2_cablebus" ); diff --git a/parts/CableBusContainer.java b/parts/CableBusContainer.java index 9c1d1906..4045de9c 100644 --- a/parts/CableBusContainer.java +++ b/parts/CableBusContainer.java @@ -42,6 +42,7 @@ import appeng.core.AELog; import appeng.core.AppEng; import appeng.facade.FacadeContainer; import appeng.helpers.AEMultiTile; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.ICLApi; import appeng.me.GridConnection; import appeng.util.Platform; @@ -792,8 +793,8 @@ public class CableBusContainer implements AEMultiTile, ICableBusContainer light = Math.max( p.getLightLevel(), light ); } - if ( light > 0 && AppEng.instance.isIntegrationEnabled( "CLApi" ) ) - return ((ICLApi) AppEng.instance.getIntegration( "CLApi" )).colorLight( getColor(), light ); + if ( light > 0 && AppEng.instance.isIntegrationEnabled( IntegrationType.CLApi ) ) + return ((ICLApi) AppEng.instance.getIntegration( IntegrationType.CLApi )).colorLight( getColor(), light ); return light; } diff --git a/parts/PartPlacement.java b/parts/PartPlacement.java index f06cab20..6e26f761 100644 --- a/parts/PartPlacement.java +++ b/parts/PartPlacement.java @@ -31,6 +31,7 @@ import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.packets.PacketClick; import appeng.core.sync.packets.PacketPartPlacement; import appeng.facade.IFacadeItem; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; import appeng.integration.abstraction.IFMP; import appeng.util.LookDirection; @@ -222,8 +223,8 @@ public class PartPlacement } } - if ( host == null && tile != null && AppEng.instance.isIntegrationEnabled( "FMP" ) ) - host = ((IFMP) AppEng.instance.getIntegration( "FMP" )).getOrCreateHost( tile ); + if ( host == null && tile != null && AppEng.instance.isIntegrationEnabled( IntegrationType.FMP ) ) + host = ((IFMP) AppEng.instance.getIntegration( IntegrationType.FMP )).getOrCreateHost( tile ); // if ( held == null ) { @@ -286,8 +287,8 @@ public class PartPlacement if ( tile instanceof IPartHost ) host = (IPartHost) tile; - if ( host == null && tile != null && AppEng.instance.isIntegrationEnabled( "FMP" ) ) - host = ((IFMP) AppEng.instance.getIntegration( "FMP" )).getOrCreateHost( tile ); + if ( host == null && tile != null && AppEng.instance.isIntegrationEnabled( IntegrationType.FMP ) ) + host = ((IFMP) AppEng.instance.getIntegration( IntegrationType.FMP )).getOrCreateHost( tile ); if ( host == null && AEApi.instance().blocks().blockMultiPart.block().canPlaceBlockAt( world, te_x, te_y, te_z ) && ib.placeBlockAt( is, player, world, te_x, te_y, te_z, side.ordinal(), 0.5f, 0.5f, 0.5f, 0 ) ) @@ -335,8 +336,8 @@ public class PartPlacement Block blkID = world.getBlock( te_x, te_y, te_z ); tile = world.getTileEntity( te_x, te_y, te_z ); - if ( tile != null && AppEng.instance.isIntegrationEnabled( "FMP" ) ) - host = ((IFMP) AppEng.instance.getIntegration( "FMP" )).getOrCreateHost( tile ); + if ( tile != null && AppEng.instance.isIntegrationEnabled( IntegrationType.FMP ) ) + host = ((IFMP) AppEng.instance.getIntegration( IntegrationType.FMP )).getOrCreateHost( tile ); if ( (blkID == null || blkID.isReplaceable( world, te_x, te_y, te_z ) || host != null) && offset != ForgeDirection.UNKNOWN ) return place( held, te_x, te_y, te_z, side.getOpposite().ordinal(), player, world, @@ -400,9 +401,9 @@ public class PartPlacement if ( held.getItem() instanceof IFacadeItem ) return ((IFacadeItem) held.getItem()).createPartFromItemStack( held, side ); - if ( AppEng.instance.isIntegrationEnabled( "BC" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.BC ) ) { - IBC bc = (IBC) AppEng.instance.getIntegration( "BC" ); + IBC bc = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); if ( bc.isFacade( held ) ) return bc.createFacadePart( held, side ); } diff --git a/parts/p2p/PartP2PBCPower.java b/parts/p2p/PartP2PBCPower.java index c326f81c..305be359 100644 --- a/parts/p2p/PartP2PBCPower.java +++ b/parts/p2p/PartP2PBCPower.java @@ -15,6 +15,7 @@ import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.core.AppEng; import appeng.core.settings.TickRates; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IMJ5; import appeng.integration.abstraction.IMJ6; import appeng.integration.abstraction.helpers.BaseMJperdition; @@ -49,12 +50,12 @@ public class PartP2PBCPower extends PartP2PTunnel implements IPo public PartP2PBCPower(ItemStack is) { super( is ); - if ( !AppEng.instance.isIntegrationEnabled( "MJ5" ) && !AppEng.instance.isIntegrationEnabled( "MJ6" ) ) + if ( !AppEng.instance.isIntegrationEnabled( IntegrationType.MJ5 ) && !AppEng.instance.isIntegrationEnabled( IntegrationType.MJ6 ) ) throw new RuntimeException( "MJ Not installed!" ); - if ( AppEng.instance.isIntegrationEnabled( "MJ5" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.MJ5 ) ) { - pp = (BaseMJperdition) ((IMJ5) AppEng.instance.getIntegration( "MJ5" )).createPerdition( this ); + pp = (BaseMJperdition) ((IMJ5) AppEng.instance.getIntegration( IntegrationType.MJ5 )).createPerdition( this ); if ( pp != null ) pp.configure( 1, 380, 1.0f / 5.0f, 1000 ); } @@ -158,8 +159,8 @@ public class PartP2PBCPower extends PartP2PTunnel implements IPo IBatteryObject bo = MjAPI.getMjBattery( te, MjAPI.DEFAULT_POWER_FRAMEWORK, side.getOpposite() ); if ( bo != null ) return bo; - if ( AppEng.instance.isIntegrationEnabled( "MJ5" ) ) - return ((IMJ6) AppEng.instance.getIntegration( "MJ6" )).provider( te, side.getOpposite() ); + + return ((IMJ6) AppEng.instance.getIntegration( IntegrationType.MJ6 )).provider( te, side.getOpposite() ); } return null; } diff --git a/parts/p2p/PartP2PIC2Power.java b/parts/p2p/PartP2PIC2Power.java index 4610d135..8b62fdd4 100644 --- a/parts/p2p/PartP2PIC2Power.java +++ b/parts/p2p/PartP2PIC2Power.java @@ -11,6 +11,7 @@ import net.minecraftforge.common.util.ForgeDirection; import appeng.api.config.PowerUnits; import appeng.api.config.TunnelType; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.me.GridAccessException; import appeng.me.cache.helpers.TunnelCollection; import appeng.transformer.annotations.integration.Interface; @@ -32,7 +33,7 @@ public class PartP2PIC2Power extends PartP2PTunnel implements i public PartP2PIC2Power(ItemStack is) { super( is ); - if ( !AppEng.instance.isIntegrationEnabled( "IC2" ) ) + if ( !AppEng.instance.isIntegrationEnabled( IntegrationType.IC2 ) ) throw new RuntimeException( "IC2 Not installed!" ); } diff --git a/parts/p2p/PartP2PItems.java b/parts/p2p/PartP2PItems.java index 9e95d291..bd6ddc84 100644 --- a/parts/p2p/PartP2PItems.java +++ b/parts/p2p/PartP2PItems.java @@ -23,6 +23,7 @@ import appeng.api.networking.ticking.TickRateModulation; import appeng.api.networking.ticking.TickingRequest; import appeng.core.AppEng; import appeng.core.settings.TickRates; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; import appeng.me.GridAccessException; import appeng.me.cache.helpers.TunnelCollection; @@ -70,9 +71,9 @@ public class PartP2PItems extends PartP2PTunnel implements IPipeCo which.add( this ); - if ( AppEng.instance.isIntegrationEnabled( "BC" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.BC ) ) { - IBC buildcraft = (IBC) AppEng.instance.getIntegration( "BC" ); + IBC buildcraft = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); if ( buildcraft != null ) { if ( buildcraft.isPipe( te, side.getOpposite() ) ) diff --git a/parts/p2p/PartP2PRFPower.java b/parts/p2p/PartP2PRFPower.java index 9dad1015..2c5d5766 100644 --- a/parts/p2p/PartP2PRFPower.java +++ b/parts/p2p/PartP2PRFPower.java @@ -11,6 +11,7 @@ import net.minecraftforge.common.util.ForgeDirection; import appeng.api.config.PowerUnits; import appeng.api.config.TunnelType; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.modules.helpers.NullRFHandler; import appeng.me.GridAccessException; import appeng.transformer.annotations.integration.Interface; @@ -37,7 +38,7 @@ public class PartP2PRFPower extends PartP2PTunnel implements cof public PartP2PRFPower(ItemStack is) { super( is ); - if ( !AppEng.instance.isIntegrationEnabled( "RF" ) ) + if ( !AppEng.instance.isIntegrationEnabled( IntegrationType.RF ) ) throw new RuntimeException( "RF Not installed!" ); } diff --git a/recipes/handlers/Crusher.java b/recipes/handlers/Crusher.java index 0e59914d..e1b82b84 100644 --- a/recipes/handlers/Crusher.java +++ b/recipes/handlers/Crusher.java @@ -10,6 +10,7 @@ import appeng.api.recipes.ICraftHandler; import appeng.api.recipes.IIngredient; import appeng.core.AELog; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IRC; import appeng.recipes.RecipeHandler; import appeng.util.Platform; @@ -39,9 +40,9 @@ public class Crusher implements ICraftHandler, IWebsiteSeralizer @Override public void register() throws RegistrationError, MissingIngredientError { - if ( AppEng.instance.isIntegrationEnabled( "RC" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.RC ) ) { - IRC rc = (IRC) AppEng.instance.getIntegration( "RC" ); + IRC rc = (IRC) AppEng.instance.getIntegration( IntegrationType.RC ); for (ItemStack is : pro_input.getItemStackSet()) { try diff --git a/recipes/handlers/GrindFZ.java b/recipes/handlers/GrindFZ.java index 8bf8f0ca..243a1edc 100644 --- a/recipes/handlers/GrindFZ.java +++ b/recipes/handlers/GrindFZ.java @@ -10,6 +10,7 @@ import appeng.api.recipes.ICraftHandler; import appeng.api.recipes.IIngredient; import appeng.core.AELog; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IFZ; import appeng.recipes.RecipeHandler; import appeng.util.Platform; @@ -39,9 +40,9 @@ public class GrindFZ implements ICraftHandler, IWebsiteSeralizer @Override public void register() throws RegistrationError, MissingIngredientError { - if ( AppEng.instance.isIntegrationEnabled( "FZ" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.FZ ) ) { - IFZ fz = (IFZ) AppEng.instance.getIntegration( "FZ" ); + IFZ fz = (IFZ) AppEng.instance.getIntegration( IntegrationType.FZ ); for (ItemStack is : pro_input.getItemStackSet()) { try diff --git a/recipes/handlers/Macerator.java b/recipes/handlers/Macerator.java index d66b480d..6f84a4a6 100644 --- a/recipes/handlers/Macerator.java +++ b/recipes/handlers/Macerator.java @@ -10,6 +10,7 @@ import appeng.api.recipes.ICraftHandler; import appeng.api.recipes.IIngredient; import appeng.core.AELog; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IIC2; import appeng.recipes.RecipeHandler; import appeng.util.Platform; @@ -39,9 +40,9 @@ public class Macerator implements ICraftHandler, IWebsiteSeralizer @Override public void register() throws RegistrationError, MissingIngredientError { - if ( AppEng.instance.isIntegrationEnabled( "IC2" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.IC2 ) ) { - IIC2 ic2 = (IIC2) AppEng.instance.getIntegration( "IC2" ); + IIC2 ic2 = (IIC2) AppEng.instance.getIntegration( IntegrationType.IC2 ); for (ItemStack is : pro_input.getItemStackSet()) { try diff --git a/tile/powersink/IC2.java b/tile/powersink/IC2.java index 20044040..3a3ae89f 100644 --- a/tile/powersink/IC2.java +++ b/tile/powersink/IC2.java @@ -8,6 +8,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.config.PowerUnits; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IIC2; import appeng.transformer.annotations.integration.Interface; import appeng.util.Platform; @@ -77,9 +78,9 @@ public abstract class IC2 extends MinecraftJoules6 implements IEnergySink final private void addToENet() { - if ( AppEng.instance.isIntegrationEnabled( "IC2" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.IC2 ) ) { - IIC2 ic2Integration = (IIC2) AppEng.instance.getIntegration( "IC2" ); + IIC2 ic2Integration = (IIC2) AppEng.instance.getIntegration( IntegrationType.IC2 ); if ( !isInIC2 && Platform.isServer() && ic2Integration != null ) { ic2Integration.addToEnergyNet( this ); @@ -90,9 +91,9 @@ public abstract class IC2 extends MinecraftJoules6 implements IEnergySink final private void removeFromENet() { - if ( AppEng.instance.isIntegrationEnabled( "IC2" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.IC2 ) ) { - IIC2 ic2Integration = (IIC2) AppEng.instance.getIntegration( "IC2" ); + IIC2 ic2Integration = (IIC2) AppEng.instance.getIntegration( IntegrationType.IC2 ); if ( isInIC2 && Platform.isServer() && ic2Integration != null ) { ic2Integration.removeFromEnergyNet( this ); diff --git a/tile/powersink/MinecraftJoules5.java b/tile/powersink/MinecraftJoules5.java index d16c58f3..c0e3a37a 100644 --- a/tile/powersink/MinecraftJoules5.java +++ b/tile/powersink/MinecraftJoules5.java @@ -4,6 +4,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.config.PowerUnits; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IMJ5; import appeng.integration.abstraction.helpers.BaseMJperdition; import appeng.transformer.annotations.integration.Interface; @@ -24,9 +25,9 @@ public abstract class MinecraftJoules5 extends AERootPoweredTile implements IPow { try { - if ( AppEng.instance.isIntegrationEnabled( "MJ5" ) ) + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.MJ5 ) ) { - IMJ5 mjIntegration = (IMJ5) AppEng.instance.getIntegration( "MJ5" ); + IMJ5 mjIntegration = (IMJ5) AppEng.instance.getIntegration( IntegrationType.MJ5 ); if ( mjIntegration != null ) { addNewHandler( bcPowerWrapper = (BaseMJperdition) mjIntegration.createPerdition( this ) ); diff --git a/transformer/asm/ASMIntegration.java b/transformer/asm/ASMIntegration.java index d8941ab0..b5bef267 100644 --- a/transformer/asm/ASMIntegration.java +++ b/transformer/asm/ASMIntegration.java @@ -14,7 +14,7 @@ import org.objectweb.asm.tree.ClassNode; import org.objectweb.asm.tree.MethodNode; import appeng.integration.IntegrationRegistry; -import appeng.integration.IntegrationSide; +import appeng.integration.IntegrationType; import appeng.transformer.annotations.integration; import cpw.mods.fml.relauncher.FMLRelaunchLog; @@ -29,34 +29,20 @@ public class ASMIntegration implements IClassTransformer * Side, Display Name, ModID ClassPostFix */ - integrationModules.add( IntegrationSide.BOTH, "Rotary Craft", "RotaryCraft", "RotaryCraft" ); - integrationModules.add( IntegrationSide.BOTH, "Industrial Craft 2", "IC2", "IC2" ); - integrationModules.add( IntegrationSide.BOTH, "Railcraft", "Railcraft", "RC" ); - // integrationModules.add( IntegrationSide.BOTH, "Thermal Expansion", "ThermalExpansion", "TE" ); - // integrationModules.add( IntegrationSide.BOTH, "Mystcraft", "Mystcraft", "Mystcraft" ); - integrationModules.add( IntegrationSide.BOTH, "BuildCraft", "BuildCraft|Silicon", "BC" ); - integrationModules.add( IntegrationSide.BOTH, "BuildCraft5 Power", null, "MJ5" ); - integrationModules.add( IntegrationSide.BOTH, "BuildCraft6 Power", null, "MJ6" ); + for ( IntegrationType type : IntegrationType.values() ) + { + integrationModules.add( type ); + } + + // integrationModules.add( IntegrationSide.BOTH, "Thermal Expansion", "ThermalExpansion", IntegrationType.TE ); + // integrationModules.add( IntegrationSide.BOTH, "Mystcraft", "Mystcraft", IntegrationType.Mystcraft ); + // integrationModules.add( IntegrationSide.BOTH, "Greg Tech", "gregtech_addon", IntegrationType.GT ); + // integrationModules.add( IntegrationSide.BOTH, "Universal Electricity", null, IntegrationType.UE ); + // integrationModules.add( IntegrationSide.BOTH, "Logistics Pipes", "LogisticsPipes|Main", IntegrationType.LP ); + // integrationModules.add( IntegrationSide.BOTH, "Better Storage", IntegrationType.betterstorage ); + // integrationModules.add( IntegrationSide.BOTH, "Forestry", "Forestry", IntegrationType.Forestry ); + // integrationModules.add( IntegrationSide.BOTH, "Mekanism", "Mekanism", IntegrationType.Mekanism ); - integrationModules.add( IntegrationSide.BOTH, "RedstoneFlux Power - Tiles", null, "RF" ); - integrationModules.add( IntegrationSide.BOTH, "RedstoneFlux Power - Items", null, "RFItem" ); - - // integrationModules.add( IntegrationSide.BOTH, "Greg Tech", "gregtech_addon", "GT" ); - // integrationModules.add( IntegrationSide.BOTH, "Universal Electricity", null, "UE" ); - // integrationModules.add( IntegrationSide.BOTH, "Logistics Pipes", "LogisticsPipes|Main", "LP" ); - integrationModules.add( IntegrationSide.BOTH, "Mine Factory Reloaded", "MineFactoryReloaded", "MFR" ); - integrationModules.add( IntegrationSide.BOTH, "Deep Storage Unit", null, "DSU" ); - // integrationModules.add( IntegrationSide.BOTH, "Better Storage", "betterstorage" ); - integrationModules.add( IntegrationSide.BOTH, "Factorization", "factorization", "FZ" ); - // integrationModules.add( IntegrationSide.BOTH, "Forestry", "Forestry", "Forestry" ); - // integrationModules.add( IntegrationSide.BOTH, "Mekanism", "Mekanism", "Mekanism" ); - integrationModules.add( IntegrationSide.CLIENT, "Waila", "Waila", "Waila" ); - integrationModules.add( IntegrationSide.BOTH, "Colored Lights Core", "coloredlightscore", "CLApi" ); - integrationModules.add( IntegrationSide.BOTH, "Rotatable Blocks", "RotatableBlocks", "RB" ); - integrationModules.add( IntegrationSide.CLIENT, "Inventory Tweaks", "inventorytweaks", "InvTweaks" ); - integrationModules.add( IntegrationSide.CLIENT, "Not Enough Items", "NotEnoughItems", "NEI" ); - integrationModules.add( IntegrationSide.CLIENT, "Craft Guide", "craftguide", "CraftGuide" ); - integrationModules.add( IntegrationSide.BOTH, "Forge MultiPart", "McMultipart", "FMP" ); } @Override @@ -158,7 +144,8 @@ public class ASMIntegration implements IClassTransformer if ( iName != null ) { - if ( !IntegrationRegistry.instance.isEnabled( iName ) ) + IntegrationType type = IntegrationType.valueOf( iName ); + if ( !IntegrationRegistry.instance.isEnabled( type ) ) { log( "Removing Method " + mn.name + " from " + classNode.name + " because " + iName + " integration is disabled." ); i.remove(); @@ -191,9 +178,11 @@ public class ASMIntegration implements IClassTransformer else if ( an.values.get( 2 ).equals( "iname" ) ) iName = (String) an.values.get( 3 ); + IntegrationType type = IntegrationType.valueOf( iName ); + if ( iName != null && iFace != null ) { - if ( !IntegrationRegistry.instance.isEnabled( iName ) ) + if ( !IntegrationRegistry.instance.isEnabled( type ) ) { log( "Removing Interface " + iFace + " from " + classNode.name + " because " + iName + " integration is disabled." ); classNode.interfaces.remove( iFace.replace( '.', '/' ) ); diff --git a/util/ItemSorters.java b/util/ItemSorters.java index 9d4c5a8f..71936302 100644 --- a/util/ItemSorters.java +++ b/util/ItemSorters.java @@ -5,6 +5,7 @@ import java.util.Comparator; import appeng.api.config.SortDir; import appeng.api.storage.data.IAEItemStack; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IInvTweaks; public class ItemSorters @@ -18,8 +19,8 @@ public class ItemSorters if ( api != null ) return; - if ( AppEng.instance.isIntegrationEnabled( "InvTweaks" ) ) - api = (IInvTweaks) AppEng.instance.getIntegration( "InvTweaks" ); + if ( AppEng.instance.isIntegrationEnabled( IntegrationType.InvTweaks ) ) + api = (IInvTweaks) AppEng.instance.getIntegration( IntegrationType.InvTweaks ); else api = null; } diff --git a/util/Platform.java b/util/Platform.java index 8fcac522..c5944f95 100644 --- a/util/Platform.java +++ b/util/Platform.java @@ -87,6 +87,7 @@ import appeng.core.AppEng; import appeng.core.features.AEFeature; import appeng.core.sync.GuiBridge; import appeng.hooks.TickHandler; +import appeng.integration.IntegrationType; import appeng.me.GridAccessException; import appeng.me.GridNode; import appeng.me.helpers.AENetworkProxy; @@ -236,13 +237,13 @@ public class Platform private static boolean isNotValidSetting(Enum e) { - if ( e == SortOrder.INVTWEAKS && !AppEng.instance.isIntegrationEnabled( "InvTweaks" ) ) + if ( e == SortOrder.INVTWEAKS && !AppEng.instance.isIntegrationEnabled( IntegrationType.InvTweaks ) ) return true; - if ( e == SearchBoxMode.NEI_AUTOSEARCH && !AppEng.instance.isIntegrationEnabled( "NEI" ) ) + if ( e == SearchBoxMode.NEI_AUTOSEARCH && !AppEng.instance.isIntegrationEnabled( IntegrationType.NEI ) ) return true; - if ( e == SearchBoxMode.NEI_MANUAL_SEARCH && !AppEng.instance.isIntegrationEnabled( "NEI" ) ) + if ( e == SearchBoxMode.NEI_MANUAL_SEARCH && !AppEng.instance.isIntegrationEnabled( IntegrationType.NEI ) ) return true; return false; diff --git a/util/inv/AdaptorBCPipe.java b/util/inv/AdaptorBCPipe.java index a7ec5af3..5d7ed824 100644 --- a/util/inv/AdaptorBCPipe.java +++ b/util/inv/AdaptorBCPipe.java @@ -7,6 +7,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import appeng.api.config.FuzzyMode; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; import appeng.util.InventoryAdaptor; import appeng.util.iterators.NullIterator; @@ -19,7 +20,7 @@ public class AdaptorBCPipe extends InventoryAdaptor final private ForgeDirection d; public AdaptorBCPipe(TileEntity s, ForgeDirection dd) { - bc = (IBC) AppEng.instance.getIntegration( "BC" ); + bc = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); if ( bc != null ) { if ( bc.isPipe( s, dd ) ) diff --git a/util/inv/WrapperBCPipe.java b/util/inv/WrapperBCPipe.java index b6b481cf..81fc734c 100644 --- a/util/inv/WrapperBCPipe.java +++ b/util/inv/WrapperBCPipe.java @@ -6,6 +6,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import appeng.core.AppEng; +import appeng.integration.IntegrationType; import appeng.integration.abstraction.IBC; public class WrapperBCPipe implements IInventory @@ -16,7 +17,7 @@ public class WrapperBCPipe implements IInventory final private ForgeDirection dir; public WrapperBCPipe(TileEntity te, ForgeDirection d) { - bc = (IBC) AppEng.instance.getIntegration( "BC" ); + bc = (IBC) AppEng.instance.getIntegration( IntegrationType.BC ); ad = te; dir = d; }