Skip to content

Releases: ManevilleF/hexx

0.17.0

15 Apr 14:53
Compare
Choose a tag to compare

Changelog

  • Added HexagonalMap storage structure for dense, hexagon shaped maps (#163)
  • Added RombusMap storage structure for dense, rombus shaped maps (#164)
  • Update field_of_movement to use HexagonalMap (#163)
  • Added shapes::rombus (#163)
  • Improved performance Hex ring compute methods (#165)
  • Improved performance Hex edge/wedge compute methods (#165)
  • Added shapes example (#166)
  • Added shape parameter structs in shapes module (#166)
  • Added Hex::rectiline_to (#167)
  • Added HexLayout::all_edges_cordinates (#167)
  • Added DirectionWay::map (#167)
  • (BREAKING) Removed the following ambiguous const values: (#167)
    • Hex::Z
    • Hex::NEG_Z
    • Hex::AXES
    • Hex::AXES
  • Added axis pair consts as:
    • Hex::INCR_X
    • Hex::INCR_Y
    • Hex::INCR_Z
    • Hex::DECR_X
    • Hex::DECR_Y
    • Hex::DECR_Z

What's Changed

Full Changelog: 0.16.1...0.17.0

0.16.1

28 Mar 12:54
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.16.0...0.16.1

0.16.0

26 Mar 09:17
Compare
Choose a tag to compare

Quite a big release, a lot of fixes, new features, and unfortunately a lot of breaking changes !

If you have any trouble migrating from previous version, please let me know and I'll do whatever I can to clarify the changes and help with the migration.

Changelog

  • Removed methods deprecated in previous versions
  • Added z field in the Debug impl of Hex (#156)
  • Added xyz fields in the Debug impl of directions (#156)
  • (BREAKING) Hex neighbors are now following a clockwise order (#157)
  • (BREAKING) Hex diagonal neighbors are now following a clockwise order (#157)
  • Added new hex_area example (#157)
  • Removed deprecated ser_de feature, use serde instead

New grid utilities (#154)

  • Added new grid feature gate
  • Added GridVertex and GridEgde types, representing oriented grid vertices
    and edges

New directions (#156, #157)

  • (BREAKING) Hex edge and diagonal neighbors are now following a clockwise order
  • (BREAKING) Direction types are now following a clockwise order
  • (BREAKING) Renamed Direction to EdgeDirection, and is no longer an enum.
    Instead of the oriented variants use associated const values:
    • Direction::TopRight -> EdgeDirection::FLAT_TOP_RIGHT or EdgeDirection::POINTY_RIGHT
    • Direction::Top -> EdgeDirection::FLAT_TOP or EdgeDirection::POINTY_TOP_RIGHT
    • Direction::TopLeft -> EdgeDirection::FLAT_TOP_LEFT or EdgeDirection::POINTY_TOP_LEFT
    • Direction::BottomLeft -> EdgeDirection::FLAT_BOTTOM_LEFT or EdgeDirection::POINTY_LEFT
    • Direction::Bottom -> EdgeDirection::FLAT_BOTTOM or EdgeDirection::POINTY_BOTTOM_LEFT
    • Direction::BottomRight -> EdgeDirection::FLAT_BOTTOM_RIGHT or EdgeDirection::POINTY_BOTTOM_RIGHT
  • (BREAKING) Renamed DiagonalDirection to VertexDirection, and is no
    longer an enum. Instead of the oriented variants use associated const values:
    • DiagonalDirection::Right -> VertexDirection::FLAT_RIGHT or VertexDirection::POINTY_BOTTOM_RIGHT
    • DiagonalDirection::TopRight -> VertexDirection::FLAT_TOP_RIGHT or VertexDirection::POINTY_TOP_RIGHT
    • DiagonalDirection::TopLeft -> VertexDirection::FLAT_TOP_LEFT or VertexDirection::POINTY_TOP
    • DiagonalDirection::Left -> VertexDirection::FLAT_LEFT or VertexDirection::POINTY_TOP_LEFT
    • DiagonalDirection::BottomLeft -> VertexDirection::FLAT_BOTTOM_LEFT or VertexDirection::POINTY_BOTTOM_LEFT
    • DiagonalDirection::BottomRight -> VertexDirection::FLAT_BOTTOM_RIGHT or VertexDirection::POINTY_BOTTOM
  • Fixed angle inconsistencies in both direction types
  • (BREAKING) Removed HexOrientation::direction_angle method

Mesh generation overhaul (#152)

  • Added new MeshInfo methods:
    • with_scale
    • with_uv_scale
    • centroid
    • uv_centroid
  • (BREAKING) Changed the way ColumnMeshBuilder generates quad to be consistent
    with hexagonal faces
  • (BREAKING) Changed inner ColumnMeshBuilder fields, but the builder API was
    kept consistent
  • Fixed the way ColumnMeshBuilder generate the hexagonal caps, which could behave
    strangely with non center aligned layout
  • Added a mesh::utils modules for primitive shape management
  • Added ColumnMeshBuilder::with_sides_uv_options_fn for block based options setting
  • Added mesh insetting options:
    • ColumnMeshBuilder::with_caps_inset_options to inset the column hexagonal faces
    • ColumnMeshBuilder::with_sides_inset_options to inset the column side quads
    • PlaneMeshBuilder::with_inset_options to inset the hexagonal face

Pull requests

Full Changelog: 0.15.0...0.16.0

0.15.0

21 Feb 21:08
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.14.0...0.15.0

0.14.0

01 Feb 13:08
Compare
Choose a tag to compare

Release notes

  • MSRV set to 1.72.1
  • Added gizmos to mesh_builder example

Breaking changes

  • Fixed UV generation for hexagonal planes, as a consequence:
    • Deprecated UVOptions::quad_default in favor of UVOptions::new
    • Deprecated UVOptions::cap_default in favor of `UVOptions::new
  • MeshInfo::cheap_hexagonal_column now has 12 vertices instead of 13

What's Changed

Full Changelog: 0.13.0...0.14.0

0.13.0

31 Jan 16:04
Compare
Choose a tag to compare

Release notes

algorithms

  • (BREAKING) a_star cost function parameter now takes two adjacent Hex
    nodes instead of one, allowing for more use cases (#130, #128)
  • Fixed field_of_movement algorithm (#142, #127)

Dependencies

  • Bumped bevy_inspector_egui dev dependency (#129)
  • Added bevy_egui dev dependency (#143)

Examples

  • Added a sprite_sheet bevy example (#135)
  • Improved mesh_builder example (#143)

Additions

  • Added HexLayout::rect_size method (#135)
  • Added ColumnMeshBuilder::center_aligned option (#139)
  • Added PlaneMeshBuilder::center_aligned option (#139)
  • Added Hex::to_array_f32 utility method (#141)
  • Added Hex::to_cubic_array_f32 utility method (#141)
  • Added HexLayout::fract_hex_to_world_pos method (#141, #138, #140)
  • Added HexLayout::world_pos_to_fract_hex method (#141, #138, #140)
  • Added HexOrientationData::forward method (#141)
  • Added HexOrientationData::inverse method (#141)
  • Added coordinate expressive const values for Direction (#144)
  • Added coordinate expressive const values for DiagonalDirection (#144)

Mesh generation

  • ColumnMeshBuilder now accepts custom UvOptions for each 6 sides (#143)
    • Added ColumnMeshBuilder::with_multi_sides_uv_options method (#143)
  • UVOptions changes:
    • (BREAKING) changed flip_x and flip_y fields to flip BVec2 (#143)
    • Added rect field, to remap the coordinates in specific sections (#143)
    • Added with_rect builder method (#143)
    • Changed the order of operations in alter_uvs (#143)
  • (BREAKING) Fixed quad generation which had upside down uvs (#143)

Deprecation

  • Deprecated MeshInfo::hexagonal_plane in favor of PlaneMeshBuilder (#139)

What's Changed

Full Changelog: 0.12.0...0.13.0

0.12.0

30 Nov 09:53
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.11.0...0.12.0

0.11.0

17 Oct 12:54
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.10.0...0.11.0

0.10.1 [YANKED]

18 Sep 08:10
Compare
Choose a tag to compare

Yanked to fix #116

What's Changed

Full Changelog: 0.10.0...0.10.1

0.10.0

06 Aug 16:01
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.9.2...0.10.0