Changed AE Tile Event Stuff.

This commit is contained in:
AlgorithmX2
2014-01-26 00:46:16 -06:00
parent 5a6cd05e20
commit 3a0f3ee792
21 changed files with 74 additions and 49 deletions
+1 -3
View File
@@ -1,7 +1,5 @@
package appeng.tile; package appeng.tile;
import java.util.EnumSet;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ISidedInventory; import net.minecraft.inventory.ISidedInventory;
@@ -16,7 +14,7 @@ public abstract class AEBaseInvTile extends AEBaseTile implements ISidedInventor
{ {
public AEBaseInvTile() { public AEBaseInvTile() {
addNewHandler( new AETileEventHandler( EnumSet.of( TileEventType.WORLD_NBT ) ) { addNewHandler( new AETileEventHandler( TileEventType.WORLD_NBT ) {
@Override @Override
public void readFromNBT(net.minecraft.nbt.NBTTagCompound data) public void readFromNBT(net.minecraft.nbt.NBTTagCompound data)
+4 -2
View File
@@ -14,8 +14,10 @@ public abstract class AETileEventHandler
final EnumSet<TileEventType> supportedEvents; final EnumSet<TileEventType> supportedEvents;
public AETileEventHandler(EnumSet<TileEventType> events) { public AETileEventHandler(TileEventType... events) {
supportedEvents = events; supportedEvents = EnumSet.noneOf( TileEventType.class );
for (TileEventType t : events)
supportedEvents.add( t );
} }
public EnumSet<TileEventType> getSubscribedEvents() public EnumSet<TileEventType> getSubscribedEvents()
+1 -2
View File
@@ -1,7 +1,6 @@
package appeng.tile.grindstone; package appeng.tile.grindstone;
import java.util.Arrays; import java.util.Arrays;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
@@ -29,7 +28,7 @@ public class TileCrank extends AEBaseTile implements ICustomCollision
public int rotation = 0; public int rotation = 0;
public TileCrank() { public TileCrank() {
addNewHandler( new AETileEventHandler( EnumSet.of( TileEventType.NETWORK, TileEventType.TICK ) ) { addNewHandler( new AETileEventHandler( TileEventType.NETWORK, TileEventType.TICK ) {
@Override @Override
public void Tick() public void Tick()
+1 -3
View File
@@ -1,7 +1,5 @@
package appeng.tile.misc; package appeng.tile.misc;
import java.util.EnumSet;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@@ -72,7 +70,7 @@ public class TileCellWorkbench extends AEBaseTile implements IUpgradeableHost, I
{ {
public TileCellWorkbenchHandler() { public TileCellWorkbenchHandler() {
super( EnumSet.of( TileEventType.WORLD_NBT ) ); super( TileEventType.WORLD_NBT );
} }
@Override @Override
+3 -1
View File
@@ -17,6 +17,7 @@ import appeng.api.config.PowerMultiplier;
import appeng.api.config.PowerUnits; import appeng.api.config.PowerUnits;
import appeng.api.implementations.items.IAEItemPowerStorage; import appeng.api.implementations.items.IAEItemPowerStorage;
import appeng.api.implementations.tiles.ICrankable; import appeng.api.implementations.tiles.ICrankable;
import appeng.api.networking.GridFlags;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.util.AECableType; import appeng.api.util.AECableType;
import appeng.me.GridAccessException; import appeng.me.GridAccessException;
@@ -50,7 +51,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable
{ {
public TileChargerHandler() { public TileChargerHandler() {
super( EnumSet.of( TileEventType.TICK, TileEventType.NETWORK ) ); super( TileEventType.TICK, TileEventType.NETWORK );
} }
@Override @Override
@@ -141,6 +142,7 @@ public class TileCharger extends AENetworkPowerTile implements ICrankable
public TileCharger() { public TileCharger() {
gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
gridProxy.setFlags( GridFlags.CANNOT_CARRY );
internalMaxPower = 1500; internalMaxPower = 1500;
gridProxy.setIdlePowerUsage( 0 ); gridProxy.setIdlePowerUsage( 0 );
addNewHandler( new TileChargerHandler() ); addNewHandler( new TileChargerHandler() );
+1 -3
View File
@@ -1,7 +1,5 @@
package appeng.tile.misc; package appeng.tile.misc;
import java.util.EnumSet;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@@ -40,7 +38,7 @@ public class TileCondenser extends AEBaseInvTile implements IAEAppEngInventory,
{ {
public TileCondenserHandler() { public TileCondenserHandler() {
super( EnumSet.of( TileEventType.WORLD_NBT ) ); super( TileEventType.WORLD_NBT );
} }
@Override @Override
+1 -1
View File
@@ -33,7 +33,7 @@ public class TileInscriber extends AENetworkPowerTile
{ {
public TileInscriberHandler() { public TileInscriberHandler() {
super( EnumSet.of( TileEventType.TICK, TileEventType.NETWORK ) ); super( TileEventType.TICK, TileEventType.NETWORK );
} }
@Override @Override
+1 -3
View File
@@ -1,7 +1,5 @@
package appeng.tile.misc; package appeng.tile.misc;
import java.util.EnumSet;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@@ -45,7 +43,7 @@ public class TileInterface extends AENetworkInvTile implements IGridTickable, IS
{ {
public TileInterfaceHandler() { public TileInterfaceHandler() {
super( EnumSet.of( TileEventType.WORLD_NBT ) ); super( TileEventType.WORLD_NBT );
} }
@Override @Override
+3 -2
View File
@@ -3,7 +3,6 @@ package appeng.tile.misc;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.EnumSet;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -11,6 +10,7 @@ import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntityFurnace; import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import appeng.api.config.Actionable; import appeng.api.config.Actionable;
import appeng.api.networking.GridFlags;
import appeng.api.networking.IGridNode; import appeng.api.networking.IGridNode;
import appeng.api.networking.energy.IEnergyGrid; import appeng.api.networking.energy.IEnergyGrid;
import appeng.api.networking.ticking.IGridTickable; import appeng.api.networking.ticking.IGridTickable;
@@ -50,7 +50,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
{ {
public TileVibrationChamberHandler() { public TileVibrationChamberHandler() {
super( EnumSet.of( TileEventType.NETWORK, TileEventType.WORLD_NBT ) ); super( TileEventType.NETWORK, TileEventType.WORLD_NBT );
} }
@Override @Override
@@ -87,6 +87,7 @@ public class TileVibrationChamber extends AENetworkInvTile implements IGridTicka
public TileVibrationChamber() { public TileVibrationChamber() {
gridProxy.setIdlePowerUsage( 0 ); gridProxy.setIdlePowerUsage( 0 );
gridProxy.setFlags( GridFlags.CANNOT_CARRY );
addNewHandler( new TileVibrationChamberHandler() ); addNewHandler( new TileVibrationChamberHandler() );
} }
+1 -1
View File
@@ -42,7 +42,7 @@ public class TileCableBus extends AEBaseTile implements AEMultiTile, ICustomColl
{ {
public CableBusHandler() { public CableBusHandler() {
super( EnumSet.of( TileEventType.NETWORK, TileEventType.WORLD_NBT ) ); super( TileEventType.NETWORK, TileEventType.WORLD_NBT );
} }
@Override @Override
+3 -4
View File
@@ -1,7 +1,5 @@
package appeng.tile.networking; package appeng.tile.networking;
import java.util.EnumSet;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
@@ -32,7 +30,7 @@ public class TileEnergyAcceptor extends AENetworkPowerTile
{ {
public TilePowerRelayHandler() { public TilePowerRelayHandler() {
super( EnumSet.of( TileEventType.TICK ) ); super( TileEventType.TICK );
} }
@Override @Override
@@ -47,7 +45,8 @@ public class TileEnergyAcceptor extends AENetworkPowerTile
if ( powerRequested > 0 ) if ( powerRequested > 0 )
{ {
internalCurrentPower += eg.injectPower( extractAEPower( powerRequested, Actionable.MODULATE, PowerMultiplier.ONE ), Actionable.MODULATE ); internalCurrentPower += eg
.injectPower( extractAEPower( powerRequested, Actionable.MODULATE, PowerMultiplier.ONE ), Actionable.MODULATE );
} }
} }
catch (GridAccessException e) catch (GridAccessException e)
+3 -3
View File
@@ -1,12 +1,11 @@
package appeng.tile.networking; package appeng.tile.networking;
import java.util.EnumSet;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import appeng.api.config.AccessRestriction; import appeng.api.config.AccessRestriction;
import appeng.api.config.Actionable; import appeng.api.config.Actionable;
import appeng.api.config.PowerMultiplier; import appeng.api.config.PowerMultiplier;
import appeng.api.networking.GridFlags;
import appeng.api.networking.energy.IAEPowerStorage; import appeng.api.networking.energy.IAEPowerStorage;
import appeng.api.networking.events.MENetworkPowerStorage; import appeng.api.networking.events.MENetworkPowerStorage;
import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType; import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType;
@@ -51,7 +50,7 @@ public class TileEnergyCell extends AENetworkTile implements IAEPowerStorage
{ {
public TileEnergyCellHandler() { public TileEnergyCellHandler() {
super( EnumSet.of( TileEventType.WORLD_NBT ) ); super( TileEventType.WORLD_NBT );
} }
@Override @Override
@@ -70,6 +69,7 @@ public class TileEnergyCell extends AENetworkTile implements IAEPowerStorage
public TileEnergyCell() { public TileEnergyCell() {
gridProxy.setIdlePowerUsage( 0 ); gridProxy.setIdlePowerUsage( 0 );
gridProxy.setFlags( GridFlags.CANNOT_CARRY );
addNewHandler( new TileEnergyCellHandler() ); addNewHandler( new TileEnergyCellHandler() );
} }
+1 -2
View File
@@ -3,7 +3,6 @@ package appeng.tile.networking;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.EnumSet;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -54,7 +53,7 @@ public class TileWireless extends AENetworkInvTile
{ {
public TileWirelessHandler() { public TileWirelessHandler() {
super( EnumSet.of( TileEventType.NETWORK ) ); super( TileEventType.NETWORK );
} }
@Override @Override
+1 -1
View File
@@ -44,7 +44,7 @@ public abstract class AERootPoweredTile extends AEBaseInvTile implements IAEPowe
{ {
public AEPoweredRootHandler() { public AEPoweredRootHandler() {
super( EnumSet.of( TileEventType.WORLD_NBT ) ); super( TileEventType.WORLD_NBT );
} }
@Override @Override
+1 -3
View File
@@ -1,7 +1,5 @@
package appeng.tile.powersink; package appeng.tile.powersink;
import java.util.EnumSet;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
@@ -28,7 +26,7 @@ public abstract class BuildCraft extends AERootPoweredTile implements IPowerRece
final protected PowerHandler bcPowerHandler; final protected PowerHandler bcPowerHandler;
public BCPerdition(IPowerReceptor te) { public BCPerdition(IPowerReceptor te) {
super( EnumSet.of( TileEventType.TICK, TileEventType.WORLD_NBT ) ); super( TileEventType.TICK, TileEventType.WORLD_NBT );
bcPowerHandler = new PowerHandler( te, Type.MACHINE ); bcPowerHandler = new PowerHandler( te, Type.MACHINE );
} }
+1 -3
View File
@@ -1,7 +1,5 @@
package appeng.tile.powersink; package appeng.tile.powersink;
import java.util.EnumSet;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
import Reika.RotaryCraft.API.ShaftPowerReceiver; import Reika.RotaryCraft.API.ShaftPowerReceiver;
import appeng.api.config.PowerUnits; import appeng.api.config.PowerUnits;
@@ -23,7 +21,7 @@ public abstract class RotaryCraft extends IC2 implements ShaftPowerReceiver
{ {
public RotaryCraftHandler() { public RotaryCraftHandler() {
super( EnumSet.of( TileEventType.TICK ) ); super( TileEventType.TICK );
} }
@Override @Override
+1 -1
View File
@@ -52,7 +52,7 @@ public class TileQuantumBridge extends AENetworkInvTile implements IAEMultiBlock
{ {
public QBridgeHandler() { public QBridgeHandler() {
super( EnumSet.of( TileEventType.NETWORK, TileEventType.TICK ) ); super( TileEventType.NETWORK, TileEventType.TICK );
gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) );
gridProxy.setFlags( GridFlags.TIER_2_CAPACITY ); gridProxy.setFlags( GridFlags.TIER_2_CAPACITY );
gridProxy.setIdlePowerUsage( 22 ); gridProxy.setIdlePowerUsage( 22 );
+1 -1
View File
@@ -57,7 +57,7 @@ public class TileSpatialPylon extends AENetworkTile implements IAEMultiBlock
{ {
public TileSpatialPylonHandler() { public TileSpatialPylonHandler() {
super( EnumSet.of( TileEventType.NETWORK ) ); super( TileEventType.NETWORK );
} }
@Override @Override
+22 -3
View File
@@ -5,7 +5,6 @@ import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.EnumSet;
import java.util.List; import java.util.List;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
@@ -45,6 +44,7 @@ import appeng.api.storage.data.IAEFluidStack;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IAEStack; import appeng.api.storage.data.IAEStack;
import appeng.helpers.AENoHandler; import appeng.helpers.AENoHandler;
import appeng.helpers.IPriorityHost;
import appeng.me.GridAccessException; import appeng.me.GridAccessException;
import appeng.me.storage.MEInventoryHandler; import appeng.me.storage.MEInventoryHandler;
import appeng.tile.events.AETileEventHandler; import appeng.tile.events.AETileEventHandler;
@@ -55,7 +55,7 @@ import appeng.tile.inventory.InvOperation;
import appeng.util.Platform; import appeng.util.Platform;
import appeng.util.item.AEFluidStack; import appeng.util.item.AEFluidStack;
public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHandler, IStorageMonitorable public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHandler, IStorageMonitorable, IPriorityHost
{ {
static final AENoHandler noHandler = new AENoHandler(); static final AENoHandler noHandler = new AENoHandler();
@@ -109,7 +109,7 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan
{ {
public invManger() { public invManger() {
super( EnumSet.of( TileEventType.TICK, TileEventType.NETWORK, TileEventType.WORLD_NBT ) ); super( TileEventType.TICK, TileEventType.NETWORK, TileEventType.WORLD_NBT );
} }
@Override @Override
@@ -664,4 +664,23 @@ public class TileChest extends AENetworkPowerTile implements IMEChest, IFluidHan
return null; return null;
} }
@Override
public void setPriority(int newValue)
{
priority = newValue;
icell = null;
fcell = null;
isCached = false; // recalculate the storage cell.
try
{
gridProxy.getGrid().postEvent( new MENetworkCellArrayUpdate() );
}
catch (GridAccessException e)
{
// :P
}
}
} }
+21 -3
View File
@@ -3,7 +3,6 @@ package appeng.tile.storage;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.EnumSet;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@@ -27,6 +26,7 @@ import appeng.api.storage.StorageChannel;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.util.AECableType; import appeng.api.util.AECableType;
import appeng.api.util.DimensionalCoord; import appeng.api.util.DimensionalCoord;
import appeng.helpers.IPriorityHost;
import appeng.me.GridAccessException; import appeng.me.GridAccessException;
import appeng.me.storage.DriveWatcher; import appeng.me.storage.DriveWatcher;
import appeng.me.storage.MEInventoryHandler; import appeng.me.storage.MEInventoryHandler;
@@ -37,7 +37,7 @@ import appeng.tile.inventory.AppEngInternalInventory;
import appeng.tile.inventory.InvOperation; import appeng.tile.inventory.InvOperation;
import appeng.util.Platform; import appeng.util.Platform;
public class TileDrive extends AENetworkInvTile implements IChestOrDrive public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPriorityHost
{ {
final int sides[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; final int sides[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
@@ -74,7 +74,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive
{ {
public invManger() { public invManger() {
super( EnumSet.of( TileEventType.WORLD_NBT, TileEventType.NETWORK ) ); super( TileEventType.WORLD_NBT, TileEventType.NETWORK );
} }
@Override @Override
@@ -316,4 +316,22 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive
return gridProxy.isActive(); return gridProxy.isActive();
} }
@Override
public void setPriority(int newValue)
{
priority = newValue;
onInventoryChanged();
isCached = false; // recalculate the storage cell.
updateState();
try
{
gridProxy.getGrid().postEvent( new MENetworkCellArrayUpdate() );
}
catch (GridAccessException e)
{
// :P
}
}
} }
+1 -3
View File
@@ -1,7 +1,5 @@
package appeng.tile.storage; package appeng.tile.storage;
import java.util.EnumSet;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@@ -64,7 +62,7 @@ public class TileIOPort extends AENetworkInvTile implements IUpgradeableHost, IC
{ {
public TileIOPortHandler() { public TileIOPortHandler() {
super( EnumSet.of( TileEventType.WORLD_NBT ) ); super( TileEventType.WORLD_NBT );
} }
@Override @Override