## Auto-generated changelog ### build * javafx 20 -> 21.0.1 [commit](https://github.com/AlmasB/FXGL/commit/b5e5c88c2) * mvn compiler 3.8.0 -> 3.11.0' [commit](https://github.com/AlmasB/FXGL/commit/2d2492ff8) * jacoco 0.8.8 -> 0.8.11 [commit](https://github.com/AlmasB/FXGL/commit/cb0d15823) * base Java 21, switch to 21+dev-SNAPSHOT [commit](https://github.com/AlmasB/FXGL/commit/dd4fbfd48) * maven PMD 3.15.0 -> 3.20.0 [commit](https://github.com/AlmasB/FXGL/commit/a1cf6298f) ### docs * updated to match JDK 21 baseline, simplify wording [commit](https://github.com/AlmasB/FXGL/commit/8e671c896) ### feat * added a particle callback function that will be executed when the particle is removed [commit](https://github.com/AlmasB/FXGL/commit/f3b52e378) * added asset loader loadCutscene shortcut [commit](https://github.com/AlmasB/FXGL/commit/13635223e) * Dialogue Editor can now exit the dialogue from any node, related to #1322 [commit](https://github.com/AlmasB/FXGL/commit/f11338791) * added a property view for String properties [commit](https://github.com/AlmasB/FXGL/commit/a7cfc8dcf) * DialogueGraph Function node now supports add sub mul div [commit](https://github.com/AlmasB/FXGL/commit/aa6ed93f8) * added PropertyMap divide Double and Int [commit](https://github.com/AlmasB/FXGL/commit/b5e373452) * added PropertyMap multiply Double and Int [commit](https://github.com/AlmasB/FXGL/commit/02203774c) * dialogue editor will now highlight the selected node view [commit](https://github.com/AlmasB/FXGL/commit/4cc230028) * dialogue editor now supports node duplication, shortcut CTRL+D, related to #1322 [commit](https://github.com/AlmasB/FXGL/commit/91d763d88) * dialogue nodes can now be copied [commit](https://github.com/AlmasB/FXGL/commit/4b9214be5) * DialogueScene is no longer limited to showing 5 choices and uses a scroll bar when needed to show more choices, related to #1322 [commit](https://github.com/AlmasB/FXGL/commit/7ef92fb08) * added video cutscenes, closes #1120 [commit](https://github.com/AlmasB/FXGL/commit/cb7050038) * added loadVideo() to asset loader, related to #1120 #406 [commit](https://github.com/AlmasB/FXGL/commit/8ab6c2d8b) * MultiplayerService now provides ping (round-trip time) information for a given connection, closes #877 [commit](https://github.com/AlmasB/FXGL/commit/80b25ac9a) * added MovingAverageQueue [commit](https://github.com/AlmasB/FXGL/commit/557035ef6) * RechargeableComponents now maintain the value is not greater than max value relationship, added valuePercent, closes #833 [commit](https://github.com/AlmasB/FXGL/commit/83f006596) * added choice dialog box API for List and Enum options [commit](https://github.com/AlmasB/FXGL/commit/453f6f5f4) * added convenience methods onBtn* for Primary and Secondary mouse buttons [commit](https://github.com/AlmasB/FXGL/commit/6e3d3e8d7) * added interpolateIntermediateImages() [commit](https://github.com/AlmasB/FXGL/commit/eab55b5b6) * new API for extracting Image from a channel given the frame index [commit](https://github.com/AlmasB/FXGL/commit/87ca500c2) * added AnimatedImage which animates between corresponding pixels to produce a new image [commit](https://github.com/AlmasB/FXGL/commit/e539eba77) * basic hex support for Tiled .tmx, closes #702 [commit](https://github.com/AlmasB/FXGL/commit/5de072796) * added Image.getPixel(x, y) API [commit](https://github.com/AlmasB/FXGL/commit/c5f23b7e8) * javafx sliders are now replaced with FXGLSlider type [commit](https://github.com/AlmasB/FXGL/commit/68241ee20) ### fix * MDIWindow controls now function correctly [commit](https://github.com/AlmasB/FXGL/commit/79253ef7d) * viewport now correctly unbinds itself from an entity [commit](https://github.com/AlmasB/FXGL/commit/76cdf21f7) * blending operations now always produce valid pixel colors through limiting values to [0..1], closes #712 [commit](https://github.com/AlmasB/FXGL/commit/22c7ecf98) * adding a message handler while handling a message does not cause concurrency exceptions [commit](https://github.com/AlmasB/FXGL/commit/d44c6472e) * added missing implementations in EmbeddedPaneWindow [commit](https://github.com/AlmasB/FXGL/commit/df925ca20) * a new copy of PropertyMap is returned from AssetLoader, closes #977 [commit](https://github.com/AlmasB/FXGL/commit/901da1b97) * layout of audio menu is now correctly aligned regardless of volume, closes #1152 [commit](https://github.com/AlmasB/FXGL/commit/e1cd595d0) ### perf * use LinkedHashSet vs Array to store Updatable, this allows significantly faster deletion of numerous Updatable objects, such as animations [commit](https://github.com/AlmasB/FXGL/commit/734875995) ### refactor * clean up wheel joint [commit](https://github.com/AlmasB/FXGL/commit/3815f522e) ### test * junit 5.9.2 -> 5.10.0 [commit](https://github.com/AlmasB/FXGL/commit/74dc0a23b) * restored RevoluteJointTest [commit](https://github.com/AlmasB/FXGL/commit/468bdad9d) * added missing test property of type float in .tmx objects [commit](https://github.com/AlmasB/FXGL/commit/e3f069a1d) * added a test for loading a .tmx map with an error [commit](https://github.com/AlmasB/FXGL/commit/7d5870512) ## New Contributors * @Harvalove made their first contribution in https://github.com/AlmasB/FXGL/pull/1230 * @wonderfulLand made their first contribution in https://github.com/AlmasB/FXGL/pull/1286 * @SimonVerhoeven made their first contribution in https://github.com/AlmasB/FXGL/pull/1295 **Full Changelog**: https://github.com/AlmasB/FXGL/compare/17.3...21