#coordinate #grid #gamedev

gridava

An implementation of 2D coordinate systems

1 unstable release

0.2.0 Dec 10, 2024
0.1.0 Nov 24, 2024

#491 in Data structures

Download history 122/week @ 2024-11-21 11/week @ 2024-11-28 135/week @ 2024-12-05 48/week @ 2024-12-12 1/week @ 2024-12-19

184 downloads per month

MIT license

110KB
2K SLoC

Gridava

CI codecov unsafe forbidden

Gridava is a Rust library designed for creating and managing tiled coordinate systems. It provides robust support for various tile shapes, including hexagons, along with utilities for coordinate algorithms, transformations, and tile collections. Gridava is ideal for games, simulations, and applications requiring spatial logic.

Features

  • Tile Coordinate Systems: Seamless handling of hexagonal grids with efficient algorithms.
  • Tile Transformations: Support for translations, rotations, and scaling operations.
  • Flexible Tile Collections: Manage and manipulate groups of tiles with ease.
  • Modular and Extensible: Build upon a strong foundation to suit your specific use cases.
  • High Performance: Leverages Rust's speed and safety for demanding applications.

Getting Started

Installation

Add Gridava to your Cargo.toml:

[dependencies]
gridava = "0.2.0"

Then run:

cargo build

Documentation

Comprehensive documentation is available here. Explore the API, examples, and advanced topics to make the most of Gridava.

Contributing

We welcome contributions! Here's how you can help:

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/new-feature).
  3. Commit your changes (git commit -m 'Add a new feature').
  4. Push to the branch (git push origin feature/new-feature).
  5. Open a pull request.

Please review our contributing guidelines for more details.

Roadmap

  • Develop more advanced transformation and manipulation utilities.
  • Integrate visual debugging and documentation tools.
  • Square feature parity
  • Triangle feature parity
  • Documentation diagrams
  • Github documentation
  • Pathfinding

License

This project is licensed under the MIT License. See the LICENSE file for details.

Dependencies

~1.5MB
~33K SLoC