Releases: AlmasB/FXGL
Releases Β· AlmasB/FXGL
21.1
Auto-generated changelog
docs
feat
- added ResourceExtractor that extracts resource files from deployed jar to local FS commit
- added software cursor, closes #1090 commit
- the initial framework for PropertyMapView is implemented, closes #704 commit
- added MazeGrid as a traversable grid commit
- added Dungeon Generator, closes #1130 commit
- completed implementation of QuestService, closes #848 commit
- added EngineService onVarsInitialized() to notify services when game vars are ready to use commit
- added EngineService onGameReset() to allow services to clean up and get ready for a new game commit
- web api service can now use both Chrome and Firefox based on availability commit
- Support 8 directions AStar pathfinding, closes #1213 commit
- Add SerializableType to PropertyMap, closes #1250 commit
- added WebAPI and RPC services commit
- AsyncService for parallel EngineService processing commit
- Support 8 directional Grids commit
- added initial impl of tts service commit
- added HttpClientService that allows sending http requests commit
- added intial impl hand tracking service commit
- added initial impl of speech recognition API commit
- added a new module fxgl-intelligence commit
- added support for loading source images from relative paths in .tmx, closes #1302 commit
- SceneService now provides direct access to intro, loading, game, main menu, game menu scenes, closes #1315 commit
- updated russian.lang commit
fix
- emit particles at initial Entity zIndex instead of zIndex 0, closes #1318 commit
- TriggerSequence Minigame check if trigger is between two lines, closes #796 commit
- modifier keys shift, ctrl, alt are not released when a different key is released, related to #1313 commit
- UI loaded from fxml file now correctly loads Image tags, closes #1343 commit
refactor
- load fxgl-intelligence locally, keep consistent package structure commit
- removed deprecated fireEvent() commit
- replace bit flag with a boolean commit
- encapsulate islang flag in Body commit
- extracted reflection based function calling to be reusable commit
- replace deprecated URL() call with URI.toURL() commit
- clean up weld joint commit
test
- added WaypointComponentTest commit
New Contributors
- @nullrawr made their first contribution in #1328
- @DeathPhoenix22 made their first contribution in #1303
- @BeckFW made their first contribution in #1340
- @keziah480 made their first contribution in #1359
- @alexmoore04 made their first contribution in #1342
Full Changelog: 21...21.1
21
Auto-generated changelog
build
- javafx 20 -> 21.0.1 commit
- mvn compiler 3.8.0 -> 3.11.0' commit
- jacoco 0.8.8 -> 0.8.11 commit
- base Java 21, switch to 21+dev-SNAPSHOT commit
- maven PMD 3.15.0 -> 3.20.0 commit
docs
- updated to match JDK 21 baseline, simplify wording commit
feat
- added a particle callback function that will be executed when the particle is removed commit
- added asset loader loadCutscene shortcut commit
- Dialogue Editor can now exit the dialogue from any node, related to #1322 commit
- added a property view for String properties commit
- DialogueGraph Function node now supports add sub mul div commit
- added PropertyMap divide Double and Int commit
- added PropertyMap multiply Double and Int commit
- dialogue editor will now highlight the selected node view commit
- dialogue editor now supports node duplication, shortcut CTRL+D, related to #1322 commit
- dialogue nodes can now be copied commit
- DialogueScene is no longer limited to showing 5 choices and uses a scroll bar when needed to show more choices, related to #1322 commit
- added video cutscenes, closes #1120 commit
- added loadVideo() to asset loader, related to #1120 #406 commit
- MultiplayerService now provides ping (round-trip time) information for a given connection, closes #877 commit
- added MovingAverageQueue commit
- RechargeableComponents now maintain the value is not greater than max value relationship, added valuePercent, closes #833 commit
- added choice dialog box API for List and Enum options commit
- added convenience methods onBtn* for Primary and Secondary mouse buttons commit
- added interpolateIntermediateImages() commit
- new API for extracting Image from a channel given the frame index commit
- added AnimatedImage which animates between corresponding pixels to produce a new image commit
- basic hex support for Tiled .tmx, closes #702 commit
- added Image.getPixel(x, y) API commit
- javafx sliders are now replaced with FXGLSlider type commit
fix
- MDIWindow controls now function correctly commit
- viewport now correctly unbinds itself from an entity commit
- blending operations now always produce valid pixel colors through limiting values to [0..1], closes #712 commit
- adding a message handler while handling a message does not cause concurrency exceptions commit
- added missing implementations in EmbeddedPaneWindow commit
- a new copy of PropertyMap is returned from AssetLoader, closes #977 commit
- layout of audio menu is now correctly aligned regardless of volume, closes #1152 commit
perf
- use LinkedHashSet vs Array to store Updatable, this allows significantly faster deletion of numerous Updatable objects, such as animations commit
refactor
- clean up wheel joint commit
test
- junit 5.9.2 -> 5.10.0 commit
- restored RevoluteJointTest commit
- added missing test property of type float in .tmx objects commit
- added a test for loading a .tmx map with an error commit
New Contributors
- @Harvalove made their first contribution in #1230
- @wonderfulLand made their first contribution in #1286
- @SimonVerhoeven made their first contribution in #1295
Full Changelog: 17.3...21
17.3
Auto-generated changelog
build
- jfx 19.0.2.1 -> 20, kotlin 1.8 -> 1.8.10, attach 4.0.16 -> 4.0.17, jackson 2.14.1 -> 2.14.2 commit
- JavaFX 19 -> 19.0.2.1 (#1223) commit
- Kotlin 1.7.10 -> 1.8.0, Jackson 2.13.4 -> 2.14.1, Attach 4.0.15 -> 4.0.16 commit
- jfx 19-ea+11 -> 19, jackson 2.13.3 -> 2.13.4 (#1207) commit
- use java 19-ea for tests commit
docs
- added a link to JDK commit
feat
- completed basic isometric support for .tmx, closes #1151 commit
- AnimationTexture can start from a given frame, part of #1244, co-author: @chengenzhao commit
- Added Inventory::transferAllFrom(), getItemQuantity() returns 0 if no item, closes #1131 commit
- added setDirectionVector3D, closes #924 commit
- ViewComponent.getChild() allows retrieving a specific child that is directly cast to given type commit
- added bindToLookAt3D() which makes a transform look at another transform commit
- added PropertyMap::addAll(), updated forEach impl and doc, closes #1199 commit
- audio object is now in public API, closes #1187 commit
fix
- if title is empty, set to Untitled, closes #1225 (#1257) commit
- 3D models in .obj format without normals are now loaded correctly, related to #1245 commit
- PropertyMap remove() correctly removes internal listeners, closes #1229 commit
- original asset objects are now cast during first load to avoid leaking originals where we shouldnt, #977 commit
- updating rotationX and rotationY now correctly updates direction3D #924 commit
perf
- optimise A* pathfinding performance commit
refactor
- Sweep.getTransform() commit
- DistanceProxy commit
- DistanceData commit
- removed deprecated loadCursorImage() commit
test
- added matrix 3x3 test (#1258) commit
- added missing Mat22 tests commit
- added initial SweepTest commit
- added initial DistanceTest commit
- added initial DistanceProxyTest commit
Contributors
- @chengenzhao made their first contribution in #1202
- @armlesshobo made their first contribution in #1218
- @H-jj-R made their first contribution in #1257
- @Mageconvict made their first contribution in #1258
Full Changelog: 17.2...17.3
17.2
Auto-generated changelog
build
- kotlin 1.5.32 -> 1.6.0 commit
docs
feat
- the languages menu now displays the name in the target language, related to #1170 and #1172 commit
- NotificationService now also accepts Node icon, closes #1149 commit
- added WaypointMoveComponent which moves the entity based on Point2D, related to #980 commit
- Input UserAction now provides API for double key/button presses commit
- trigger listener now supports direct onKey and onButton callbacks which are triggered before the generic onAction callbacks, closes #1070 commit
- Viewport::bindToFit for entities is now restored, closes #1036 commit
- FrameData now supports offsets, closes #1181 commit
- allow access to viewport camera entity via public API, closes #1168 commit
- added support for Tiled 1.9.0 class property, #1182 commit
- RechargeableDoubleComponent also has the value in percentage format as a binding commit
- added KeepInBoundsComponent, fixed KeepOnScreenComponent, closes #842 commit
- translate animation builder will use current position if from is not set commit
- added EventBus.removeAllEventHandlers, #1160 commit
fix
refactor
17.1
Auto-generated changelog
build
- javafx 17.0.0.1 -> 18 commit
- gluon attach 4.0.9 -> 4.0.13 commit
- junit jupiter 5.7.0 -> 5.8.2, junit platform 1.7.0 -> 1.8.2 commit
- nexus staging 1.6.7 -> 1.6.8 commit
docs
- clarified that angle is in radians commit
feat
- added atDestinationProperty() to AStarMoveComponent, closes #945 commit
- added QuestService.removeAllQuests() commit
- added DSL API for world variable changes commit
- startCutscene() now accepts an extra onFinished param, closes #1156 commit
- added support for box2d prismatic joint commit
- DialogService error dialogs will no longer show LOG button since these are for expected exceptions handled by dev, closes #1119 commit
- added DSL support for loading common assets from URL, closes #971 commit
- Tiled 1.4.2 support commit
- .tmx level loader now supports polyline objects, closes #1133 commit
- TransformComponent can bind its translate X Y Z to another TransformComponent commit
fix
- removing a ChoiceNode option now correctly disconnects the attached edge, closes #1122 commit
- setting NotificationService background and text color now correctly updates the view, closes #1143 commit
refactor
test
17
Auto-generated changelog
build
- kotlin 1.5.10 -> 1.5.32 commit
- maven pmd plugin 3.13.0 -> 3.15.0 commit
- base Java 17, switch to 17+dev-SNAPSHOT commit
- javafx 16 -> 17.0.0.1, closes #1107 commit
docs
feat
- FXGL 17 intro commit
- added transferFrom() to Inventory commit
- new API to set time to animation directly and to build sequential animations commit
- dialogue syntax check, show an error icon if there are incomplete paths, #651 commit
- added showChoiceBox to DialogService, closes #1094 commit
- added audioFileName support to nodes, #651 commit
- bind debug camera to CTRL+8, to avoid issues with CTRL+C commit
- added DialogueContext, #1116 commit
- added bulk dialogue editor actions commit
- undo (ctrl+z) is complete for main editor actions, #651 commit
- added TimeComponent::copy, #1041 commit
- Added draft skybox implementation commit
- add Platform.EMBEDDED, #1079 commit
- added public API to change render fill of FXGLPane, set default to White for consistency with native mode, #1085 commit
- added randomColorHSB() commit
- added embeddedShutdown() that allows restarting an FXGL instance without the need to exit JavaFX, added sample, #1075 commit
fix
- fixed non-uniform frame distribution for AnimationTexture, closes #1067 commit
- fixed a bug that causes audio service to not load properly on embedded devices commit
- fixed a bug that would cause FS access via gluon attach on embedded devices commit
refactor
- internal refactor Inventory commit
- clean up MDIWindow, closes #815 commit
- remove redundant code, active is always false at that point, closes #1024 commit
repo
- ignore auto-generated changelog files commit
11.17
- Added download file API to NetService
- Rotation and scale in 3D now support origin points (pivot points)
- Added a setting that allows music to be paused when the game is minimized, paused by default
- Added Model3D sample showing how to load .obj models
- Added JointSample and support for RevoluteJoints from box2d
- Added fluent API to HearingSenseComponent, thanks to @jo372
- Updated physics collision sample, thanks to @jo372
- Ignore and warn during when adding a component during a component update, thanks to @lydianeU
- Added PropertyMapChangeListener
- Added replication support for PropertyMap
- Camera in 3D has a new setting allowing the pitch (rotationX) to be clamped between -90 and 90 deg
- Multiple superfluous modules merged into few
Bug fixes:
- AutoRotationComponent smooth now shouldn't make sharp turns
Version bump:
- jacoco 0.8.6 -> 0.8.7
- kotlin 1.4.30 -> 1.5.10
11.16
- Restored and refactored MultiplayerService
- Added ReplicationEvent (javafx event that can be replicated on a remote machine)
- FPS camera (
camera3D.setFPSCamera(true)
) - Mouse sensitivity setting
- Removed dependency on
javafx.swing
module, thanks to @FDelporte - Performance improvements in Tiled map loading, thanks to @adambocco
isExperimental3D
->3D
isExperimentalNative
->isNative
- Model3D can be loaded from an .obj
- Model3D now has a copy()
- Added Cuboid shape
- EntityGroup::size(), thanks to @adambocco
- Allow providing a custom default cursor for all scenes
- Internal physics refactoring
- Entity no longer throws an exception when adding a duplicate Component (warns instead), thanks to @Zhack47
Version bump:
- JavaFX 15 -> 16
- Compile target for Kotlin: 1.8 -> 11
11.15
- Custom 3D shapes
- Allow users to set render width/height when running in embedded mode
- Game world is less aggressive and warns the user instead when an illegal operation is attempted
- Added cutscene text format: cutscenes can have author names and images
- Internal refactorings for physics code
- Significant performance improvements for collision checks where both entities are at 0 rotation
- Merged standalone modules
- Logger prints full stack trace for caught exceptions
- Draft API for downloading files
- Screenshot key is now CTRL+8 to avoid issues with
P
- Bug fixes related to mouse UI coordinates
- Tiled tile flipping support, thanks to @adambocco
- Initial draft of SenseAI
- Initial draft of fxgl editor
- jackson 2.11.1 -> 2.12.1
11.14
- Major internal refactoring of physics (both light and heavy-weight). Please check your physics related code behaves the same
- Significantly improved physics performance of collision detection when at least one entity is at non-zero rotation
- Added experimental embedded mode support, where FXGL can run inside a JavaFX application natively via a
Node
- AssetLoader can now load from any
URL
, thanks to @sormuras for discussions - Added
loadJSON()
to asset loader - Renamed
master
branch torelease
to clearly represent branch purpose - All of CI is now on GitHub Actions
- Inventory feature improvements, thanks to @adambocco for PRs
- Kotlin: 1.4.10 -> 1.4.30
Bug fixes:
- Fixed a bug in event handling for Input. Now filters and handlers behave a similar way to JavaFX
- Fixed a bug that would case loop runner to speed up after pause / delay / resume sequence