diff --git a/helpers/WirelessTerminalGuiObject.java b/helpers/WirelessTerminalGuiObject.java index 1882b4356..f46689344 100644 --- a/helpers/WirelessTerminalGuiObject.java +++ b/helpers/WirelessTerminalGuiObject.java @@ -10,6 +10,7 @@ import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.features.IWirelessTermHandler; import appeng.api.implementations.guiobjects.IPortableCell; +import appeng.api.implementations.tiles.IWirelessAccessPoint; import appeng.api.networking.IGrid; import appeng.api.networking.IGridHost; import appeng.api.networking.IGridNode; @@ -22,6 +23,7 @@ import appeng.api.storage.StorageChannel; import appeng.api.storage.data.IAEFluidStack; import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IItemList; +import appeng.api.util.DimensionalCoord; import appeng.api.util.IConfigManager; import appeng.tile.networking.TileWireless; @@ -34,7 +36,7 @@ public class WirelessTerminalGuiObject implements IPortableCell IGrid targetGrid; IStorageGrid sg; IMEMonitor itemStorage; - TileWireless myWap; + IWirelessAccessPoint myWap; double sqRange = Double.MAX_VALUE; double myRange = Double.MAX_VALUE; @@ -89,7 +91,7 @@ public class WirelessTerminalGuiObject implements IPortableCell { if ( myWap != null ) { - if ( myWap.getGridNode( ForgeDirection.UNKNOWN ).getGrid() == targetGrid ) + if ( myWap.getGrid() == targetGrid ) { if ( testWap( myWap ) ) return true; @@ -103,7 +105,7 @@ public class WirelessTerminalGuiObject implements IPortableCell for (IGridNode n : tw) { - TileWireless wap = (TileWireless) n.getMachine(); + IWirelessAccessPoint wap = (IWirelessAccessPoint) n.getMachine(); if ( testWap( wap ) ) myWap = wap; } @@ -113,21 +115,23 @@ public class WirelessTerminalGuiObject implements IPortableCell return false; } - private boolean testWap(TileWireless wap) + private boolean testWap(IWirelessAccessPoint wap) { double rangeLimit = wap.getRange(); rangeLimit *= rangeLimit; - if ( wap.getWorldObj() == myPlayer.worldObj ) + DimensionalCoord dc = wap.getLocation(); + + if ( dc.getWorld() == myPlayer.worldObj ) { - double offX = (double) wap.xCoord - myPlayer.posX; - double offY = (double) wap.yCoord - myPlayer.posY; - double offZ = (double) wap.zCoord - myPlayer.posZ; + double offX = (double) dc.x - myPlayer.posX; + double offY = (double) dc.y - myPlayer.posY; + double offZ = (double) dc.z - myPlayer.posZ; double r = offX * offX + offY * offY + offZ * offZ; if ( r < rangeLimit && sqRange > r ) { - if ( wap.getGridNode( ForgeDirection.UNKNOWN ).isActive() ) + if ( wap.isActive() ) { sqRange = r; myRange = Math.sqrt( r ); diff --git a/tile/networking/TileWireless.java b/tile/networking/TileWireless.java index 7a43fcc77..cabbd42ad 100644 --- a/tile/networking/TileWireless.java +++ b/tile/networking/TileWireless.java @@ -8,7 +8,9 @@ import java.util.EnumSet; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; +import appeng.api.implementations.tiles.IWirelessAccessPoint; import appeng.api.networking.GridFlags; +import appeng.api.networking.IGrid; import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkPowerStatusChange; @@ -22,7 +24,7 @@ import appeng.tile.grid.AENetworkInvTile; import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.InvOperation; -public class TileWireless extends AENetworkInvTile +public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoint { public static final int POWERED_FLAG = 1; @@ -141,11 +143,28 @@ public class TileWireless extends AENetworkInvTile return sides; } + @Override public double getRange() { return AEConfig.instance.wireless_getMaxRange( getBoosters() ); } - + + @Override + public boolean isActive() + { + return gridProxy.isActive(); + } + + @Override + public IGrid getGrid() + { + try { + return gridProxy.getGrid(); + } catch (GridAccessException e) { + return null; + } + } + private int getBoosters() { ItemStack boosters = inv.getStackInSlot( 0 );