Switched from FML Optional to AE Optional, lets me specify more interesting requirements for integration, and lets the config alter the resulting integration setup.

This commit is contained in:
AlgorithmX2
2014-04-06 01:55:24 -05:00
parent 97c06db6ef
commit 5248eeeace
32 changed files with 526 additions and 271 deletions
+6 -6
View File
@@ -33,8 +33,8 @@ import appeng.parts.CableBusContainer;
import appeng.tile.AEBaseTile;
import appeng.tile.events.AETileEventHandler;
import appeng.tile.events.TileEventType;
import appeng.transformer.annotations.integration.Method;
import appeng.util.Platform;
import cpw.mods.fml.common.Optional.Method;
public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomCollision
{
@@ -266,14 +266,14 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl
}
@Override
@Method(modid = "MineFactoryReloaded")
@Method(iname = "MFR")
public RedNetConnectionType getConnectionType(World world, int x, int y, int z, ForgeDirection side)
{
return cb.canConnectRedstone( EnumSet.of( side ) ) ? RedNetConnectionType.CableSingle : RedNetConnectionType.None;
}
@Override
@Method(modid = "MineFactoryReloaded")
@Method(iname = "MFR")
public int[] getOutputValues(World world, int x, int y, int z, ForgeDirection side)
{
// never called!
@@ -281,7 +281,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl
}
@Override
@Method(modid = "MineFactoryReloaded")
@Method(iname = "MFR")
public int getOutputValue(World world, int x, int y, int z, ForgeDirection side, int subnet)
{
// never called!
@@ -289,14 +289,14 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl
}
@Override
@Method(modid = "MineFactoryReloaded")
@Method(iname = "MFR")
public void onInputsChanged(World world, int x, int y, int z, ForgeDirection side, int[] inputValues)
{
// never called!
}
@Override
@Method(modid = "MineFactoryReloaded")
@Method(iname = "MFR")
public void onInputChanged(World world, int x, int y, int z, ForgeDirection side, int inputValue)
{
// never called!
+1 -1
View File
@@ -1,6 +1,6 @@
package appeng.tile.powersink;
public abstract class AEBasePoweredTile extends ThermalExpansion
public abstract class AEBasePoweredTile extends RedstoneFlux
{
}
+3 -3
View File
@@ -9,11 +9,11 @@ import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.config.PowerUnits;
import appeng.core.AppEng;
import appeng.integration.abstraction.IIC2;
import appeng.transformer.annotations.integration.Interface;
import appeng.util.Platform;
import cpw.mods.fml.common.Optional.Interface;
@Interface(modid = "IC2", iface = "ic2.api.energy.tile.IEnergySink")
public abstract class IC2 extends BuildCraft implements IEnergySink
@Interface(iname = "IC2", iface = "ic2.api.energy.tile.IEnergySink")
public abstract class IC2 extends MinecraftJoules implements IEnergySink
{
boolean isInIC2 = false;
@@ -1,71 +1,71 @@
package appeng.tile.powersink;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.config.PowerUnits;
import appeng.core.AppEng;
import appeng.integration.abstraction.IMJ;
import appeng.integration.abstraction.helpers.BaseMJperdition;
import appeng.util.Platform;
import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerHandler;
import buildcraft.api.power.PowerHandler.PowerReceiver;
import cpw.mods.fml.common.Optional.Interface;
import cpw.mods.fml.common.Optional.Method;
@Interface(modid = "BuildCraftAPI|power", iface = "buildcraft.api.power.IPowerReceptor")
public abstract class BuildCraft extends AERootPoweredTile implements IPowerReceptor
{
BaseMJperdition bcPowerWrapper;
public BuildCraft() {
if ( Platform.isServer() )
{
try
{
if ( AppEng.instance.isIntegrationEnabled( "MJ" ) )
{
IMJ mjIntegration = (IMJ) AppEng.instance.getIntegration( "MJ" );
if ( mjIntegration != null )
{
addNewHandler( bcPowerWrapper = mjIntegration.createPerdition( this ) );
if ( bcPowerWrapper != null )
bcPowerWrapper.configure( 1, 380, 1.0f / 5.0f, 1000 );
}
}
}
catch (Throwable t)
{
// ignore.. no bc?
}
}
}
@Override
@Method(modid = "BuildCraftAPI|power")
final public PowerReceiver getPowerReceiver(ForgeDirection side)
{
if ( internalCanAcceptPower && getPowerSides().contains( side ) && bcPowerWrapper != null )
return bcPowerWrapper.getPowerReceiver();
return null;
}
@Override
@Method(modid = "BuildCraftAPI|power")
final public void doWork(PowerHandler workProvider)
{
float requred = (float) getExternalPowerDemand( PowerUnits.MJ );
double failed = injectExternalPower( PowerUnits.MJ, bcPowerWrapper.useEnergy( 0.0f, requred, true ) );
if ( failed > 0.01 )
bcPowerWrapper.addEnergy( (float) failed );
}
@Override
@Method(modid = "BuildCraftAPI|power")
final public World getWorld()
{
return worldObj;
}
}
package appeng.tile.powersink;
import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.config.PowerUnits;
import appeng.core.AppEng;
import appeng.integration.abstraction.IMJ;
import appeng.integration.abstraction.helpers.BaseMJperdition;
import appeng.transformer.annotations.integration.Interface;
import appeng.transformer.annotations.integration.Method;
import appeng.util.Platform;
import buildcraft.api.power.IPowerReceptor;
import buildcraft.api.power.PowerHandler;
import buildcraft.api.power.PowerHandler.PowerReceiver;
@Interface(iname = "BC", iface = "buildcraft.api.power.IPowerReceptor")
public abstract class MinecraftJoules extends AERootPoweredTile implements IPowerReceptor
{
BaseMJperdition bcPowerWrapper;
public MinecraftJoules() {
if ( Platform.isServer() )
{
try
{
if ( AppEng.instance.isIntegrationEnabled( "MJ" ) )
{
IMJ mjIntegration = (IMJ) AppEng.instance.getIntegration( "MJ" );
if ( mjIntegration != null )
{
addNewHandler( bcPowerWrapper = (BaseMJperdition) mjIntegration.createPerdition( this ) );
if ( bcPowerWrapper != null )
bcPowerWrapper.configure( 1, 380, 1.0f / 5.0f, 1000 );
}
}
}
catch (Throwable t)
{
// ignore.. no bc?
}
}
}
@Override
@Method(iname = "BC")
final public PowerReceiver getPowerReceiver(ForgeDirection side)
{
if ( internalCanAcceptPower && getPowerSides().contains( side ) && bcPowerWrapper != null )
return bcPowerWrapper.getPowerReceiver();
return null;
}
@Override
@Method(iname = "BC")
final public void doWork(PowerHandler workProvider)
{
float requred = (float) getExternalPowerDemand( PowerUnits.MJ );
double failed = injectExternalPower( PowerUnits.MJ, bcPowerWrapper.useEnergy( 0.0f, requred, true ) );
if ( failed > 0.01 )
bcPowerWrapper.addEnergy( (float) failed );
}
@Override
@Method(iname = "BC")
final public World getWorld()
{
return worldObj;
}
}
@@ -2,11 +2,11 @@ package appeng.tile.powersink;
import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.config.PowerUnits;
import appeng.transformer.annotations.integration.Interface;
import cofh.api.energy.IEnergyHandler;
import cpw.mods.fml.common.Optional.Interface;
@Interface(modid = "ThermalExpansion", iface = "cofh.api.energy.IEnergyHandler")
public abstract class ThermalExpansion extends RotaryCraft implements IEnergyHandler
@Interface(iname = "RF", iface = "cofh.api.energy.IEnergyHandler")
public abstract class RedstoneFlux extends RotaryCraft implements IEnergyHandler
{
@Override
+2 -2
View File
@@ -5,10 +5,10 @@ import Reika.RotaryCraft.API.ShaftPowerReceiver;
import appeng.api.config.PowerUnits;
import appeng.tile.events.AETileEventHandler;
import appeng.tile.events.TileEventType;
import appeng.transformer.annotations.integration.Interface;
import appeng.util.Platform;
import cpw.mods.fml.common.Optional.Interface;
@Interface(modid = "RotaryCraft", iface = "Reika.RotaryCraft.API.ShaftPowerReceiver")
@Interface(iname = "RotaryCraft", iface = "Reika.RotaryCraft.API.ShaftPowerReceiver")
public abstract class RotaryCraft extends IC2 implements ShaftPowerReceiver
{