API Sync.

This commit is contained in:
AlgorithmX2 2014-03-25 12:13:34 -05:00
parent 7a7484ba2f
commit e91a3a9cc1
2 changed files with 34 additions and 11 deletions

View file

@ -10,6 +10,7 @@ import appeng.api.config.Actionable;
import appeng.api.config.PowerMultiplier; import appeng.api.config.PowerMultiplier;
import appeng.api.features.IWirelessTermHandler; import appeng.api.features.IWirelessTermHandler;
import appeng.api.implementations.guiobjects.IPortableCell; import appeng.api.implementations.guiobjects.IPortableCell;
import appeng.api.implementations.tiles.IWirelessAccessPoint;
import appeng.api.networking.IGrid; import appeng.api.networking.IGrid;
import appeng.api.networking.IGridHost; import appeng.api.networking.IGridHost;
import appeng.api.networking.IGridNode; 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.IAEFluidStack;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList; import appeng.api.storage.data.IItemList;
import appeng.api.util.DimensionalCoord;
import appeng.api.util.IConfigManager; import appeng.api.util.IConfigManager;
import appeng.tile.networking.TileWireless; import appeng.tile.networking.TileWireless;
@ -34,7 +36,7 @@ public class WirelessTerminalGuiObject implements IPortableCell
IGrid targetGrid; IGrid targetGrid;
IStorageGrid sg; IStorageGrid sg;
IMEMonitor<IAEItemStack> itemStorage; IMEMonitor<IAEItemStack> itemStorage;
TileWireless myWap; IWirelessAccessPoint myWap;
double sqRange = Double.MAX_VALUE; double sqRange = Double.MAX_VALUE;
double myRange = Double.MAX_VALUE; double myRange = Double.MAX_VALUE;
@ -89,7 +91,7 @@ public class WirelessTerminalGuiObject implements IPortableCell
{ {
if ( myWap != null ) if ( myWap != null )
{ {
if ( myWap.getGridNode( ForgeDirection.UNKNOWN ).getGrid() == targetGrid ) if ( myWap.getGrid() == targetGrid )
{ {
if ( testWap( myWap ) ) if ( testWap( myWap ) )
return true; return true;
@ -103,7 +105,7 @@ public class WirelessTerminalGuiObject implements IPortableCell
for (IGridNode n : tw) for (IGridNode n : tw)
{ {
TileWireless wap = (TileWireless) n.getMachine(); IWirelessAccessPoint wap = (IWirelessAccessPoint) n.getMachine();
if ( testWap( wap ) ) if ( testWap( wap ) )
myWap = wap; myWap = wap;
} }
@ -113,21 +115,23 @@ public class WirelessTerminalGuiObject implements IPortableCell
return false; return false;
} }
private boolean testWap(TileWireless wap) private boolean testWap(IWirelessAccessPoint wap)
{ {
double rangeLimit = wap.getRange(); double rangeLimit = wap.getRange();
rangeLimit *= rangeLimit; rangeLimit *= rangeLimit;
if ( wap.getWorldObj() == myPlayer.worldObj ) DimensionalCoord dc = wap.getLocation();
if ( dc.getWorld() == myPlayer.worldObj )
{ {
double offX = (double) wap.xCoord - myPlayer.posX; double offX = (double) dc.x - myPlayer.posX;
double offY = (double) wap.yCoord - myPlayer.posY; double offY = (double) dc.y - myPlayer.posY;
double offZ = (double) wap.zCoord - myPlayer.posZ; double offZ = (double) dc.z - myPlayer.posZ;
double r = offX * offX + offY * offY + offZ * offZ; double r = offX * offX + offY * offY + offZ * offZ;
if ( r < rangeLimit && sqRange > r ) if ( r < rangeLimit && sqRange > r )
{ {
if ( wap.getGridNode( ForgeDirection.UNKNOWN ).isActive() ) if ( wap.isActive() )
{ {
sqRange = r; sqRange = r;
myRange = Math.sqrt( r ); myRange = Math.sqrt( r );

View file

@ -8,7 +8,9 @@ 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.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.implementations.tiles.IWirelessAccessPoint;
import appeng.api.networking.GridFlags; import appeng.api.networking.GridFlags;
import appeng.api.networking.IGrid;
import appeng.api.networking.events.MENetworkChannelsChanged; import appeng.api.networking.events.MENetworkChannelsChanged;
import appeng.api.networking.events.MENetworkEventSubscribe; import appeng.api.networking.events.MENetworkEventSubscribe;
import appeng.api.networking.events.MENetworkPowerStatusChange; import appeng.api.networking.events.MENetworkPowerStatusChange;
@ -22,7 +24,7 @@ import appeng.tile.grid.AENetworkInvTile;
import appeng.tile.inventory.AppEngInternalInventory; import appeng.tile.inventory.AppEngInternalInventory;
import appeng.tile.inventory.InvOperation; import appeng.tile.inventory.InvOperation;
public class TileWireless extends AENetworkInvTile public class TileWireless extends AENetworkInvTile implements IWirelessAccessPoint
{ {
public static final int POWERED_FLAG = 1; public static final int POWERED_FLAG = 1;
@ -141,11 +143,28 @@ public class TileWireless extends AENetworkInvTile
return sides; return sides;
} }
@Override
public double getRange() public double getRange()
{ {
return AEConfig.instance.wireless_getMaxRange( getBoosters() ); 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() private int getBoosters()
{ {
ItemStack boosters = inv.getStackInSlot( 0 ); ItemStack boosters = inv.getStackInSlot( 0 );