예제 #1
0
		public static bool __CompilerHint__PointyHex__TileCell()
		{
			var grid = new PointyHexGrid<TileCell[]>(1, 1);

			foreach(var point in grid) { grid[point] = new TileCell[1]; } 

			var shapeStorageInfo = new ShapeStorageInfo<PointyHexPoint>(new IntRect(), p => true);
			var shapeInfo = new PointyHexShapeInfo<TileCell>(shapeStorageInfo);

			return grid[grid.First()][0] == null || shapeInfo.Translate(PointyHexPoint.Zero) != null;
		}
		/** 
			Call this method if you use a PointyHexGrid.
			Replace	the type __CellType to whatever type you have in your grid.

			You can call the method anywhere in your code.
			
				if(!__CompilerHint__PointyHex()) return;

			This methods always returns true.

			@since 1.6
		*/
		public static bool __CompilerHint__PointyHex()
		{
			//Ensures abstract super classes for base grids gets created
			var grid = new PointyHexGrid<__CellType[]>(1, 1);

			foreach(var point in grid)
			{
				grid[point] = new __CellType[1];
			} 

			//Ensures shape infpo classes get created
			var shapeStorageInfo = new ShapeStorageInfo<PointyHexPoint>(new IntRect(), p => true);
			var shapeInfo = new PointyHexShapeInfo<__CellType>(shapeStorageInfo);

			return grid[grid.First()][0] == null || shapeInfo.Translate(PointyHexPoint.Zero) != null;
		}
예제 #3
0
    override public void InitGrid()
    {
        //We cast the grid and grid values here for convenience.
        //Casting like this clones the grid. Thus neighbor relations are
        //not preserved (this is a design flaw as of Grids 1.8, to be fixed
        //in a future version). For now it means the actual pathfinding call
        //must use the original grid.
        walkableGrid = (PointyHexGrid <WalkableCell>)Grid.CastValues <WalkableCell, PointyHexPoint>();

        foreach (var point in walkableGrid)
        {
            walkableGrid[point].IsWalkable = true;
        }

        start = walkableGrid.First();
        goal  = walkableGrid.Last();

        UpdatePath();
    }
예제 #4
0
        public static bool __CompilerHint2__PointyHex()
        {
            //Ensures abstract super classes for base grids gets created
            var grid = new PointyHexGrid<__CellType>(1, 1, p => p == PointyHexPoint.Zero, x => x, x => x, new List<PointyHexPoint>());

            //Ensures shape infpo classes get created
            var shapeStorageInfo = new ShapeStorageInfo<PointyHexPoint>(new IntRect(), p => true);
            var shapeInfo = new PointyHexShapeInfo<__CellType>(shapeStorageInfo);

            return grid[grid.First()] == null || shapeInfo.Translate(PointyHexPoint.Zero) != null;
        }
예제 #5
0
		public static bool __CompilerHint__FlatTri__TileCell()
		{
			var grid1 = new PointyHexGrid<TileCell[]>(1, 1);

			foreach(var point in grid1)	{ grid1[point] = new TileCell[1]; } 

			var grid2 = new FlatTriGrid<TileCell>(1, 1);

			foreach(var point in grid2)	{ grid2[point] = null; } 

			var shapeStorageInfo = new ShapeStorageInfo<FlatTriPoint>(new IntRect(), p => true);
			var shapeInfo = new FlatTriShapeInfo<TileCell>(shapeStorageInfo);

			return grid1[grid1.First()][0] == null || grid2[grid2.First()] == null || shapeInfo.IncIndex(0) != null;
		}
예제 #6
0
		public static bool __CompilerHint__Cairo__UVCell()
		{
			var grid1 = new PointyHexGrid<UVCell[]>(1, 1);

			foreach(var point in grid1)	{ grid1[point] = new UVCell[1]; } 

			var grid2 = new CairoGrid<UVCell>(1, 1);

			foreach(var point in grid2)	{ grid2[point] = null; } 

			var shapeStorageInfo = new ShapeStorageInfo<CairoPoint>(new IntRect(), p => true);
			var shapeInfo = new CairoShapeInfo<UVCell>(shapeStorageInfo);

			return grid1[grid1.First()][0] == null || grid2[grid2.First()] == null || shapeInfo.IncIndex(0) != null;
		}
예제 #7
0
		public static bool __CompilerHint__PointyRhomb__SpriteCell()
		{
			var grid1 = new PointyHexGrid<SpriteCell[]>(1, 1);

			foreach(var point in grid1)	{ grid1[point] = new SpriteCell[1]; } 

			var grid2 = new PointyRhombGrid<SpriteCell>(1, 1);

			foreach(var point in grid2)	{ grid2[point] = null; } 

			var shapeStorageInfo = new ShapeStorageInfo<PointyRhombPoint>(new IntRect(), p => true);
			var shapeInfo = new PointyRhombShapeInfo<SpriteCell>(shapeStorageInfo);

			return grid1[grid1.First()][0] == null || grid2[grid2.First()] == null || shapeInfo.IncIndex(0) != null;
		}