Auto Reflection Based TileEvents.
This commit is contained in:
@@ -11,7 +11,7 @@ import appeng.api.config.PowerUnits;
|
||||
import appeng.api.networking.energy.IAEPowerStorage;
|
||||
import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType;
|
||||
import appeng.tile.AEBaseInvTile;
|
||||
import appeng.tile.events.AETileEventHandler;
|
||||
import appeng.tile.TileEvent;
|
||||
import appeng.tile.events.TileEventType;
|
||||
|
||||
public abstract class AERootPoweredTile extends AEBaseInvTile implements IAEPowerStorage
|
||||
@@ -40,29 +40,16 @@ public abstract class AERootPoweredTile extends AEBaseInvTile implements IAEPowe
|
||||
return internalPowerSides.clone();
|
||||
}
|
||||
|
||||
private class AEPoweredRootHandler extends AETileEventHandler
|
||||
@TileEvent(TileEventType.WORLD_NBT_WRITE)
|
||||
public void writeToNBT_AERootPoweredTile(NBTTagCompound data)
|
||||
{
|
||||
data.setDouble( "internalCurrentPower", internalCurrentPower );
|
||||
}
|
||||
|
||||
public AEPoweredRootHandler() {
|
||||
super( TileEventType.WORLD_NBT );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound data)
|
||||
{
|
||||
data.setDouble( "internalCurrentPower", internalCurrentPower );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound data)
|
||||
{
|
||||
internalCurrentPower = data.getDouble( "internalCurrentPower" );
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
public AERootPoweredTile() {
|
||||
addNewHandler( new AEPoweredRootHandler() );
|
||||
@TileEvent(TileEventType.WORLD_NBT_READ)
|
||||
public void readFromNBT_AERootPoweredTile(NBTTagCompound data)
|
||||
{
|
||||
internalCurrentPower = data.getDouble( "internalCurrentPower" );
|
||||
}
|
||||
|
||||
final protected double getExternalPowerDemand(PowerUnits externalUnit, double maxPowerRequired)
|
||||
|
||||
@@ -7,6 +7,8 @@ import appeng.core.AppEng;
|
||||
import appeng.integration.IntegrationType;
|
||||
import appeng.integration.abstraction.IMJ5;
|
||||
import appeng.integration.abstraction.helpers.BaseMJperdition;
|
||||
import appeng.tile.TileEvent;
|
||||
import appeng.tile.events.TileEventType;
|
||||
import appeng.transformer.annotations.integration.Interface;
|
||||
import appeng.transformer.annotations.integration.Method;
|
||||
import appeng.util.Platform;
|
||||
@@ -20,6 +22,14 @@ public abstract class MinecraftJoules5 extends AERootPoweredTile implements IPow
|
||||
|
||||
BaseMJperdition bcPowerWrapper;
|
||||
|
||||
@Method(iname = "MJ5")
|
||||
@TileEvent(TileEventType.TICK)
|
||||
public void Tick_MinecraftJoules5()
|
||||
{
|
||||
if ( bcPowerWrapper != null )
|
||||
bcPowerWrapper.Tick();
|
||||
}
|
||||
|
||||
public MinecraftJoules5() {
|
||||
if ( Platform.isServer() )
|
||||
{
|
||||
@@ -30,7 +40,7 @@ public abstract class MinecraftJoules5 extends AERootPoweredTile implements IPow
|
||||
IMJ5 mjIntegration = (IMJ5) AppEng.instance.getIntegration( IntegrationType.MJ5 );
|
||||
if ( mjIntegration != null )
|
||||
{
|
||||
addNewHandler( bcPowerWrapper = (BaseMJperdition) mjIntegration.createPerdition( this ) );
|
||||
bcPowerWrapper = (BaseMJperdition) mjIntegration.createPerdition( this );
|
||||
if ( bcPowerWrapper != null )
|
||||
bcPowerWrapper.configure( 1, 380, 1.0f / 5.0f, 1000 );
|
||||
}
|
||||
|
||||
@@ -3,9 +3,10 @@ package appeng.tile.powersink;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import Reika.RotaryCraft.API.ShaftPowerReceiver;
|
||||
import appeng.api.config.PowerUnits;
|
||||
import appeng.tile.events.AETileEventHandler;
|
||||
import appeng.tile.TileEvent;
|
||||
import appeng.tile.events.TileEventType;
|
||||
import appeng.transformer.annotations.integration.Interface;
|
||||
import appeng.transformer.annotations.integration.Method;
|
||||
import appeng.util.Platform;
|
||||
|
||||
@Interface(iname = "RotaryCraft", iface = "Reika.RotaryCraft.API.ShaftPowerReceiver")
|
||||
@@ -17,25 +18,12 @@ public abstract class RotaryCraft extends IC2 implements ShaftPowerReceiver
|
||||
private long power = 0;
|
||||
private int alpha = 0;
|
||||
|
||||
class RotaryCraftHandler extends AETileEventHandler
|
||||
@TileEvent(TileEventType.TICK)
|
||||
@Method(iname = "RotaryCraft")
|
||||
public void Tick_RotaryCraft()
|
||||
{
|
||||
|
||||
public RotaryCraftHandler() {
|
||||
super( TileEventType.TICK );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void Tick()
|
||||
{
|
||||
if ( power > 0 )
|
||||
injectExternalPower( PowerUnits.WA, power );
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
public RotaryCraft() {
|
||||
if ( Platform.isServer() )
|
||||
addNewHandler( new RotaryCraftHandler() );
|
||||
if ( worldObj != null && !worldObj.isRemote && power > 0 )
|
||||
injectExternalPower( PowerUnits.WA, power );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user