Changelog LITIengine v0.4.20-alpha

You can access LITIengine releases via LITIengine’s Github releases page.

Fixes

  • 0d269f4 Fixed importing map nested tile layers
  • #304 Excluded module-info.class from external lib from the LITIengine jar files
  • 204a153 Fixed bug when loading Resource bundles with Spritesheets missing the image format attribute.
  • 4be7ae1 Fixed issue with sprite sheets not being reloaded when replacing them at runtime
  • 1065757 Fixed image string serialization by returning a compatible image for the current GraphicsEnvironment
  • 019a410 Fixed issue with random point implementation in circles
  • b640d3e Don’t use URLs as keys for resources (this had major performance drawbacks)

Features / Improvements

  • Improved the visibility of APIs that are not intended to be used publically
  • Added test coverage to many utility classes
  • 470b402 Streamlined the ListField constructors.
  • bd6faeb Added explicit listeners for the GamepadManager’s events
  • 368669d Added a dedicated ResolutionChangedListener for the GameWindow
  • b3b5037 Add debug option to render the sprite bounds in addition to the Entity bounds
  • 3cc9187 make shadow offset configurable in the ShadowImageEffect
  • 5af6f4d Allow custom Creature implementations to override the parents controllers
  • #322 Enhanced TextRenderer API
  • a1ea04c Implemented EntitySpawner support for providing spawn points via callback
  • d4207f8 Make use of Spawnpoint.spawn in the EntitySpawner to support events
  • 5d8a575 Added pivot support to Spawnpoint to align spawning entities
  • 8ea0151 Load CustomEmitter resources from ResourceBundles
  • 8113566 Properly support resolution scaling at runtime

Added a unified Random API for the engine

4217403 Previously the extension methods were spread around the utility classes. With these changes, all additions that provide pseudo-random values have been unified and aggregated into one API: Game.random() Some prominent examples of API changes:

  • ArrayUtilities.getRandom(...) -> Game.random().choose(...)
  • CollectionUtilities.random(...) -> Game.random().choose(...)
  • MathUtilities.randomSign() -> Game.random().nextSign()
  • MathUtilities.getRandomIndex(...) -> Game.random().getIndex(...)

Changes

  • 56a123e Use java.nio.charset instead of constants strings for charsets
  • eef04d2 Consulted entity AI related namespaces under de.gurkenlabs.litiengine.entities.behavior
  • 9a78dc4 Unified some event names:
    • ICombatEntity.addHitListener -> ICombatEntity.onHit
    • ICombatEntity.addDeathListener -> ICombatEntity.onDeath

utiLITI

  • #314 #315 Added the possibility to export all sprite sheet information
  • #313 Added additional console feedback for common operations
  • #312 Placed status-bar directly under the map view
  • 319c32f Fixed potential exception when clearing color controls
  • 67aa299 Make components and font sizes aware of the configurable UI scale
  • #320 Fixed silent startup exception when last game file was empty
  • 7ca746f Improved the AssetPanelItem visuals

Misc

  • Added a ton of Javadoc to the public API
  • Added GitHub sponsoring button to the repository
  • Replaced deprecated Gradle configuration elements
  • 509d749 Updated Gradle wrapper 6.0.1 -> 6.2.2
  • ae8f102 Updated JUnit version 5.4.+ -> 5.6.0
  • ae8f102 Updated Mockito version 2.25.+ -> 3.3.3

Contributors in this release

@Phlosioneer
@Gamebuster19901
@YannikSchoeberl
@hyler

Also, thanks to all the contributors to the LITIENGINE community in the forum and our discord! All your comments and thoughts help us to shape the engine towards a stable release.