Releases: ManevilleF/hexx
Releases Β· ManevilleF/hexx
0.20.0
Changelog
HexLayout
- (BREAKING)
HexLayout
Y axis is no longer inverted by default (#187) HexLayout
builder patter (#187)- (BREAKING)
HexLayout
removed theinvert_x
andinvert_y
fields (#190) - (BREAKING)
HexLayout
hex_size
field is nowscale
(#190) - Added the following
HexLayout
methods: (#190)transform_point
transform_vector
inverse_transform_point
inverse_transform_vector
invert_x
invert_y
- Added
HexLayout::with_rect_size
to construct hexagons matching sprite dimensions (#194) - Added
hex_edge_corners
utility method (#170)
Mesh generation (#170, #198)
- (BREAKING)
ColumnMeshBuilder
can now disable some side quads - (BREAKING)
ColumnMeshBuilder
andPlaneMeshBuilder
now use a centralized
FaceOptions
for UV and inset options - Added
PlaneMeshBuilder::with_face_options
builder method - Added
Face::apply_options
taking aFaceOptions
parameter - Renamed
Quad::from_bottom
toQuad::new
- Added a new
HeightMapMeshBuilder
with its associatedheightmap_builder
example
Storage
- Fixed
HexagonalMap
access returning values for indices out of bounds. - (BREAKING) Moved common methods of storage structs to a
HexStore
trait. std::collections::HashMap<Hex, T>
implementsHexStore
- All
HexStore
types now have the following methods:values()
which iterates on the stored valuesvalues_mut()
which iterates mutably on the stored values- (BREAKING)
iter()
which iterates on the key value pairs - (BREAKING)
iter_mut()
which iterates on the key value pairs with mutable reference to the value
- Added the followin
HexagonalMap
methods:len()
is_empty()
Misc
- (BREAKING)
HexOffsetMode
now has only 2 variantsEven
andOdd
- (BREAKING)
Hex::to_offset_coordinates
andHex::from_offset_coordinates
take a newHexOrientation
parameter (#189) - Added
world_unit_vector
methods toEdgeDirection
andVertexDirection
(#190) - Orientation matrices are now
glam::Mat2
(#191) - Added a
resolutions_grid
example (#199) HexOrientation
implementsstd::ops::Not
(#199)- Improve documentation on bevy mesh generation (#200)
What's Changed
- feat: Orientation based offset coordinates conversion methods by @ManevilleF in #189
- chore: HexLayout Y axis is no longer inverted by default by @ManevilleF in #187
- feat: HexLayout has a single scale field for axis management by @ManevilleF in #190
- chore: Clearer Matrix operations by @ManevilleF in #191
- feat: HeightMap mesh builder by @ManevilleF in #170
- feat: HexLayout rect size constructor by @ManevilleF in #194
- feat: HexStore trait by @ManevilleF in #196
- New example: Resolutions grid by @ManevilleF in #199
- HeightMapMeshBuilder custom face options by @ManevilleF in #198
- docs: Improve Bevy mesh render usage note by @ManevilleF in #200
- Chore/0.20 release by @ManevilleF in #201
Full Changelog: 0.19.1...0.20.0
0.19.1
What's Changed
- fix: Hex::rectiline_to not reaching the end of the line by @ManevilleF in #188
Full Changelog: 0.19.0...0.19.1
0.19.0
What's Changed
- chore: Rust 1.82 checks, bumped dependencies by @ManevilleF in #180
- Bevy 0.15 by @bas-ie in #181
- chore: Follow up to bevy 0.15 upgrade by @ManevilleF in #182
- fix: CI issue with cargo test --doc by @bas-ie in #184
New Contributors
Full Changelog: 0.18.0...0.19.0
0.18.0
What's Changed
- add conversions to/from u64 by @SIGSTACKFAULT in #169
- Add serialization and reflection to storage by @Joakker in #171
- Bevy 0.14 by @ManevilleF in #173
- Picking example by @ManevilleF in #177
New Contributors
- @SIGSTACKFAULT made their first contribution in #169
- @Joakker made their first contribution in #171
Full Changelog: 0.17.0...0.18.0
0.17.0
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 useHexagonalMap
(#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
- Ord wrapper Q&A section @ManevilleF in #147
- 2D Vec storage for hexagonal maps by @ManevilleF in #163
- 1D Vec storage for Rombus shape by @ManevilleF in #164
- Improved rings/wedge performance by @ManevilleF in #165
- Shapes example by @ManevilleF in #166
- Rectiline path to by @ManevilleF in #167
Full Changelog: 0.16.1...0.17.0
0.16.1
What's Changed
- impl PartialEq and Eq on HexBounds by @ManevilleF in #160
- Fix direction const values by @ManevilleF in #162
Full Changelog: 0.16.0...0.16.1
0.16.0
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 theDebug
impl ofHex
(#156) - Added
xyz
fields in theDebug
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, useserde
instead
New grid utilities (#154)
- Added new
grid
feature gate - Added
GridVertex
andGridEgde
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
toEdgeDirection
, and is no longer an enum.
Instead of the oriented variants use associated const values:Direction::TopRight
->EdgeDirection::FLAT_TOP_RIGHT
orEdgeDirection::POINTY_RIGHT
Direction::Top
->EdgeDirection::FLAT_TOP
orEdgeDirection::POINTY_TOP_RIGHT
Direction::TopLeft
->EdgeDirection::FLAT_TOP_LEFT
orEdgeDirection::POINTY_TOP_LEFT
Direction::BottomLeft
->EdgeDirection::FLAT_BOTTOM_LEFT
orEdgeDirection::POINTY_LEFT
Direction::Bottom
->EdgeDirection::FLAT_BOTTOM
orEdgeDirection::POINTY_BOTTOM_LEFT
Direction::BottomRight
->EdgeDirection::FLAT_BOTTOM_RIGHT
orEdgeDirection::POINTY_BOTTOM_RIGHT
- (BREAKING) Renamed
DiagonalDirection
toVertexDirection
, and is no
longer an enum. Instead of the oriented variants use associated const values:DiagonalDirection::Right
->VertexDirection::FLAT_RIGHT
orVertexDirection::POINTY_BOTTOM_RIGHT
DiagonalDirection::TopRight
->VertexDirection::FLAT_TOP_RIGHT
orVertexDirection::POINTY_TOP_RIGHT
DiagonalDirection::TopLeft
->VertexDirection::FLAT_TOP_LEFT
orVertexDirection::POINTY_TOP
DiagonalDirection::Left
->VertexDirection::FLAT_LEFT
orVertexDirection::POINTY_TOP_LEFT
DiagonalDirection::BottomLeft
->VertexDirection::FLAT_BOTTOM_LEFT
orVertexDirection::POINTY_BOTTOM_LEFT
DiagonalDirection::BottomRight
->VertexDirection::FLAT_BOTTOM_RIGHT
orVertexDirection::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 facesColumnMeshBuilder::with_sides_inset_options
to inset the column side quadsPlaneMeshBuilder::with_inset_options
to inset the hexagonal face
Pull requests
- Feat/mesh insetting by @ManevilleF in #152
- Feat/new directions by @ManevilleF in #156
- Grid edges and vertices by @ManevilleF in #154
- Follow up fixes and improvements to new directions by @ManevilleF in #157
Full Changelog: 0.15.0...0.16.0
0.15.0
0.14.0
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 ofUVOptions::new
- Deprecated
UVOptions::cap_default
in favor of `UVOptions::new
- Deprecated
MeshInfo::cheap_hexagonal_column
now has 12 vertices instead of 13
What's Changed
- 0.14 chores by @ManevilleF in #145
Full Changelog: 0.13.0...0.14.0
0.13.0
Release notes
algorithms
- (BREAKING)
a_star
cost
function parameter now takes two adjacentHex
nodes instead of one, allowing for more use cases (#130, #128) - Fixed
field_of_movement
algorithm (#142, #127)
Dependencies
Examples
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 customUvOptions
for each 6 sides (#143)- Added
ColumnMeshBuilder::with_multi_sides_uv_options
method (#143)
- Added
UVOptions
changes:- (BREAKING) Fixed quad generation which had upside down uvs (#143)
Deprecation
- Deprecated
MeshInfo::hexagonal_plane
in favor ofPlaneMeshBuilder
(#139)
What's Changed
- Updated bevy_inspector_egui by @ManevilleF in #129
- Feat/algorithm improvements by @ManevilleF in #130
- Sprite Sheet example by @ManevilleF in #135
- Center aligned meshes by @ManevilleF in #139
- Fractional hex on HexLayout by @ManevilleF in #141
- Better UV options by @ManevilleF in #143
- QOL improvements by @ManevilleF in #144
- Fix for field_of_movement algorithm by @ManevilleF in #142
Full Changelog: 0.12.0...0.13.0