What is new?

Version 1.10

In this version, we

  • added GetPointsInRange and GetPointsInRangeCosts functions that returns all the points in a grid in a given range, or their distances from the start goal
  • added three new cell types thatcan be used with Unity’s GUI system (with or without grid builders):
  • added a GetLine extension methods for maps
  • added a SpriralIterator overload for rect and hex grids
  • added a SpiralIterator for diamond grids
  • added the Perp method to rect, diamond, and hex points
  • added a class PointStack which is a AOL compiler-safe Stack for points
  • added Fill methods to set the entire grid to a value or the result of a function
  • added CloneStructure methods that clones a grids structure, and use the given value or function to fill the new grid
  • added an Apply method that calls an action for each cell in the grid
  • added a TransformValues method that replaces each cell with a transformed cell
  • added a overload to the Scale methods in IMap and AbstractMap that takes a Vector2
  • redesigned the way neighbors work slightly: We
    • added a property NeighborDirections to grids that can be used to get and set the grids neighbor-setup.
    • added default neighbor sets to point types
    • removed InitNeighbors from abstract grid classes
    • fixed CloneStructure and CastValues to correctly copy over the original grid’s neighbor-setup
  • changed all grid builders to take a Vector2 for the cell spacing factor, instead of a single factor
  • fixed dimension and anchor calculations for polar pointy brick maps
  • fixed the type of the Grid property of polar grid builders
  • fixed a bug that prevented MeshTileCells’ colors to be serialized
  • fixed a bug that could cause errors with input if the cell in a grid is null
  • fixed a bug that prevented polar grids from being used with GridBehaviours
  • fixed a bug with polar grid maps and mesh creation
  • fixed a bug in the Poisson disk generation code that sometimes caused points to be generated outside the given rectangle
  • removed the default OnClick method provided in SpriteCell and MeshTileCell
  • Made TextureCell obsolete (use UVCell instead)
  • renamed the Select method defined on grids to SelectValuesAt
  • renamed XXXUtil to XXXUtils for consistency
  • made many documentation improvements
  • made compatible with Unity 5.0
  • updated extensions package to version 1.1

Version 1.9

In this version, we

  • added custom shapes for all basic, non-polar grids in the editor
  • slightly changed the design of LayeredGrid and LayeredPoint to make them more re-usable and robust
  • fixed the position of gizmo labels for polar grids
  • fixed a bug that caused null pointer exceptions in interactive grids with null cells
  • fixed a bug with cell dimensions in hex grid builders that caused bugs when used with non-regular hexagons
  • fixed a bug that caused editor code to be called in builds
  • fixed a bug with Pointy hex shapes in the editor(fat and thin rectangles were swapped)
  • removed the ToolTip and Description attributes (which implemented built-in functionality)
  • made many documentation improvements

Version 1.8

In this version, we

  • added grid builders that allows you to build grids in the editors, including the classes for supporting them, including
    • grid builder classes and their editors
    • classes for implementing custom maps and shapes that can be used with builders
    • classes that allows implementation of grid behaviours
    • cells and their editors
  • added LineGrid and related classes for making 1D grids
  • added ArchimedeanSpiralMap for use with a LineGrid to map cells in a spiral
  • added LayeredGrid and related classes for making 3D grids made from layers of 2D grids
  • added GenericSplicedGrids and related classes for making arbitrary semi-regular grids
  • added PointListMap that maps a sequence of LinePoints to an arbitrary set of world points
  • added VoronoiMap for mapping 2D space to an arbitrary point set
  • added IGridToWorldMap, an interface for one-way maps that can be used by maps that does the inverse mapping automatically
  • added method GetNeighborHood for RectGrid that returns a square region of points around a given point
  • added method Stretch to map building to make it easy to get a grid stretched over a rectangle
  • added class PoissonDisk for generating a PoissonDisk sample of points
  • added constructors to InspectableVectorPoint and InspectableSplicedVectorPoint that takes other points as parameters
  • added ToString methods to InspectableVectorPoint and InspectableSplicedVectorPoint
  • made GetLongestConnected Obsolete (use GetLongestConnectedLine instead)
  • removed ToString and GetHashCode from IGridPoint interface (these are redundant)
  • made AnimatedMap also work with EditorApplication.timeSinceStartup
  • fixed a bug with the edge grids of tri grids
  • renamed “SuperRectGrid” to “NestedRectGrid”
  • made enhancements to make Grids workbetteroniOS, including
    • rewriting certain methods to avoid problems with deep generics
    • adding more compiler hints for built-in cells

Version 1.7

In this update, we

  • added Mod, Div and Mul methods for all uniform grid points.
  • added Dot and PerpDot methods for all uniform grid points.
  • added consistent coloring functions for all built-in grid points.
  • added spiral iterator for hex grids.
  • added some LINQ-like methods for grids, as well as GetValue and SetValue methods to make LINQ constructions easier to write.
  • removed Equals from the declaration of IGridPoint. It is unnecessary, but more importantly caused unwanted boxing of points.
  • added wrapped versions of Rectangular, Diamond, Hexagonal and Triangular Grids. Use the static WrappedX functions to use them.
  • added a polar maps for Rectangular and Hex Grids that can be used with wrapped RectGrids and HexGrids to make polar grids.
  • added some shapes for the Cairo grid.
  • added a version of AStar that lets you specify the cost, not just the heuristic cost.
  • fixed a bug with vertex and edge grids that plagued rectangular and diamond grids.
  • fixed a bug with the canonical positions for hex-point shapes.
  • simplified the underlying storage mechanism; this makes it easier to construct grids from scratch. It also had the result of default shapes changing from ragged rectangles to parallelograms (rect grids’ default shape remains a rectangle).
  • changed some of the shape functions to make it more intuitive “where” a shape will be in relation to the origin.
  • Made static helper functions in the Op classes that were accidentally exposed private. The public geometric functions provided by points should be used instead.
  • improved the AStar algorithm’s run speed and its garbage generation.
  • removed VectorPoint as implementation base for uniform points, thereby making them slightly faster.
  • made many improvements to the documentation.

We also restructured the examples to make it easier to work through them in sequence.

Version 1.6

This is a maintenance update. We

  • made the library more robust for AOT compilation by using safe containers and comparers, and providing hints for the compiler
  • fixed the neighbor directions for DiamondGrids
  • added the experimental SuperRectGrid class, a grid of grids
  • added more point arithmetic for RectPoint
  • added a safe implementation of IList for points
  • removed most dependencies of List from the library interface, replacing most instances with IEnumerator, or IList in some instances.

This version also contains a new example of SuperRectGrid.

Version 1.5

We updated the documentation, added a few new examples for rectangular grids, and fixed two bugs:

  • a bug with hex maps causing malfunction when the hex cells are not regular
  • a spelling mistake with some enums containing the word North.

Version 1.4

We updated this guide, and re-organised the library slightly.

Version 1.3

This version contains mostly bugfixes and more examples. We

  • added geometry calculations for hex points
  • fixed wrong spelling of some methods that contains the word Middle – old methods have been made obsolete, so this change should not break your code
  • fixed a bug in one of the 3D to 2D extension methods provided for Transform
  • made lots of small code quality improvements under the hood (including a few optimisations).

There are three new examples that show how colourings work, how to use Grids in 3D games, and how Grids handles a very large hex grid.

Version 1.2

In this version we start adding technology that makes it easier to build your own grids. We

  • added the PolygonMap class
  • added CairoGrid, CairoPoint and CairoMap classes

There are also two new examples using the CairoGrids.

Version 1.1

This version contains mostly bug-fixes and a few small additions. We

  • added grouping for shape building
  • added symmetric difference for shape building
  • added more parallelograms for triangular grids
  • changed the diamond grid / point coordinate system to be more intuitive
  • fixed a bug with hexagonal shapes for triangular grids
  • fixed a bug with composite shape building
  • fixed a bug with vertex and edge grids.

There are also two new examples, and we improved some of the existing examples slightly.

2 thoughts on “What is new?”

  1. Pingback: Grids 1.7 | Gamelogic

  2. Pingback: Game Development with Unity 2D – part 5: A grid of Roman centuriae - Design a Game

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to Top