CrawfisSoftware.MazeTilings
1.0.5
dotnet add package CrawfisSoftware.MazeTilings --version 1.0.5
NuGet\Install-Package CrawfisSoftware.MazeTilings -Version 1.0.5
<PackageReference Include="CrawfisSoftware.MazeTilings" Version="1.0.5" />
<PackageVersion Include="CrawfisSoftware.MazeTilings" Version="1.0.5" />
<PackageReference Include="CrawfisSoftware.MazeTilings" />
paket add CrawfisSoftware.MazeTilings --version 1.0.5
#r "nuget: CrawfisSoftware.MazeTilings, 1.0.5"
#:package CrawfisSoftware.MazeTilings@1.0.5
#addin nuget:?package=CrawfisSoftware.MazeTilings&version=1.0.5
#tool nuget:?package=CrawfisSoftware.MazeTilings&version=1.0.5
MazeTilings
Unity Package Manager dependency
This repository contains a Unity UPM package at Packages/com.crawfissoftware.mazetilings.
If you want this package to depend on another Unity package (for example the Crawfis tilings framework), declare it in Packages/com.crawfissoftware.mazetilings/package.json under dependencies.
Dependency hosted as a public GitHub repo
UPM can resolve dependencies directly from Git. Use a tagged version (recommended) so installs are reproducible:
- In
package.json:"dependencies": { "com.crawfissoftware.tilings": "https://github.com/Crawfis-Software/<repo>.git#v1.2.3" }
Dependency distributed as a GitHub tarball release
Unity can also install packages from a tarball URL via Package Manager → Add package from git URL....
If you install dependencies via tarball, UPM will not automatically discover where to fetch that dependency unless you also provide a resolvable entry (registry or Git URL) in dependencies. In practice this means you should prefer Git URL (or a registry) for dependencies, and reserve tarball installs for end-user convenience.
A .NET Standard 2.1 library for converting mazes (built on CrawfisSoftware.Maze) into Wang-tile tilings. It provides tiling builders, colorizers, and path tile helpers that can be consumed by any renderer. SVG output lives in a separate example project and is intentionally not covered here.
Package dependencies
Referenced packages (see MazeTilings.csproj):
CrawfisSoftware.Maze(0.1.2) � repo: https://github.com/Crawfis-Software/CrawfisSoftware.Maze (README: https://github.com/Crawfis-Software/CrawfisSoftware.Maze/blob/main/README.md)CrawfisSoftware.Tiling(0.2.0) � repo: https://github.com/Crawfis-Software/CrawfisSoftware.Tiling (README: https://github.com/Crawfis-Software/CrawfisSoftware.Tiling/blob/master/README.md, llms.txt: https://github.com/Crawfis-Software/CrawfisSoftware.Tiling/blob/master/llms.txt)
Key components
MazeWrapperTilingBuilder: maps aMaze<int,int>to tiles via aITilingEnumeratorandITileSelector.PathTileSetFactory: builds arc-based or Manhattan-style path tile sets; includesTileSizePathTileDecoratorfor scaling tiles.MazeColorizersandAbstractMazeColorizer: utilities for turning maze directions/metrics into edge colors.WangColorizer: generates a Wang tile set on the fly from a colorizer function and builds the corresponding tiling.
How to use (library-only)
- Build or obtain a
Maze<int,int>using the CrawfisSoftware maze builders. - Choose or build an
ITileSet(any renderer-compatible set; the library itself is renderer-agnostic). - Select a
ITilingEnumerator(visit order) andITileSelector(matching strategy). - Instantiate
MazeWrapperTilingBuilder(orWangColorizerfor dynamic tile creation), setColorizer, and callUpdateTiling. - Consume the resulting
ITiling2Dwith your renderer of choice.
Example:
var mazeBuilder = new MazeBuilder<int, int>(width, height);
Maze<int, int> maze = mazeBuilder.GetMaze();
var tileSet = /* any ITileSet compatible with your renderer */;
var tilingBuilder = new MazeWrapperTilingBuilder(maze)
{
TileSelector = new SequentialTileSelector(2),
TilingEnumerator = new SequentialTilingEnumerator(),
Colorizer = MazeColorizers.ColorizeBasedOnDirectionOnly
};
tilingBuilder.UpdateTiling(tileSet);
ITiling2D tiling = tilingBuilder.GetTiling();
// Render tiling with your pipeline (outside this library).
Notes
- This project is renderer-agnostic. SVG-specific code and demos live in
ExampleProjects/MazeTilingSVG, not here. Unity Examples are also separate. - Targets .NET Standard 2.1; usable from .NET 6/7/8+/Unity (with provided stubs) so long as the CrawfisSoftware dependencies are available.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- CrawfisSoftware.Maze (>= 0.1.2)
- CrawfisSoftware.Tiling (>= 0.2.0)
- Microsoft.CSharp (>= 4.7.0)
- System.Data.DataSetExtensions (>= 4.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.