Releases: bsommerfeld/pathetic
Releases · bsommerfeld/pathetic
Release 5.4.6
Release 5.4.5
Changelog
Added
Changed
- PathfindingSearch#exceptionally now accepts a Consumer instead of a Function
- aborting the current pathfinding operation now triggers #orElse instead of #exceptionally and returns an ABORTED PathfindingResult
- #abort now returns void
Fixed
- added defensive cleanup for PathfindingSession
- fixed issue with algorithm cleanup not being performed consistently
- fixed abort behavior to ensure cooperative cancellation
Removed
Release 5.4.4
Changelog
Added
- add JetBrains annotations dependency
- add pathfindingHooks to PathfinderConfiguration
- introduced PathfindingSearch which represents a single search operation
- introduced validationProcessors in PathfinderConfigurationBuilder
- introduced costProcessors in PathfinderConfigurationBuilder
Changed
- marked getEnvironmentContext Nullable in SearchContext
- replaced CompletionStage return from Pathfinder with PathfindingSearch
- simplified exception handling in AbstractPathfinder
- aborting the pathfinding operation is now per-search
Fixed
Removed
- deprecated nodeValidationProcessors in PathfinderConfigurationBuilder
- deprecated nodeCostProcessors in PathfinderConfigurationBuilder
- deprecated Pathfinder#registerPathfindingHooks
Release 5.4.3
Changelog
5.4.3 is a cleanup release, focusing on code organization and deprecating outdated features.
Added
- introduced
.of(double, double, double)factory methods for PathVector and PathPosition - introduced
Depth#value() - introduced
Cost#value()
Changed
- introduced
MinHeap,Resizable,Siftableinterfaces to abstract the heap implementations - extracted release workflow into own repository
Fixed
Removed
- deprecated
Depth#getValue() - deprecated
Pathfinder#abort() - deprecated
Cost#getValue() - ErrorLogger has been removed
- tinylog dependencies have been removed
- deprecated PathUtils
- removed outdated jitpack.yml
Release 5.4.2
Changelog
Added
- .integration-tests module with pathfinding workflow tests
- added JMH benchmarks for internal heaps
Changed
- GridRegionData is now SpatialData
- AStarPathfinder.PathfindingSession has been extracted
Fixed
- ${revision} placeholder
- prevent duplicate exception logging in async mode
- added missing fastutil dependency classes
Removed
Release 5.4.1
Changelog
Added
- Update Dependencies Maven Configuration
- Run Tests Maven Configuration
- Build Jar Maven Configuration
- A specialized, array-backed binary heap tailored for A*
- Introduced overloaded getOffset(PathPosition) method in INeighborStrategy
- Implemented support for reopening Closed Set nodes to handle inconsistent heuristics (configurable via
reopenClosedNodes).
Changed
- Revamp README for better engagement – add humor, benchmarks, and real-world demos to combat stagnation
- optimized core data structures for reduced GC pressure and cleaned up legacy code
- Switched internal Open Set implementation from Fibonacci to
PrimitiveMinHeap. - ~3x to 4.5x faster pathfinding in benchmarks due to improved CPU cache locality.
- Achieved true zero-allocation operations within the Open Set (eliminated millions of
Nodewrapper andDoubleboxing objects). - Renamed NodeCostProcessor -> CostProcessor
- Renamed NodeValidationProcessor -> ValidationProcessor
- Renamed NodeEvaluationContext -> EvaluationContext
Fixed
- removed legacy lazy computing of hcost
- Fixed subtle yet crucial a control flow bug where updates to nodes in the Open Set were ignored, ensuring the optimal path is always prioritized.
Removed
- Several before deprecated Methods (see 5.4.0)
- Tuple3 + Tests
- ComputingCache + Tests
org.jheapsdependency- Experimental annotation
Release 5.4.0
Changelog
Pathetic 5.4.0 is now available on Maven Central.
Added
- Path has a new
collect()method. - Added more tests to AStarPathfinderTest
- Introduced PathUtils class
- Introduced DistanceCalculator interface
- Introduced PathfindingProgress class
Changed
- Optimized tie-breaker calculations
- Cost now only can be positive
- PathImpl now delegates several functions to PathUtils class
- Refactored heuristic implementations with DistanceCalculators
Fixed
- Fixed SquaredHeuristicStrategy with now a matching squared manhattan, octile and heightDiff calculation which improved performance
Removed
- Deprecated negativeCost configuration
- Deprecated several specific distance calculations inside PathPosition
- Several Path post-processing methods are now Deprecated and PathUtils should be used
- Deprecated PathPosition#isInSameBlock
Release 5.3.2
Changelog
Added
- Added 3 tests for AStarPathfinder behavior
Changed
- Small improvements for negative coordinates and cost comparison
- AStarPathfinder is now final
Fixed
- Fixed JavaDoc Deploy Action by @olijeffers0n and @bsommerfeld
Removed
Release 5.3.1
Changelog
Added
- Added new factory method in PathfinderFactory with no arguments
- PathfindingContext in PathfinderHook now contains the current PathPosition
Changed
Fixed
- Fixed StackOverflow in ExpiringHashMap
- Fixed validate transitions when updating existing nodes with better paths by @steveb05
Removed
- Deprecated NATURAL and DIRECT HeuristicWeights has been removed
Release 5.3.0
Changelog
Added
- Added workflow to automate release descriptions
- Added CHANGELOG.md to keep track of changes
- Added tests for all util classes
Changed
- Now using custom Iterables class instead of Guavas
- Offset got replaced with a new INeighborStrategy to provide more flexible offsets and control over the path density
- HeuristicMode got replaced with IHeuristicStrategy, allowing the user more freedom regarding custom heuristics
- Moved heuristic API to the api module.
Fixed
Removed
- Removed HeuristicMode
- Removed Offset