| package appeng.api.me.util; |
| |
| import net.minecraft.tileentity.TileEntity; |
| import net.minecraft.world.World; |
| import appeng.api.me.tiles.IGridTileEntity; |
| |
| /** |
| * ME Network, aka Grid related features and functionality. |
| */ |
| public class Grid |
| { |
| /** |
| * Attempts to find a grid interface for the specified location. |
| * @param w |
| * @param x |
| * @param y |
| * @param z |
| * @return interfaceForGrid |
| */ |
| public static IGridInterface getGridInterface(World w, int x, int y, int z) |
| { |
| IGridTileEntity te = getGridEntity(w, x, y, z); |
| |
| if (te != null) |
| { |
| return te.getGrid(); |
| } |
| |
| return null; |
| } |
| |
| /** |
| * Simple test to see if the tile at the specified location is in fact a grid entity. |
| * @param w |
| * @param x |
| * @param y |
| * @param z |
| * @return isTileGridEntity |
| */ |
| public static boolean isGridEntity(World w, int x, int y, int z) |
| { |
| return getGridEntity(w, x, y, z) != null; |
| } |
| |
| /** |
| * Returns the grid entity at the given location, or null if its not a grid entity. |
| * @param w |
| * @param x |
| * @param y |
| * @param z |
| * @return gridEntity |
| */ |
| public static IGridTileEntity getGridEntity(World w, int x, int y, int z) |
| { |
| TileEntity te = w.getBlockTileEntity(x, y, z); |
| |
| if (te instanceof IGridTileEntity) |
| { |
| return (IGridTileEntity)te; |
| } |
| |
| return null; |
| } |
| |
| /** |
| * Tests if the given grid entity is on a Network. |
| * @param w |
| * @param x |
| * @param y |
| * @param z |
| * @return isOnNetwork |
| */ |
| public static boolean isOnGrid(World w, int x, int y, int z) |
| { |
| IGridTileEntity te = getGridEntity(w, x, y, z); |
| |
| if (te != null) |
| { |
| return te.getGrid() != null; |
| } |
| |
| return false; |
| } |
| } |