TheSadRogue.Primitives
1.6.0-rc1
See the version list below for details.
dotnet add package TheSadRogue.Primitives --version 1.6.0-rc1
NuGet\Install-Package TheSadRogue.Primitives -Version 1.6.0-rc1
<PackageReference Include="TheSadRogue.Primitives" Version="1.6.0-rc1" />
paket add TheSadRogue.Primitives --version 1.6.0-rc1
#r "nuget: TheSadRogue.Primitives, 1.6.0-rc1"
// Install TheSadRogue.Primitives as a Cake Addin #addin nuget:?package=TheSadRogue.Primitives&version=1.6.0-rc1&prerelease // Install TheSadRogue.Primitives as a Cake Tool #tool nuget:?package=TheSadRogue.Primitives&version=1.6.0-rc1&prerelease
A collection of primitive data structures for working with a 2-dimensional grid.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.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. |
-
.NETCoreApp 3.1
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (4)
Showing the top 4 NuGet packages that depend on TheSadRogue.Primitives:
Package | Downloads |
---|---|
SadConsole
A library that emulates old-school console and command prompt style graphics. |
|
GoRogue
Roguelike/2D game utility library. |
|
TheSadRogue.Primitives.MonoGame
A collection of extension methods that allow TheSadRogue.Primitives types to easily interface with MonoGame's equivalents. |
|
TheSadRogue.Primitives.SFML
A collection of extension methods that allow TheSadRogue.Primitives types to easily interface with SFML's equivalents. |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on TheSadRogue.Primitives:
Repository | Stars |
---|---|
Thraka/SadConsole
A .NET ascii/ansi console engine written in C# for MonoGame and XNA. Create your own text roguelike (or other) games!
|
|
Chris3606/GoRogue
.NET Standard roguelike library in C#. Features many algorithms and data structures pertinent to roguelike/2D game developers, specifically designed to be minimally intrusive upon the developer's architecture.
|
Version | Downloads | Last updated |
---|---|---|
1.6.0-rc3-debug | 2,607 | 6/18/2023 |
1.6.0-rc3 | 9,840 | 6/18/2023 |
1.6.0-rc2-debug | 2,253 | 5/11/2023 |
1.6.0-rc2 | 1,571 | 5/11/2023 |
1.6.0-rc1-debug | 160 | 3/18/2023 |
1.6.0-rc1 | 2,061 | 3/18/2023 |
1.5.1 | 1,592 | 1/31/2023 |
1.5.1-debug | 156 | 1/31/2023 |
1.5.0 | 1,677 | 1/27/2023 |
1.5.0-debug | 142 | 1/27/2023 |
1.4.1 | 3,213 | 10/8/2022 |
1.4.1-debug | 165 | 10/8/2022 |
1.4.0 | 411 | 10/7/2022 |
1.4.0-debug | 147 | 10/7/2022 |
1.3.2 | 502 | 9/25/2022 |
1.3.2-debug | 180 | 9/25/2022 |
1.3.1 | 553 | 5/13/2022 |
1.3.1-debug | 186 | 5/13/2022 |
1.3.0 | 3,843 | 2/12/2022 |
1.3.0-debug | 173 | 2/12/2022 |
1.2.0 | 1,408 | 1/8/2022 |
1.2.0-debug | 182 | 1/8/2022 |
1.1.1 | 12,919 | 9/30/2021 |
1.1.1-debug | 204 | 9/30/2021 |
1.1.0 | 421 | 8/21/2021 |
1.1.0-debug | 227 | 8/21/2021 |
1.0.0 | 14,626 | 3/23/2021 |
1.0.0-debug | 284 | 3/23/2021 |
1.0.0-alpha9-debug | 235 | 1/25/2021 |
1.0.0-alpha9 | 227 | 1/25/2021 |
1.0.0-alpha8-debug | 1,792 | 12/11/2020 |
1.0.0-alpha8 | 1,142 | 12/11/2020 |
1.0.0-alpha7-debug | 1,789 | 11/23/2020 |
1.0.0-alpha7 | 298 | 11/23/2020 |
1.0.0-alpha6-debug | 317 | 10/25/2020 |
1.0.0-alpha6 | 1,011 | 10/25/2020 |
1.0.0-alpha5-debug | 2,973 | 7/14/2020 |
1.0.0-alpha5 | 1,061 | 7/14/2020 |
1.0.0-alpha4-debug | 2,269 | 6/28/2020 |
1.0.0-alpha4 | 1,245 | 6/28/2020 |
1.0.0-alpha3-debug | 2,252 | 5/23/2020 |
1.0.0-alpha3 | 367 | 5/23/2020 |
1.0.0-alpha2-debug | 2,039 | 4/18/2020 |
1.0.0-alpha2 | 334 | 4/18/2020 |
1.0.0-alpha1-debug | 2,324 | 12/8/2019 |
1.0.0-alpha1 | 1,218 | 12/8/2019 |
- Added spatial maps, which are an efficient way to represent items on a grid, particularly when the items are sparse relative to the number of cells.
- Added interfaces for common concepts found in data structures/objects that reside on 2D grids
- IHasID: A structure that has a unique or pseudo-unique integer identifier
- IHasLayer: A structure that has a z-index (aka layer) on which it resides
- IPositionable: A structure that has a 2D position, and fires events when that position changes.
- Added `LayerMasker` which is a helper class for creating 32-bit integer-based masks of specific z-indices/rendering layers.
- Added more custom iterators, and changed iterator paradigm in library to allow for increased performance
- Changes apply to classes/functions including: Rectangle.Positions(), Rectangle.PerimeterPositions(), all line and shape algorithms, LayerMasker functions, BisectionResult, and Area
- Custom enumerables now implement `IEnumerator` and `IEnumerable` directly; therefore their `ToEnumerable()` function is obsolete. You should simply remove the call to that function since the same behavior is obtained without it.
- This also applies to Area; FastEnumerator()` is now deprecated as its behavior is achieved by default when iterating over IReadOnlyArea implementations.
- Iteration over a value known to be of type `Area` is now faster
- Added a ListEnumerator type which is functionally identical to C#'s built-in enumerator for lists, but also implements IEnumerable so supports being returned from functions like the primitives library typically does for functions such as Rectangle.Positions()
- Added `Box` shape algorithm
- Modified default hashing algorithm for Point to one with better performance
- New hashing algorithm collides less and remains viable over a very large range of points; see Point.GetHashCode() documentation for details
- Optimized spatial maps compared to the GoRogue implementation
- The result of MultiSpatialMap.GetItemsAt is now significantly faster to iterate over if the value is of known type MultiSpatialMap
- Added auto-syncing variants of spatial maps
- Anything implementing IPositionable can be used with the auto-syncing variants
- With these variants, if you change the Position field of an object within the spatial map, OR if you call a movement function on the spatial map, both the spatial map and the Position field update and remain in sync
- Modified SpatialMap API slightly
- Move functions (and variants) now tolerate the current position and target position being the same without failing
- Fixed bugs in LayeredSpatialMap
- LayeredSpatialMap.TryMoveAll guarantees that objects aren't moved at all if one or more can't be moved
- LayeredSpatialMap.GetLayersInMask now returns the correct layers