Changelog LITIengine v0.4.13-alpha

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.