"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
ListField
constructors. - bd6faeb Added explicit listeners for the GamepadManager's events
- 368669d Added a dedicated
ResolutionChangedListener
for theGameWindow
- 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 theEntitySpawner
to support events - 5d8a575 Added pivot support to
Spawnpoint
to align spawning entities - 8ea0151 Load
CustomEmitter
resources 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.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.