diff --git a/src/main/java/appeng/capabilities/Capabilities.java b/src/main/java/appeng/capabilities/Capabilities.java index 095795572..6097658ee 100644 --- a/src/main/java/appeng/capabilities/Capabilities.java +++ b/src/main/java/appeng/capabilities/Capabilities.java @@ -26,8 +26,11 @@ import net.minecraft.util.EnumFacing; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.capabilities.CapabilityInject; import net.minecraftforge.common.capabilities.CapabilityManager; +import net.minecraftforge.energy.IEnergyStorage; import appeng.api.storage.IStorageMonitorableAccessor; +import appeng.integration.IntegrationRegistry; +import appeng.integration.IntegrationType; /** @@ -40,15 +43,14 @@ public final class Capabilities { } - @CapabilityInject( IStorageMonitorableAccessor.class ) public static Capability STORAGE_MONITORABLE_ACCESSOR; - @CapabilityInject( ITeslaConsumer.class ) public static Capability TESLA_CONSUMER; - @CapabilityInject( ITeslaHolder.class ) public static Capability TESLA_HOLDER; + public static Capability FORGE_ENERGY; + /** * Register AE2 provided capabilities. */ @@ -57,6 +59,36 @@ public final class Capabilities CapabilityManager.INSTANCE.register( IStorageMonitorableAccessor.class, createNullStorage(), NullMENetworkAccessor::new ); } + @CapabilityInject( IStorageMonitorableAccessor.class ) + private static void capIStorageMonitorableAccessorRegistered( Capability cap ) + { + STORAGE_MONITORABLE_ACCESSOR = cap; + } + + @CapabilityInject( ITeslaConsumer.class ) + private static void capITeslaConsumerRegistered( Capability cap ) + { + if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.TESLA ) ) + { + TESLA_CONSUMER = cap; + } + } + + @CapabilityInject( ITeslaHolder.class ) + private static void capITeslaHolderRegistered( Capability cap ) + { + if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.TESLA ) ) + { + TESLA_HOLDER = cap; + } + } + + @CapabilityInject( IEnergyStorage.class ) + private static void capIEnergyStorageRegistered( Capability cap ) + { + FORGE_ENERGY = cap; + } + // Create a storage implementation that does not do anything private static Capability.IStorage createNullStorage() { diff --git a/src/main/java/appeng/core/AEConfig.java b/src/main/java/appeng/core/AEConfig.java index c720adb4c..9f94d9d95 100644 --- a/src/main/java/appeng/core/AEConfig.java +++ b/src/main/java/appeng/core/AEConfig.java @@ -146,7 +146,7 @@ public final class AEConfig extends Configuration implements IConfigurableObject MinecraftForge.EVENT_BUS.register( this ); PowerUnits.EU.conversionRatio = this.get( "PowerRatios", "IC2", DEFAULT_IC2_EXCHANGE ).getDouble( DEFAULT_IC2_EXCHANGE ); - PowerUnits.RF.conversionRatio = this.get( "PowerRatios", "Forge Energy", DEFAULT_RF_EXCHANGE ).getDouble( DEFAULT_RF_EXCHANGE ); + PowerUnits.RF.conversionRatio = this.get( "PowerRatios", "ForgeEnergy", DEFAULT_RF_EXCHANGE ).getDouble( DEFAULT_RF_EXCHANGE ); final double usageEffective = this.get( "PowerRatios", "UsageMultiplier", 1.0 ).getDouble( 1.0 ); PowerMultiplier.CONFIG.multiplier = Math.max( 0.01, usageEffective ); diff --git a/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java b/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java index 5abada2be..ee2f47eb4 100644 --- a/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java +++ b/src/main/java/appeng/core/features/registries/P2PTunnelRegistry.java @@ -41,6 +41,7 @@ import appeng.api.definitions.IItemDefinition; import appeng.api.definitions.IParts; import appeng.api.features.IP2PTunnelRegistry; import appeng.api.util.AEColor; +import appeng.capabilities.Capabilities; import appeng.util.Platform; @@ -244,7 +245,7 @@ public final class P2PTunnelRegistry implements IP2PTunnelRegistry // Next, check if the Item you're holding supports Forge Energy for( EnumFacing face : EnumFacing.VALUES ) { - if( trigger.hasCapability( CapabilityEnergy.ENERGY, face ) ) + if( trigger.hasCapability( Capabilities.FORGE_ENERGY, face ) ) { return TunnelType.FE_POWER; } diff --git a/src/main/java/appeng/integration/IntegrationType.java b/src/main/java/appeng/integration/IntegrationType.java index 9ca3bf946..b37478618 100644 --- a/src/main/java/appeng/integration/IntegrationType.java +++ b/src/main/java/appeng/integration/IntegrationType.java @@ -90,7 +90,9 @@ public enum IntegrationType { return new TheOneProbeModule(); } - }; + }, + + TESLA( IntegrationSide.BOTH, "Tesla", "tesla" ); public final IntegrationSide side; public final String dspName; diff --git a/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java b/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java index fa0acd31c..61226cc3b 100644 --- a/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java +++ b/src/main/java/appeng/items/tools/powered/powersink/PoweredItemCapabilities.java @@ -64,14 +64,14 @@ class PoweredItemCapabilities implements ICapabilityProvider, IEnergyStorage @Override public boolean hasCapability( Capability capability, @Nullable EnumFacing facing ) { - return capability == CapabilityEnergy.ENERGY || capability == Capabilities.TESLA_CONSUMER || capability == Capabilities.TESLA_HOLDER; + return capability == Capabilities.FORGE_ENERGY || capability == Capabilities.TESLA_CONSUMER || capability == Capabilities.TESLA_HOLDER; } @SuppressWarnings( "unchecked" ) @Override public T getCapability( Capability capability, @Nullable EnumFacing facing ) { - if( capability == CapabilityEnergy.ENERGY ) + if( capability == Capabilities.FORGE_ENERGY ) { return (T) this; } diff --git a/src/main/java/appeng/parts/p2p/PartP2PFEPower.java b/src/main/java/appeng/parts/p2p/PartP2PFEPower.java index 488fdc6fa..b7201a310 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PFEPower.java +++ b/src/main/java/appeng/parts/p2p/PartP2PFEPower.java @@ -35,6 +35,7 @@ import net.minecraftforge.energy.IEnergyStorage; import appeng.api.config.PowerUnits; import appeng.api.parts.IPartModel; +import appeng.capabilities.Capabilities; import appeng.items.parts.PartModels; import appeng.me.GridAccessException; import appeng.util.Platform; @@ -153,8 +154,8 @@ public class PartP2PFEPower extends PartP2PTunnel implements IEn TileEntity self = this.getTile(); TileEntity te = self.getWorld().getTileEntity( new BlockPos( self.getPos().getX() + this.getSide().xOffset, self.getPos() .getY() + this.getSide().yOffset, self.getPos().getZ() + this.getSide().zOffset ) ); - this.outputTarget = te.hasCapability( CapabilityEnergy.ENERGY, this.getSide().getOpposite().getFacing() ) ? te - .getCapability( CapabilityEnergy.ENERGY, this.getSide().getOpposite().getFacing() ) : null; + this.outputTarget = te.hasCapability( Capabilities.FORGE_ENERGY, this.getSide().getOpposite().getFacing() ) ? te + .getCapability( Capabilities.FORGE_ENERGY, this.getSide().getOpposite().getFacing() ) : null; this.cachedTarget = true; } @@ -233,7 +234,7 @@ public class PartP2PFEPower extends PartP2PTunnel implements IEn @Override public boolean hasCapability( @Nonnull Capability capability ) { - if( capability == CapabilityEnergy.ENERGY ) + if( capability == Capabilities.FORGE_ENERGY ) { return true; } @@ -245,7 +246,7 @@ public class PartP2PFEPower extends PartP2PTunnel implements IEn @Override public T getCapability( @Nonnull Capability capability ) { - if( capability == CapabilityEnergy.ENERGY ) + if( capability == Capabilities.FORGE_ENERGY ) { return (T) this; } diff --git a/src/main/java/appeng/tile/powersink/AERootPoweredTile.java b/src/main/java/appeng/tile/powersink/AERootPoweredTile.java index 74526eed2..fee98fac0 100644 --- a/src/main/java/appeng/tile/powersink/AERootPoweredTile.java +++ b/src/main/java/appeng/tile/powersink/AERootPoweredTile.java @@ -284,7 +284,7 @@ public abstract class AERootPoweredTile extends AEBaseInvTile implements IAEPowe @Override public boolean hasCapability( Capability capability, EnumFacing facing ) { - if( capability == CapabilityEnergy.ENERGY ) + if( capability == Capabilities.FORGE_ENERGY ) { if( this.getPowerSides().contains( facing ) ) { @@ -306,7 +306,7 @@ public abstract class AERootPoweredTile extends AEBaseInvTile implements IAEPowe @Override public T getCapability( Capability capability, @Nullable EnumFacing facing ) { - if( capability == CapabilityEnergy.ENERGY ) + if( capability == Capabilities.FORGE_ENERGY ) { if( this.getPowerSides().contains( facing ) ) {