From 8d2f8f3369db5690770750bb62371aa3a9ff8538 Mon Sep 17 00:00:00 2001 From: yueh Date: Sun, 2 Nov 2014 10:52:45 +0100 Subject: [PATCH] Prevent anything but boosters inside WAPs --- .../appeng/tile/networking/TileWireless.java | 46 ++++++++++++------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/src/main/java/appeng/tile/networking/TileWireless.java b/src/main/java/appeng/tile/networking/TileWireless.java index 1409a464..37b0cc88 100644 --- a/src/main/java/appeng/tile/networking/TileWireless.java +++ b/src/main/java/appeng/tile/networking/TileWireless.java @@ -1,12 +1,16 @@ + package appeng.tile.networking; -import io.netty.buffer.ByteBuf; import java.util.EnumSet; +import io.netty.buffer.ByteBuf; + import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; + +import appeng.api.AEApi; import appeng.api.implementations.IPowerChannelState; import appeng.api.implementations.tiles.IWirelessAccessPoint; import appeng.api.networking.GridFlags; @@ -25,6 +29,7 @@ import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.InvOperation; import appeng.util.Platform; + public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoint, IPowerChannelState { @@ -36,32 +41,33 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi public int clientFlags = 0; - public TileWireless() { + public TileWireless() + { gridProxy.setFlags( GridFlags.REQUIRE_CHANNEL ); gridProxy.setValidSides( EnumSet.noneOf( ForgeDirection.class ) ); } @Override - public void setOrientation(ForgeDirection inForward, ForgeDirection inUp) + public void setOrientation( ForgeDirection inForward, ForgeDirection inUp ) { super.setOrientation( inForward, inUp ); gridProxy.setValidSides( EnumSet.of( getForward().getOpposite() ) ); } @MENetworkEventSubscribe - public void chanRender(MENetworkChannelsChanged c) + public void chanRender( MENetworkChannelsChanged c ) { markForUpdate(); } @MENetworkEventSubscribe - public void powerRender(MENetworkPowerStatusChange c) + public void powerRender( MENetworkPowerStatusChange c ) { markForUpdate(); } - @TileEvent(TileEventType.NETWORK_READ) - public boolean readFromStream_TileWireless(ByteBuf data) + @TileEvent( TileEventType.NETWORK_READ ) + public boolean readFromStream_TileWireless( ByteBuf data ) { int old = clientFlags; clientFlags = data.readByte(); @@ -69,8 +75,8 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi return old != clientFlags; } - @TileEvent(TileEventType.NETWORK_WRITE) - public void writeToStream_TileWireless(ByteBuf data) + @TileEvent( TileEventType.NETWORK_WRITE ) + public void writeToStream_TileWireless( ByteBuf data ) { clientFlags = 0; @@ -82,16 +88,16 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi if ( gridProxy.getNode().meetsChannelRequirements() ) clientFlags |= CHANNEL_FLAG; } - catch (GridAccessException e) + catch ( GridAccessException e ) { // meh } - data.writeByte( (byte) clientFlags ); + data.writeByte( ( byte ) clientFlags ); } @Override - public AECableType getCableConnectionType(ForgeDirection dir) + public AECableType getCableConnectionType( ForgeDirection dir ) { return AECableType.SMART; } @@ -127,7 +133,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi } @Override - public int[] getAccessibleSlotsBySide(ForgeDirection side) + public int[] getAccessibleSlotsBySide( ForgeDirection side ) { return sides; } @@ -142,7 +148,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi public boolean isActive() { if ( Platform.isClient() ) - return isPowered() && (CHANNEL_FLAG == (clientFlags & CHANNEL_FLAG)); + return isPowered() && ( CHANNEL_FLAG == ( clientFlags & CHANNEL_FLAG ) ); return gridProxy.isActive(); } @@ -154,7 +160,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi { return gridProxy.getGrid(); } - catch (GridAccessException e) + catch ( GridAccessException e ) { return null; } @@ -167,7 +173,13 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi } @Override - public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added) + public boolean isItemValidForSlot( int i, ItemStack itemstack ) + { + return AEApi.instance().materials().materialWirelessBooster.sameAsStack( itemstack ); + } + + @Override + public void onChangeInventory( IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added ) { // :P } @@ -175,7 +187,7 @@ public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoi @Override public boolean isPowered() { - return POWERED_FLAG == (clientFlags & POWERED_FLAG); + return POWERED_FLAG == ( clientFlags & POWERED_FLAG ); } }