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.
Pingback: Grids 1.7 | Gamelogic
Pingback: Game Development with Unity 2D – part 5: A grid of Roman centuriae - Design a Game