"Stay-At-Home-And-Code" Release v0.4.20-alpha
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
ListFieldconstructors. - bd6faeb Added explicit listeners for the GamepadManager's events
- 368669d Added a dedicated
ResolutionChangedListenerfor theGameWindow - b3b5037 Add debug option to render the sprite bounds in addition to the
Entitybounds - 3cc9187 make shadow offset configurable in the
ShadowImageEffect - 5af6f4d Allow custom
Creatureimplementations to override the parents controllers - #322 Enhanced
TextRendererAPI - a1ea04c Implemented
EntitySpawnersupport for providing spawn points via callback - d4207f8 Make use of
Spawnpoint.spawnin theEntitySpawnerto support events - 5d8a575 Added pivot support to
Spawnpointto align spawning entities - 8ea0151 Load
CustomEmitterresources fromResourceBundles - 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.charsetinstead 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.onHitICombatEntity.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
AssetPanelItemvisuals
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.