The LITIengine Changelog for the release v0.4.13-alpha.
Fixes
- #133 Fixed the DropdownListField rendering multiple times
- Fixed a bug that was causing duplicate map objects
- Fixed an issue with width/height <= 0 when scaling images.
Features / Improvements
- Added a method that automatically adds linebreaks when rendering text
- Streamline the `IEnvironment` API by adding lots of overload methods
- Implemented possibility to get a list of entities from the environment by providing an array of mapIDs.
- #124 Implemented support for rendering the backgroundcolor of maps
- Added default values for `MapObjectLoader.loadCollisionProperties`
- Added `CustomPropertyProvider.hasCustomProperty()` method
- Named the Threads for better debugging
- Added Exit codes
- Improved crash report: It will produce a `crash.txt` with the exact exception that caused the issue
- #151 Added Support for tile custom properties
- #87 Introduced an option for antialiased/interpolated rendering
- Improved the API for adding a custom configuration group.
- #66 Implemented `MapObjectSerializer` -> Possibility to export `IEntity` as `IMapObject`
- #105 Implemented possibility to use blueprints on the environment
- Added basic events for loading/removing entities.
- This can either be overwritten by custom implementations or one can register an `EntityListener`.
- Fixed a ton of typos
- Added a ton of unit tests
- Lots and lots of internal improvements
Changes
- By default, Controller Input is now disabled because it requires native libraries.
- Controller support for x86 was dropped due to the `jinput` update
- #134 The `TmxMapLoader` is now a static class
- Changed the implementation for fullscreen from `setExtendedState` to `GraphicsDevice.setFullscreenWindow`
- Made `Game.terminate()` private -> The application should be closed from code using `System.exit(0)`
- #144 Remove the loading of system fonts by the FontLoader
- The FontLoader is intended to load custom fonts from the game resources. If one wants to use a system font, he can just initialize the Font directly and doesn’t have to register the font on the environment.
- Reorganized namespaces:
- Introduced new base namespace for all emitter related stuff `de.gurkenlabs.litiengine.graphics.emitters`
- Moved some entity implementations from different namespaces to `de.gurkenlabs.litiengine.entities`.
- The `FontLoader` class has been removed. Fonts are now loaded with the static `Resources` class
- The game now crashes if an unexpected exception occurs
- Detect an unsupported Tiled version and fail-fast (currently supported: `1.1.5`)
- Replace the `IKeyObserver` interface by the AWT `KeyListener`.
- Remove a ton of unnecessary interfaces
- #155 Clean up the `RenderEngine` by removing static methods
- Implemented static `ImageRenderer`
- Implemented static `TextRenderer`
- Implemented static `ShapeRenderer`
utiLITI
- #86 Made the editor remember the visibility of the layers
- #95 Provided additional methods for adding entities
- #81 Provided a default configuration for the utiliti editor.
- #100 Implemented a deselect functionality when in multi-select-mode
- #108 Made light focus offset configurable in the editor
- #111 Prevent selection of all mapObjectLayers when updating the layer list
- Added Layer control panel for Adding / Deleting / Recoloring / Duplicating / Lifting / Lowering a MapObjectLayer and one for hiding all non-selected layers.
- Fixed ID assignment when copying objects in the editor.
- Fixed issue with lights not to being updated when snapping
Misc
- Added “Hello World” example projects
- Updated Gradle to 4.9
- Updated jinput 2.0.7 to 2.0.9
- Updated junit to 5.2.+
- Updated mockito to 2.21.+
- Updated sonarqube plugin to 2.6.2
- Updated launch4j to 2.4.4
Shout out to TheRamenChef for his contribution to this release.