Litiengine Versions Save

LITIENGINE 🕹 The pure 2D java game engine.

v0.4.19-alpha

4 years ago

Fixes

  • bf31e15889cf18ac8a1d6e7112eb295961b77e9a Fixed ArgumentNullException that could be thrown if an entity hit event was not related to an Ability.
  • 7c25cb2b2c9db4867b67f1bdbcc2814939399320 Fixed bug that made XmlUtilities.read not work for files within a jar.
  • 69afe69f4162d1c9f218b8c42eaf2b84271e238d Don't ignore minimal location updates on entities
  • 680ce0b0e1f66ab2804b80133086f5b45d9716d1 Fixed issue which caused the Camera hotfix for certain renderscales not to work.
  • ca5cfa2b19fe7f10d2890f9f980f5b65db483a4e Fixed null pointer check in TmxMap
  • 59360c453c1fca4f4c176a2bceb7a6e6c9dd0a0a Fixed issue with the GameWorld.reset overload

Features / Improvements

  • Added and improve the Javadocs of many APIs
  • aeccaa4 Added possibility to remove timed actions.
  • #301 28f1036853750f904fe0fc111947a826765b07b3 Added entity render events for individual entities.
  • adb2bfc04e8ebdfbddf22cd180a02ee3c3ae95f1 Extend the ReflectionUtilities with a few helpful methods
  • 9fde70d4b80d5ec2422ee7a5d13cf5c67cf61386 Added events for changes on ConfigurationGroups
  • c8ca4b126b1c68fe76f2229ccb4adef04c9740d9 Added events for layer rendering on the MapRenderer
  • 70c598ac4390f8ee93327c2428cb26e4291ba29c Added onMoved event for IMobileEntity
  • 41679ed36c8549ec3c542a732c818363e3068d66 Added spawned event for Spawnpoint
  • 87c339da1f73c739bdeb7ed26711f27a022537d0 Added updatable count to the GameMetrics
  • a7a763727f093fa4b7cfe1b472effcf5c1108e7a Don't modify layer visibility when serializing maps.
  • #297 Re-Added shortcut API for finding tile bounds

Changes

  • 5ddf044ef8e433df3a720dcd34b7fd6722dd02e3 Drop the Game.loop().getUpdateRate() method in favor of Game.loop().getTickRate().
  • 30cd2c19bc3fcf88b1a3745f2afed2d2f3b3d03b Improve visibility modifies of the SoundEngine
  • 6d92e25e052a431c52bb5dd476a3dde6bb1af903 Rework the default mouse cursor behavior
    • Use the default cursor if no virtual cursor is set and the mouse is not being grabbed by the window.
    • Move the debug cursor handling to the MouseCursor implementation
    • Don't grab the mouse by default.
  • c950d551bf0067d8fe323741d3b1c9edb7d3be10 Replace some explicitly thrown exceptions by log messages.
  • d715f2fed0531dd1873fae6a96736bdc8a19e214 Drop the de.gurkenlabs.litiengine.annotation package.
  • 39f365e779261eaa277b5f1be4cc16d16c4da643 Change Entity collections from the Environment to be immutable

Revamp of several event methods and listeners

  • 3747d8c73601f1e9f9a8e4b81b2c62aeae8dd7a9 080afea7c1d19aec9cb7bb092c4cf29f3f923265 Streamline rendering events and API
  • 59b4b3d09f57cc5d5cd84d8c8fd0e7bac7d29559 Reworked the ScreenManager events
  • 1c41e83b4e333141bc4b16af0f39bb9a91b9cb99 Reworked the Mouse events
  • 537b5d73b335b2595252199bb1b229517c401677 Reworked the Keyboard events
  • 480a259f61070bf366afd23186a2fcda5ca03d0a Reworked the Gamepad and GamepadManager events
  • 111d81da1bcd83e1b227016867683088618a17b0 Reworked the Camera events
  • 4204d8ad8883c18933374b664f4ccf0b5f469e80 Reworked the Emitter events
  • e438fc84e983369ae2160e6f12475572516b6f4f Reworked the Ability events
  • Marked many listeners as FunctionalInterface

utiLITI

  • 60c0466012238593e614ba18cfe5db6ce4d76f75 Fixed initial error when no game file is loaded.
  • #299 Fixed Reassigning map IDs

Misc

  • Updated SonarQube plugin 2.7 -> 2.8
  • Updated Gradle 5.3.1 -> 6.0.1
    • d4d35a7d8d91dc7d36fc6c36b17de9792af5fb96 Print Gradle warnings in the build log.
  • 7340f5bd3dcc2f97ba67d50a385c9566b6c66635 Prevent duplicated resources in the .jar files.
  • 94b46dc690f5c3b8a1269f93f8012d516701115f Exclude duplicate files from the jar.

Contributors in this release

@TheRamenChef @Phlosioneer

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.

0.4.19

4 years ago

Fixes

  • bf31e15889cf18ac8a1d6e7112eb295961b77e9a Fixed ArgumentNullException that could be thrown if an entity hit event was not related to an Ability.
  • 7c25cb2b2c9db4867b67f1bdbcc2814939399320 Fixed bug that made XmlUtilities.read not work for files within a jar.
  • 69afe69f4162d1c9f218b8c42eaf2b84271e238d Don't ignore minimal location updates on entities
  • 680ce0b0e1f66ab2804b80133086f5b45d9716d1 Fixed issue which caused the Camera hotfix for certain renderscales not to work.
  • ca5cfa2b19fe7f10d2890f9f980f5b65db483a4e Fixed null pointer check in TmxMap
  • 59360c453c1fca4f4c176a2bceb7a6e6c9dd0a0a Fixed issue with the GameWorld.reset overload

Features / Improvements

  • Added and improve the Javadocs of many APIs
  • aeccaa4 Added possibility to remove timed actions.
  • #301 28f1036853750f904fe0fc111947a826765b07b3 Added entity render events for individual entities.
  • adb2bfc04e8ebdfbddf22cd180a02ee3c3ae95f1 Extend the ReflectionUtilities with a few helpful methods
  • 9fde70d4b80d5ec2422ee7a5d13cf5c67cf61386 Added events for changes on ConfigurationGroups
  • c8ca4b126b1c68fe76f2229ccb4adef04c9740d9 Added events for layer rendering on the MapRenderer
  • 70c598ac4390f8ee93327c2428cb26e4291ba29c Added onMoved event for IMobileEntity
  • 41679ed36c8549ec3c542a732c818363e3068d66 Added spawned event for Spawnpoint
  • 87c339da1f73c739bdeb7ed26711f27a022537d0 Added updatable count to the GameMetrics
  • a7a763727f093fa4b7cfe1b472effcf5c1108e7a Don't modify layer visibility when serializing maps.
  • #297 Re-Added shortcut API for finding tile bounds

Changes

  • 5ddf044ef8e433df3a720dcd34b7fd6722dd02e3 Drop the Game.loop().getUpdateRate() method in favor of Game.loop().getTickRate().
  • 30cd2c19bc3fcf88b1a3745f2afed2d2f3b3d03b Improve visibility modifies of the SoundEngine
  • 6d92e25e052a431c52bb5dd476a3dde6bb1af903 Rework the default mouse cursor behavior
    • Use the default cursor if no virtual cursor is set and the mouse is not being grabbed by the window.
    • Move the debug cursor handling to the MouseCursor implementation
    • Don't grab the mouse by default.
  • c950d551bf0067d8fe323741d3b1c9edb7d3be10 Replace some explicitly thrown exceptions by log messages.
  • d715f2fed0531dd1873fae6a96736bdc8a19e214 Drop the de.gurkenlabs.litiengine.annotation package.
  • 39f365e779261eaa277b5f1be4cc16d16c4da643 Change Entity collections from the Environment to be immutable

Revamp of several event methods and listeners

  • 3747d8c73601f1e9f9a8e4b81b2c62aeae8dd7a9 080afea7c1d19aec9cb7bb092c4cf29f3f923265 Streamline rendering events and API
  • 59b4b3d09f57cc5d5cd84d8c8fd0e7bac7d29559 Reworked the ScreenManager events
  • 1c41e83b4e333141bc4b16af0f39bb9a91b9cb99 Reworked the Mouse events
  • 537b5d73b335b2595252199bb1b229517c401677 Reworked the Keyboard events
  • 480a259f61070bf366afd23186a2fcda5ca03d0a Reworked the Gamepad and GamepadManager events
  • 111d81da1bcd83e1b227016867683088618a17b0 Reworked the Camera events
  • 4204d8ad8883c18933374b664f4ccf0b5f469e80 Reworked the Emitter events
  • e438fc84e983369ae2160e6f12475572516b6f4f Reworked the Ability events
  • Marked many listeners as FunctionalInterface

utiLITI

  • 60c0466012238593e614ba18cfe5db6ce4d76f75 Fixed initial error when no game file is loaded.
  • #299 Fixed Reassigning map IDs

Misc

  • Updated SonarQube plugin 2.7 -> 2.8
  • Updated Gradle 5.3.1 -> 6.0.1
    • d4d35a7d8d91dc7d36fc6c36b17de9792af5fb96 Print Gradle warnings in the build log.
  • 7340f5bd3dcc2f97ba67d50a385c9566b6c66635 Prevent duplicated resources in the .jar files.
  • 94b46dc690f5c3b8a1269f93f8012d516701115f Exclude duplicate files from the jar.

Contributors in this release

@TheRamenChef @Phlosioneer

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.

v0.4.18-alpha

4 years ago

Fixes

  • f3b0e529d7fda0a9560db3c2481e18e509023ef3 Fixed a possible StackOverflowException in ImageFormat.isSupported(...)
  • 479e48433b45b1b4b110ef2c2c9745453bbe5ac1 Fixed mapID assignment for Blueprints
  • 52f80e187c0dee5d795044d380a9aee5210b397a Fixed concurrency issues in TmxMap by using thread-safe containers for Tilesets and Layers
  • 9ac68d1cac4cf882f0a26ae9272900481efb27b1 Removed redundant call to Creature.updateAnimationController()
  • 6bed9f1be784fcbd37acbdcb375dab6383f05647 Replaced RenderingHints.KEY_ANTIALIASING with RenderingHints.KEY_TEXT_ANTIALIASING in the TextRenderer
  • 5aa2313dc90b054041604130c4a1142b46d004e0 Fixed Trigger to adopt changing activation conditions while relevant Entities are in the trigger area
  • #266 Fixed the way AnimationRules are added to EntityAnimationController
  • afc19979d8793e63bb8809f0dd93b54a1ae7f2b7 c39d441ede813a4645d281d795725b734a17252e Fixed some graphics issues in the Camera and Environment
  • 4cfe6edddef1deafe1bf64d35bd8531b17332ea2 Fixed Concurrency issue in TileLayers.
  • #264 Fixed wrong tileset locations in exported maps.
  • fa573c917c5a53bcaf4afd356401cd53ab777787 Fixed possible NullPointerException when a Tileset's image was null
  • 217d41b04cc236b605ff3513361b91b6b0a7cd0e Fixed UpdateLoop interruption behaviour
  • f152d52add53e06dc011fba3b9358c635e128b16 Made sure Entities cannot have negative width or height.
  • #271 Fixed wrong argument in Spritesheet.setSpriteHeight(...)
  • #283 Fixed potential null reference when CustomProperty value is undefined.
  • c53b036fcb7c01623cc997d9bcea40e3f8dd552e Fixed potential null reference in DecimalFloatAdapter.
  • 4956e23f2c4f7193d290d7aca4ff94adcc5ca932 Fixed potential text outline bug when using certain RenderScales.
  • 65317ef4aea580fbc6ec66d341f637f16af5f4d1 Fixed entity debug rendering being cancelled when current animation frame is null.
  • 64b1de4572490a12b844273dae4b20d98d3dc6a6 Set default font for all ImageComponents containing text, not only the ones with a background spritesheet.
  • #295 Fixed issue with virtual mouse and grabMouse setting.
  • 25f60bf52e23da42048a8c8c833f1a2ed93b5f0c Encoded spaces in file paths.
  • cfbe31dc3b00b4fdc05e96eced397d861e602030 Prevent potential null reference when trying to scale images that are null.
  • #284 Fixed map serialization being distúrbed by handling paths as URL fragments.
  • 1d4ad94587c799df83cc07e9dc771a793f0eeecd Fixed an issue when combining paths with whitespaces.

Features / Improvements

  • 8996fd4565f0ffc7addec6e9a0f4a6d968ed775a Throw ResourceLoadExceptions when failing to load resources
  • 9bc1f2bf82fc89f930c02dd0cd423c6dd1c047e1 Added renderWithLayer property to @EntityInfo
  • f93a191cdabe8215e1c753f99ff06fd33f6317f6 Set default RenderType for TileLayer to GROUND
  • 6876143e4682aab38781a7d6a12db18df30da594 Set default RenderType for all Layers to GROUND
  • de2c7a02a98d0e4f04b225346904de03fe18206a Added util method to extrude rectangles
  • eba3d4962bb00902f734b6246ed395f386818ef9 Added getter EntityAnimationController.getAnimationRules()
  • 816715a4299150fba9457e4e9fd593d5f27aeac3 Added method overload for EntityAnimationController.addAnimationRule(...)
  • #224 Added Appearance properties for borders
  • dc550f0b4fddf6f01d0a91dce9531082a5ecbcbb Added SpeechBubbleListener
  • 7674c6c2903d15f2d871a7621efbaaf2be393fa8 Allow setting SpeechBubble text display time
  • 61dbc657e772bd3a05e262078e13a636b60c29e9 Allow hiding Speechbubble
  • e067ef1a4e2dfc286b662e9499761fbd65802391 63d4fb23ac0240de37183f8bf3d61cbc72f25dc6 ca714b70a7a3c2603ba6cc9bf6686614369f0400 f6db03d7f12289ac3ae286c6188c7c33794b4c6b 077b52506db62a44aed8f9f17a9618ec40997f31 Minor overhaul of the Sound Engine
  • 98255f91b1c6e440422bdea614316fa0a692e1ac Allow an Entity to be removed by an EnvironmentEntityListener it triggers
  • c188504d846d61b210ba39492cf68495e28a6c8d Replaced some CopyOnWriteArrayList instances with the faster ConcurrentHashMap.newKeySet()
  • #265 Added ImageScaleMode.FIT to strech ImageComponent images with the correct aspect ratio
  • 5abf10a2e486ebe45c1ec1aa163fa46270403c67 c5391aebfa892c7daf69ee80e5cb17183392ba06 Improved generic type handling in EntityAnimationController
  • 9c41b51bd5fc044d0d243027f65f3bba308a2937 Overhauled version checking for TmxMaps
  • 102c48bac194197c0ba77f49e2ffaab25d140eae Added Unit tests
  • a538528c6843003a806e521aa5f040f43f4d5bbc #268 Implemented more performant Collections for keyboard listeners.
  • 3d41a91057547217b9148b7d1dc821974ce90c7e Added method overload for ResourcesContainer.getAsync(...)
  • d8236a9bd9e6b364e8ba3c063c273b99b54b7324 0d55b7a53bc9cacc84efc71d3473352237e815d7 Switched to more specialized function interfaces in some places.
  • bcfc753afabe8b2373704f486775ca94fd07ee60 Made sure the miscVolume of a SoundPlayback is updated automatically.
  • 511d0b8a40458a33d2b7e2d7a9a028c7a5b0ff30 Instead of explicitly setting RenderingHints in the TextRenderer, toggle AntiAliasing with a boolean argument.
  • e2675a16aecf1badb2c33d9f0eb0e5b7e111976e Removed some unnecessary wildcards in EntityAnimationController and AnimationRule.
  • 90737bb129dac8e41b07a8d0999b8adb60f0d67f Added active flag to exclude IUpdateables from the update mechanism, where desired.
  • 9da382263a5aa5d8c91bd53ea53b76eaf5d74275 Set mouse Cursor to be visible by default.
  • e043ae5e03eaf835b0854cf971d4b6fd2b68136d Added multiple collision handling to PhysicsEngine.getIntersection(...)
  • b57df91d46921e66af076aade06dce168e36f1df Improved logging on the entity action framework.
  • a26a993e4aa62b049280c09ccaae32f43537a02f Added attribute to CreatureAnimationState to remember its string representation. Cancelled MovementController.handleForces() if no forces are present.
  • bfa6d81fbd539c50c7c686fc9987f3258533414e 0fc383dbca7b78f69762e07a190ce15621f4b52d 6f3f2dd3c83e29085da10752053950278f420588 95bc61d55f363be27bed88e030cc79254499e63a Changed some SonarQube project settings.
  • c46632acbb466051c3c9b668b5c6cbd8f412e188 Improved Resolution implementation.
  • d6c976fcf42d94038649e0e6d026a34bca948202 7278da59bebcdd5c11ad141e172b11349b423888 Switched to CollectionUtilities and ArrayUtilities for random access. Switched to ThreadLocalRandom instead of individual Random objects. Added method overloads to pass random instance as argument.
  • d452fdae467288d8e5a9dcf4537216e3a1bf98d1 Enabled null values in CustomProperties declared as enum.
  • 16f0929dd33202410505434273e47a3afe5e823e Simplified and improved entity debug rendering.
  • eb6924b3ecc61208326e9b600b68a5258f7e3367 Added some additional API to allow map generation from code.
  • 24df305b8cc0e2fc084a76e6eaef1f5169dd88c7 Added util method to get a random point within a circle.
  • 477eddf1c49a436ccea662bda63fac51b8a3b66b Added overload to MapUtilities.getTile(...) with map argument.
  • 10a233fe5ec023b7246a6cb812850beab7bcf1eb Removed redundant call of ByteArrayOutputStream.flush()
  • c0c001e53c1184180431fce87f4b35e4e596aea1 Added util method to replace colors in an image according to a Map with source and target colors.
  • f62e23c334d832100231bdff46e6bfd2ae7a51c8 Made sure the GamepadManager updates the gamepads once it is initialized.
  • 3128eb078db409f3c0054e2d59a8c0c5502920d7 f1241869f8dfa4db31e7f1644fae6049f2c5e80c Enabled clearing registered event consumers from Input API.
  • 63c9b8dc96f142f22e1a89947725194a20877104 Added reflection util method to retrieve values of static fields.
  • 47c4ddc37ed7707b4068a7b0f94aa8dbe61eabf8 Added Gamepad.isPressed(...) to check if a button is pressed on a gamepad.
  • c67bf33c87b445300320721ea54dacf78c3418ab Enhanced Gamepad.toString().
  • 8e5ed731be17c665ae4dfbaaea782790fddbacf5 Enabled gamepad polling via component name instead of JInput specific identifier.
  • 4e5a108d1397caa1d7c692f2794242996ecab712 Added possibility to parse a given resource file into a string.
  • c4b40a9b0bcd217ac8eb905b6e78362ca2cd387e Added mouse pressing event.
  • 44a765d0bd7a9896603e27f8c72f93a407a75c69 Added missing setters for some Ability properties.
  • #290 Implemented borderless display mode. There are now three modes:
    • WINDOWED = Resizable Window with decoration (otherwise it would not be resizable)
    • BORDERLESS = Basically windowed but without decoration and scaled to the entire screen
    • FULLSCREEN = Native Fullscreen; locked to the framerate of the Monitor
  • 564ea9613e15ec2ccee31827354de6fb9ccfcdaa Stored a string attribute as lower cased so that it doesn't always have to be converted.
  • ac0b11bc464c89aefce1bee29cc8bca8db8d44f8 Made XML format more compatible to the TMX tiled format.
  • 949be864b5fe9884979e1bede3cc8719f9f0b668 14175b670b76eb86623901081b9c0e1d6fe0b961 Added overload method to set mouse cursor location with Align and Valign parameters instead of absolute offset values. Set default pivot to TOP LEFT
  • f12df416083af364521e4e4b852f362e93ff87da Implemented human-like alphanumeric string comparison using the Alphanum algorithm by dave koelle. Switched to alphanum comparison for IMap and Resource names ([map1, map2, map10] instead of [map1, map10, map2]).
  • #259 Made the CreatureAnimationController only display the death animation as the last fallback if no other animation is present.
  • 406adc5d0706ee2ed99f4c45dd3d5f2ef5d9d69b Slightly improved CombatEntity events.
  • 504ccd4ecce4bf38deb20b5b7e570c10ab877923 Added append and distinct util methods to ArrayUtilities.
  • d14fa493b59f886e34762131e5e13e7b197d1adb Added collision event to CollisionEntity
  • 6310fd2554adef2e430d1b9bbff6afcb9c1b56b2 Improved logging for unsupported tmx version.
  • 5a13edd5a7754d102917658af27dd4212499cd3d Improved exceptions when an XML file is not found.
  • 2cab4c6041d7f7ad28351b2af4919895dfc787b8 Reset the logmanager before config to avoid redundant logs.
  • cbd947eafa9d5e248ccb5067a585047ef82a6ef6 Improved access modifiers on some internals.
  • 368ec9271fbfa1ca870c1fbb3f35e5d7fe4581db Improved AbilityOrigin enum.
  • 75d16bbaedb31865e71a90d9449cd9d2eda461db Added custom effect target evaluation.

Changes

  • 3462f0317b7901b806e4d891544ced3157eeef3e Changed Creature.updateAnimationController() visibility to protected

  • ff59b0acfcbb59d9f6f5f0faf8469038f6e8ba89 Changed EntityAnimationController.AnimationRule visibility to public

  • 4252de5c6070d2ff1e3fc6bc67cbd5fbdb25f345 Changed constructor visibility for MapObjectLoader implementations to public

  • 41b60472cc6b9710bee7d71fd31f682b251b91da Removed type parameters for XmlUtilities.save(...)

  • 14c712b076c90ac0553683da48f77fdd9bea97b2 Replaced Oracle JDK with OpenJDK.

  • #279 Separated mouse Cursor implementation from the RenderComponent. BEFORE:

    Game.window().getRenderComponent().setCursor(Cursors.ADD, 0, 0);
    Game.window().getRenderComponent().setCursorOffsetX(0);
    Game.window().getRenderComponent().setCursorOffsetY(0);
    

    AFTER:

    Game.window().cursor().set(Cursors.ADD, 0, 0);
    Game.window().cursor().setOffsetX(0);
    Game.window().cursor().setOffsetY(0);
    
  • 14c26df15351832706d0bca3c0f22c16a14d5388 Streamlined Animation API. BEFORE:

    entity.getAnimationController().getCurrentSprite();
    entity.getAnimationController().getCurrentAnimation();
    entity.getAnimationController().getAnimations();
    

    AFTER:

    entity.animations().getCurrentSprite();
    entity.animations().getCurrent();
    entity.animations().getAll();
    
  • a4ebf58e39d8411f5049b2e0de88d2c249f261c4 Don't limit cursor rendering to when the window is focused.

  • 887d635f184bb8bc330115cff6d3a5295b6e0391 Attached camera to RenderLoop instead of GameLoop.

  • 7490c53ab1387dbff4501dffff2cbd8ae7b7ba3e Removed sample emitter implementations from the engine.

  • 9e0379191786b1cbed869e76b77a1c50bbf391f4 Removed unused overload for Spritesheets.get(...)

  • #282 #289 Updated ListField to create 2D list fields

  • bdbde7d5c3f1dff372c30f13b20077ecf647736f Added Blueprints to game resources.

  • #285 Enabled TileData serialization. Before that, TileData could only be deserialized.

  • 2d340b7e23846e39c2a85abe9cde01e5dc7273ec Streamlined GamepadManager API. BEFORE:

    Input.getGamepad();
    Input.getGamepad(gamePadIndex);
    Input.gamepadManager().onGamepadAdded(pad -> {});
    

    AFTER:

    Input.gamepads().current();
    Input.gamepads().get(gamePadIndex);
    Input.gamepads().onGamepadAdded(pad -> {});
    
  • 5fee6fd63ac1d42150e9d1bda9c88b449a6e83a6 Removed background spritesheet argument from TextFieldComponent. Enabled commenting string list files using '//' at the beginning of a line.

  • c0c93223f27b8cd5c168962883e0137cea085a5d Don't evaluate collision if a particle should not be moved.

  • eaa98c7b3d7e0b385b91d2708890ebcb387bfa65 Set SpriteParticle Dimensions to the sprite dimensions by default.

  • ad5a0a4f98482066a9fe22d819cb67ebfb2d4a5c Consolidated the RenderLoop with the GameLoop to circumvent a lot of concurrency issues and to make life easier for LITIengine devs.

  • d14fa493b59f886e34762131e5e13e7b197d1adb Streamlined logging API. A default Logger instance is now added to every game and can be called with Game.log().log(...). Added ConsoleHandler and FileHandler for logging.

  • cd75d15ae5d19693aaeddbf5a5a2cd0136738d12 Streamlined Trigger interactions.

  • a612d695688b8cc0fb519d8f8f6f8ae9814f2601 4d23378caa1921dde1b6b45e302170f61cbaca1a Unified hit events for CombatEntities.

  • 695806a7b829647a847ae16cf3c9e33303ef1e2e Moved file format enums to the resources namespace.

  • 02e7471add80c091398ca42962e3c4153719b002 Removed empty child implementations of PolyShape.

  • 816d7ad69e16f5a274de5e1320174cefe80ed5aa 1894c981bfe96eab7454e4a259dc8c10ba431c63 Streamlined Attribute implementation.

utiLITI

  • #258 Fixed MapObjectLayers being deselected when copy-pasting entities
  • 3433362808b88999a18fb9a8e18ad44d3babe4b9 Improved MapObject ID rendering
  • #261 Correctly refresh UI after deleting entities.
  • 15f234799a00de9718a957eb8b83b32927e94eed Separated Entity snapping from clamping to map. Renamed snapping presets.
  • 02d6b02dec7ecc665b8b8924d74e1a4d90d2bdf3 96223f9cd3f1c2a1f1525b1ecb5fa75783b31b79 5ad81e1fa36ae22e9642ac505b625281c24361dd 1e9d84be8d0e85e2bf9c9b4410c7bba7a217cd83 Added dedicated zooming handler.
  • 50d511e2f48f7f9eabc1c958af8ec9ee2aa5a160 7f75cfdb5232e6236c8daaa09aceacc93c1eabb3 Extracted Entity transforming logic. Separated rendering tasks into dedicated classes.
  • 940190b78c9e4d6e465864c01348b5c81e10b77f Added Unit test routine to Gradle script.
  • 5e4bb3f0ba987f5223fc1f63aebd4216cb35b7b8 8612f692c57cb9559af33ca7cb210980dabe58e1 Added general UI scaling. Added ConfirmDialog wrapper.
  • d4cf6df21fd1d46b926958d00eee26b51254fa72 Moved UserPreferences to the Editor class
  • 63ff169a79322e3cb4f79009727fe3ec1f474966 Added some localizable strings.
  • c4d21152c4293937139cf3d9b8a362e189eef9d6 Fixed a Font scaling issue. Minor fixes and improvements.
  • c061d8e52e848f976d141338a83322b1122198ab Fixed issue that sometimes caused the map list to be blank.
  • edd0bfea29dc26095d2d6c2077a908d40aef933d Removed redundant focus update.
  • 25ef97a3e07d00630b93fca8297a6df661309dd9 Declared some overrides correctly.
  • 7c9117ec4ec9a0c2147a1a57d89335819e52dc1d Fixed clamping when moving multiple selected MapObjects.
  • 2724acb5761ab193238ed5f2fa1a9b145f156b9f 1f34a90d1e51e76272c6e76e87c9b88f1480e34c Improved resize operation.
  • #277 Made snapping grid size configurable by user.
  • 14fec8717871bd532e04250524ad7b85a29e2286 Removed redundant reload from map when transforming Entities.
  • #262 Fixed the map selection being discarded when changing map properties.
  • 50b3978c78262b3b2b658c2b4e17d66cf93a41a2 Fixed positional transformation using keyboard.
  • 777ba8a098bcaf2b1768123ce1dbcefaca36610d Added private constructors for static handlers.
  • 213c1e52a583716ac9661325576179b82d9cb402 Fixed issue that prevented new maps from being imported.
  • fc0d1bf2b99778a25e7eb533dd4d39200c1d995b Fixed potential null reference when no map was loaded.
  • 879cde1557157ccaa242b78ad21f59872c1453d5 Improved behaviour when trying to load non-existing projects.
  • f15177b570cc6a7d7786efaf83576f88e3077bb5 Added Ambient Light and static shadow preview to MapPropertyPanel and enhanced the panel's layout.
  • #292 Enabled Map property manipulation in the MapPropertyPanel
  • 64ec7b751abb480fe7af245aefb8790a3d7fdcc9 392bcc5bcefe5803bae3eaa9d260e02dca29e90a
    • Added Alpha spinner to the ColorComponent to make it more reusable.
    • Enhanced MapPropertyPanel with the streamlined ColorComponents, a scrollable Editor field for the map description, and omitted non-custom map properties from the table on the lower end.
    • Allowed complex components with varying height to be added to a PropertyPanel.
    • Fixed Label Alignment in the PropertyPanels
  • 5309c6f839dc8a06ede00e7a9c5ddefe3c1805cf 5964444d646d676c617876551f8aea9e3070d8fa
    • Switched to concrete Map objects instead of just name strings in the MapList.
    • #262 Fixed the MapList losing its selection when changing map properties.
    • Added MapListCellRenderer for further customizability of the MapList.
    • Don't rebind all Maps to the MapList when just saving the game file.
  • 04223a486ae63dcafbe23ce4e4ae07ce7332abdd Changed the AssetPanel layout type from a GridLayout to a dynamic WrapLayout.
  • b7d464e373eed25a1850cd82ced826d86011ee68 Display the default value for CombatEntity hitpoints in the editor.
  • 3e22f1c8ca8213267f8a926e01011c304b2ea9b9 Improved control flow via keyboard.
  • 2089445ae3a52c22e2cd16d0fa2af9d9b9d83a34 Replaced usages of deprecated Event class.
  • d95c73af7bac97ca3b85ad037f6f01e5dcf356db Fixed issue with save state of a map not being tracked.

Misc

  • 1e7030bd6b04b171938e723e1cfff2b005f2f7cc Updated code of conduct link in CONTRIBUTING.md.
  • a9706fdc33ff9770d09d653f17b4903f445d529b Moved "Games made with LITIengine" showcase to docs pages.
  • 747731845b43226724ef189e291b9a42d150e639 Added FUNDING.yml
  • 448b630959ab665a5b5770049feccfa50dad957f Whoop whoop.

Code Style

  • 95f44c335a047b0ea94be7e367c66f46b6c73a1f Removed some curly brackets to match correct single statement syntax.
  • 274e8028386d3608577f9890ebe5ad3593c1f44b Removed redundant if-block
  • 8d7ddd76587aa13fc82e23a39967860f95a84481 Fixed variable name shadowing
  • 02611a3b591ae0ceccda5cd270b61ae4dd39bcae Added unused annotation to empty test method.
  • b391b16cbe124c7e5b32f98954bb80503336529a 4730c37e6b9a0eb1884fb71ac6c7ac6f2447d20f e0ca3a89e6218d39f51966cbd400e0548a90058a 5e10e26da9a3828d2c4145e0932283135e398218 9485f97481bd2884e1364394d72b014568a3326a bbd10e74b2ab759ce712747e651e72406cf4f421 Fixed minor style issues.

Acknowledgements

Contributors in this release

@CalvinMT @TheRamenChef

Thank you!

2019 has been an eventful year for us, with LITIengine seeing more than 600 commits since January. The number of stars on the LITIengine Github repository has doubled again in 2019! The interest and demand for LITIengine is out there, and we are deeply in your debt for giving us your time and patience. LITIengine Github stars powered by https://star-history.t9t.io/#gurkenlabs/litiengine Thank you all so much for all your contributions, your discussions, your bug reports, your suggestions, and all the support you give us! Cheers to success and health in 2020 and beyond.

Yours truly, Steffen and Matthias

0.4.18

4 years ago

Fixes

  • f3b0e529d7fda0a9560db3c2481e18e509023ef3 Fixed a possible StackOverflowException in ImageFormat.isSupported(...)
  • 479e48433b45b1b4b110ef2c2c9745453bbe5ac1 Fixed mapID assignment for Blueprints
  • 52f80e187c0dee5d795044d380a9aee5210b397a Fixed concurrency issues in TmxMap by using thread-safe containers for Tilesets and Layers
  • 9ac68d1cac4cf882f0a26ae9272900481efb27b1 Removed redundant call to Creature.updateAnimationController()
  • 6bed9f1be784fcbd37acbdcb375dab6383f05647 Replaced RenderingHints.KEY_ANTIALIASING with RenderingHints.KEY_TEXT_ANTIALIASING in the TextRenderer
  • 5aa2313dc90b054041604130c4a1142b46d004e0 Fixed Trigger to adopt changing activation conditions while relevant Entities are in the trigger area
  • #266 Fixed the way AnimationRules are added to EntityAnimationController
  • afc19979d8793e63bb8809f0dd93b54a1ae7f2b7 c39d441ede813a4645d281d795725b734a17252e Fixed some graphics issues in the Camera and Environment
  • 4cfe6edddef1deafe1bf64d35bd8531b17332ea2 Fixed Concurrency issue in TileLayers.
  • #264 Fixed wrong tileset locations in exported maps.
  • fa573c917c5a53bcaf4afd356401cd53ab777787 Fixed possible NullPointerException when a Tileset's image was null
  • 217d41b04cc236b605ff3513361b91b6b0a7cd0e Fixed UpdateLoop interruption behaviour
  • f152d52add53e06dc011fba3b9358c635e128b16 Made sure Entities cannot have negative width or height.
  • #271 Fixed wrong argument in Spritesheet.setSpriteHeight(...)
  • #283 Fixed potential null reference when CustomProperty value is undefined.
  • c53b036fcb7c01623cc997d9bcea40e3f8dd552e Fixed potential null reference in DecimalFloatAdapter.
  • 4956e23f2c4f7193d290d7aca4ff94adcc5ca932 Fixed potential text outline bug when using certain RenderScales.
  • 65317ef4aea580fbc6ec66d341f637f16af5f4d1 Fixed entity debug rendering being cancelled when current animation frame is null.
  • 64b1de4572490a12b844273dae4b20d98d3dc6a6 Set default font for all ImageComponents containing text, not only the ones with a background spritesheet.
  • #295 Fixed issue with virtual mouse and grabMouse setting.
  • 25f60bf52e23da42048a8c8c833f1a2ed93b5f0c Encoded spaces in file paths.
  • cfbe31dc3b00b4fdc05e96eced397d861e602030 Prevent potential null reference when trying to scale images that are null.
  • #284 Fixed map serialization being distúrbed by handling paths as URL fragments.
  • 1d4ad94587c799df83cc07e9dc771a793f0eeecd Fixed an issue when combining paths with whitespaces.

Features / Improvements

  • 8996fd4565f0ffc7addec6e9a0f4a6d968ed775a Throw ResourceLoadExceptions when failing to load resources
  • 9bc1f2bf82fc89f930c02dd0cd423c6dd1c047e1 Added renderWithLayer property to @EntityInfo
  • f93a191cdabe8215e1c753f99ff06fd33f6317f6 Set default RenderType for TileLayer to GROUND
  • 6876143e4682aab38781a7d6a12db18df30da594 Set default RenderType for all Layers to GROUND
  • de2c7a02a98d0e4f04b225346904de03fe18206a Added util method to extrude rectangles
  • eba3d4962bb00902f734b6246ed395f386818ef9 Added getter EntityAnimationController.getAnimationRules()
  • 816715a4299150fba9457e4e9fd593d5f27aeac3 Added method overload for EntityAnimationController.addAnimationRule(...)
  • #224 Added Appearance properties for borders
  • dc550f0b4fddf6f01d0a91dce9531082a5ecbcbb Added SpeechBubbleListener
  • 7674c6c2903d15f2d871a7621efbaaf2be393fa8 Allow setting SpeechBubble text display time
  • 61dbc657e772bd3a05e262078e13a636b60c29e9 Allow hiding Speechbubble
  • e067ef1a4e2dfc286b662e9499761fbd65802391 63d4fb23ac0240de37183f8bf3d61cbc72f25dc6 ca714b70a7a3c2603ba6cc9bf6686614369f0400 f6db03d7f12289ac3ae286c6188c7c33794b4c6b 077b52506db62a44aed8f9f17a9618ec40997f31 Minor overhaul of the Sound Engine
  • 98255f91b1c6e440422bdea614316fa0a692e1ac Allow an Entity to be removed by an EnvironmentEntityListener it triggers
  • c188504d846d61b210ba39492cf68495e28a6c8d Replaced some CopyOnWriteArrayList instances with the faster ConcurrentHashMap.newKeySet()
  • #265 Added ImageScaleMode.FIT to strech ImageComponent images with the correct aspect ratio
  • 5abf10a2e486ebe45c1ec1aa163fa46270403c67 c5391aebfa892c7daf69ee80e5cb17183392ba06 Improved generic type handling in EntityAnimationController
  • 9c41b51bd5fc044d0d243027f65f3bba308a2937 Overhauled version checking for TmxMaps
  • 102c48bac194197c0ba77f49e2ffaab25d140eae Added Unit tests
  • a538528c6843003a806e521aa5f040f43f4d5bbc #268 Implemented more performant Collections for keyboard listeners.
  • 3d41a91057547217b9148b7d1dc821974ce90c7e Added method overload for ResourcesContainer.getAsync(...)
  • d8236a9bd9e6b364e8ba3c063c273b99b54b7324 0d55b7a53bc9cacc84efc71d3473352237e815d7 Switched to more specialized function interfaces in some places.
  • bcfc753afabe8b2373704f486775ca94fd07ee60 Made sure the miscVolume of a SoundPlayback is updated automatically.
  • 511d0b8a40458a33d2b7e2d7a9a028c7a5b0ff30 Instead of explicitly setting RenderingHints in the TextRenderer, toggle AntiAliasing with a boolean argument.
  • e2675a16aecf1badb2c33d9f0eb0e5b7e111976e Removed some unnecessary wildcards in EntityAnimationController and AnimationRule.
  • 90737bb129dac8e41b07a8d0999b8adb60f0d67f Added active flag to exclude IUpdateables from the update mechanism, where desired.
  • 9da382263a5aa5d8c91bd53ea53b76eaf5d74275 Set mouse Cursor to be visible by default.
  • e043ae5e03eaf835b0854cf971d4b6fd2b68136d Added multiple collision handling to PhysicsEngine.getIntersection(...)
  • b57df91d46921e66af076aade06dce168e36f1df Improved logging on the entity action framework.
  • a26a993e4aa62b049280c09ccaae32f43537a02f Added attribute to CreatureAnimationState to remember its string representation. Cancelled MovementController.handleForces() if no forces are present.
  • bfa6d81fbd539c50c7c686fc9987f3258533414e 0fc383dbca7b78f69762e07a190ce15621f4b52d 6f3f2dd3c83e29085da10752053950278f420588 95bc61d55f363be27bed88e030cc79254499e63a Changed some SonarQube project settings.
  • c46632acbb466051c3c9b668b5c6cbd8f412e188 Improved Resolution implementation.
  • d6c976fcf42d94038649e0e6d026a34bca948202 7278da59bebcdd5c11ad141e172b11349b423888 Switched to CollectionUtilities and ArrayUtilities for random access. Switched to ThreadLocalRandom instead of individual Random objects. Added method overloads to pass random instance as argument.
  • d452fdae467288d8e5a9dcf4537216e3a1bf98d1 Enabled null values in CustomProperties declared as enum.
  • 16f0929dd33202410505434273e47a3afe5e823e Simplified and improved entity debug rendering.
  • eb6924b3ecc61208326e9b600b68a5258f7e3367 Added some additional API to allow map generation from code.
  • 24df305b8cc0e2fc084a76e6eaef1f5169dd88c7 Added util method to get a random point within a circle.
  • 477eddf1c49a436ccea662bda63fac51b8a3b66b Added overload to MapUtilities.getTile(...) with map argument.
  • 10a233fe5ec023b7246a6cb812850beab7bcf1eb Removed redundant call of ByteArrayOutputStream.flush()
  • c0c001e53c1184180431fce87f4b35e4e596aea1 Added util method to replace colors in an image according to a Map with source and target colors.
  • f62e23c334d832100231bdff46e6bfd2ae7a51c8 Made sure the GamepadManager updates the gamepads once it is initialized.
  • 3128eb078db409f3c0054e2d59a8c0c5502920d7 f1241869f8dfa4db31e7f1644fae6049f2c5e80c Enabled clearing registered event consumers from Input API.
  • 63c9b8dc96f142f22e1a89947725194a20877104 Added reflection util method to retrieve values of static fields.
  • 47c4ddc37ed7707b4068a7b0f94aa8dbe61eabf8 Added Gamepad.isPressed(...) to check if a button is pressed on a gamepad.
  • c67bf33c87b445300320721ea54dacf78c3418ab Enhanced Gamepad.toString().
  • 8e5ed731be17c665ae4dfbaaea782790fddbacf5 Enabled gamepad polling via component name instead of JInput specific identifier.
  • 4e5a108d1397caa1d7c692f2794242996ecab712 Added possibility to parse a given resource file into a string.
  • c4b40a9b0bcd217ac8eb905b6e78362ca2cd387e Added mouse pressing event.
  • 44a765d0bd7a9896603e27f8c72f93a407a75c69 Added missing setters for some Ability properties.
  • #290 Implemented borderless display mode. There are now three modes:
    • WINDOWED = Resizable Window with decoration (otherwise it would not be resizable)
    • BORDERLESS = Basically windowed but without decoration and scaled to the entire screen
    • FULLSCREEN = Native Fullscreen; locked to the framerate of the Monitor
  • 564ea9613e15ec2ccee31827354de6fb9ccfcdaa Stored a string attribute as lower cased so that it doesn't always have to be converted.
  • ac0b11bc464c89aefce1bee29cc8bca8db8d44f8 Made XML format more compatible to the TMX tiled format.
  • 949be864b5fe9884979e1bede3cc8719f9f0b668 14175b670b76eb86623901081b9c0e1d6fe0b961 Added overload method to set mouse cursor location with Align and Valign parameters instead of absolute offset values. Set default pivot to TOP LEFT
  • f12df416083af364521e4e4b852f362e93ff87da Implemented human-like alphanumeric string comparison using the Alphanum algorithm by dave koelle. Switched to alphanum comparison for IMap and Resource names ([map1, map2, map10] instead of [map1, map10, map2]).
  • #259 Made the CreatureAnimationController only display the death animation as the last fallback if no other animation is present.
  • 406adc5d0706ee2ed99f4c45dd3d5f2ef5d9d69b Slightly improved CombatEntity events.
  • 504ccd4ecce4bf38deb20b5b7e570c10ab877923 Added append and distinct util methods to ArrayUtilities.
  • d14fa493b59f886e34762131e5e13e7b197d1adb Added collision event to CollisionEntity
  • 6310fd2554adef2e430d1b9bbff6afcb9c1b56b2 Improved logging for unsupported tmx version.
  • 5a13edd5a7754d102917658af27dd4212499cd3d Improved exceptions when an XML file is not found.
  • 2cab4c6041d7f7ad28351b2af4919895dfc787b8 Reset the logmanager before config to avoid redundant logs.
  • cbd947eafa9d5e248ccb5067a585047ef82a6ef6 Improved access modifiers on some internals.
  • 368ec9271fbfa1ca870c1fbb3f35e5d7fe4581db Improved AbilityOrigin enum.
  • 75d16bbaedb31865e71a90d9449cd9d2eda461db Added custom effect target evaluation.

Changes

  • 3462f0317b7901b806e4d891544ced3157eeef3e Changed Creature.updateAnimationController() visibility to protected

  • ff59b0acfcbb59d9f6f5f0faf8469038f6e8ba89 Changed EntityAnimationController.AnimationRule visibility to public

  • 4252de5c6070d2ff1e3fc6bc67cbd5fbdb25f345 Changed constructor visibility for MapObjectLoader implementations to public

  • 41b60472cc6b9710bee7d71fd31f682b251b91da Removed type parameters for XmlUtilities.save(...)

  • 14c712b076c90ac0553683da48f77fdd9bea97b2 Replaced Oracle JDK with OpenJDK.

  • #279 Separated mouse Cursor implementation from the RenderComponent. BEFORE:

    Game.window().getRenderComponent().setCursor(Cursors.ADD, 0, 0);
    Game.window().getRenderComponent().setCursorOffsetX(0);
    Game.window().getRenderComponent().setCursorOffsetY(0);
    

    AFTER:

    Game.window().cursor().set(Cursors.ADD, 0, 0);
    Game.window().cursor().setOffsetX(0);
    Game.window().cursor().setOffsetY(0);
    
  • 14c26df15351832706d0bca3c0f22c16a14d5388 Streamlined Animation API. BEFORE:

    entity.getAnimationController().getCurrentSprite();
    entity.getAnimationController().getCurrentAnimation();
    entity.getAnimationController().getAnimations();
    

    AFTER:

    entity.animations().getCurrentSprite();
    entity.animations().getCurrent();
    entity.animations().getAll();
    
  • a4ebf58e39d8411f5049b2e0de88d2c249f261c4 Don't limit cursor rendering to when the window is focused.

  • 887d635f184bb8bc330115cff6d3a5295b6e0391 Attached camera to RenderLoop instead of GameLoop.

  • 7490c53ab1387dbff4501dffff2cbd8ae7b7ba3e Removed sample emitter implementations from the engine.

  • 9e0379191786b1cbed869e76b77a1c50bbf391f4 Removed unused overload for Spritesheets.get(...)

  • #282 #289 Updated ListField to create 2D list fields

  • bdbde7d5c3f1dff372c30f13b20077ecf647736f Added Blueprints to game resources.

  • #285 Enabled TileData serialization. Before that, TileData could only be deserialized.

  • 2d340b7e23846e39c2a85abe9cde01e5dc7273ec Streamlined GamepadManager API. BEFORE:

    Input.getGamepad();
    Input.getGamepad(gamePadIndex);
    Input.gamepadManager().onGamepadAdded(pad -> {});
    

    AFTER:

    Input.gamepads().current();
    Input.gamepads().get(gamePadIndex);
    Input.gamepads().onGamepadAdded(pad -> {});
    
  • 5fee6fd63ac1d42150e9d1bda9c88b449a6e83a6 Removed background spritesheet argument from TextFieldComponent. Enabled commenting string list files using '//' at the beginning of a line.

  • c0c93223f27b8cd5c168962883e0137cea085a5d Don't evaluate collision if a particle should not be moved.

  • eaa98c7b3d7e0b385b91d2708890ebcb387bfa65 Set SpriteParticle Dimensions to the sprite dimensions by default.

  • ad5a0a4f98482066a9fe22d819cb67ebfb2d4a5c Consolidated the RenderLoop with the GameLoop to circumvent a lot of concurrency issues and to make life easier for LITIengine devs.

  • d14fa493b59f886e34762131e5e13e7b197d1adb Streamlined logging API. A default Logger instance is now added to every game and can be called with Game.log().log(...). Added ConsoleHandler and FileHandler for logging.

  • cd75d15ae5d19693aaeddbf5a5a2cd0136738d12 Streamlined Trigger interactions.

  • a612d695688b8cc0fb519d8f8f6f8ae9814f2601 4d23378caa1921dde1b6b45e302170f61cbaca1a Unified hit events for CombatEntities.

  • 695806a7b829647a847ae16cf3c9e33303ef1e2e Moved file format enums to the resources namespace.

  • 02e7471add80c091398ca42962e3c4153719b002 Removed empty child implementations of PolyShape.

  • 816d7ad69e16f5a274de5e1320174cefe80ed5aa 1894c981bfe96eab7454e4a259dc8c10ba431c63 Streamlined Attribute implementation.

utiLITI

  • #258 Fixed MapObjectLayers being deselected when copy-pasting entities
  • 3433362808b88999a18fb9a8e18ad44d3babe4b9 Improved MapObject ID rendering
  • #261 Correctly refresh UI after deleting entities.
  • 15f234799a00de9718a957eb8b83b32927e94eed Separated Entity snapping from clamping to map. Renamed snapping presets.
  • 02d6b02dec7ecc665b8b8924d74e1a4d90d2bdf3 96223f9cd3f1c2a1f1525b1ecb5fa75783b31b79 5ad81e1fa36ae22e9642ac505b625281c24361dd 1e9d84be8d0e85e2bf9c9b4410c7bba7a217cd83 Added dedicated zooming handler.
  • 50d511e2f48f7f9eabc1c958af8ec9ee2aa5a160 7f75cfdb5232e6236c8daaa09aceacc93c1eabb3 Extracted Entity transforming logic. Separated rendering tasks into dedicated classes.
  • 940190b78c9e4d6e465864c01348b5c81e10b77f Added Unit test routine to Gradle script.
  • 5e4bb3f0ba987f5223fc1f63aebd4216cb35b7b8 8612f692c57cb9559af33ca7cb210980dabe58e1 Added general UI scaling. Added ConfirmDialog wrapper.
  • d4cf6df21fd1d46b926958d00eee26b51254fa72 Moved UserPreferences to the Editor class
  • 63ff169a79322e3cb4f79009727fe3ec1f474966 Added some localizable strings.
  • c4d21152c4293937139cf3d9b8a362e189eef9d6 Fixed a Font scaling issue. Minor fixes and improvements.
  • c061d8e52e848f976d141338a83322b1122198ab Fixed issue that sometimes caused the map list to be blank.
  • edd0bfea29dc26095d2d6c2077a908d40aef933d Removed redundant focus update.
  • 25ef97a3e07d00630b93fca8297a6df661309dd9 Declared some overrides correctly.
  • 7c9117ec4ec9a0c2147a1a57d89335819e52dc1d Fixed clamping when moving multiple selected MapObjects.
  • 2724acb5761ab193238ed5f2fa1a9b145f156b9f 1f34a90d1e51e76272c6e76e87c9b88f1480e34c Improved resize operation.
  • #277 Made snapping grid size configurable by user.
  • 14fec8717871bd532e04250524ad7b85a29e2286 Removed redundant reload from map when transforming Entities.
  • #262 Fixed the map selection being discarded when changing map properties.
  • 50b3978c78262b3b2b658c2b4e17d66cf93a41a2 Fixed positional transformation using keyboard.
  • 777ba8a098bcaf2b1768123ce1dbcefaca36610d Added private constructors for static handlers.
  • 213c1e52a583716ac9661325576179b82d9cb402 Fixed issue that prevented new maps from being imported.
  • fc0d1bf2b99778a25e7eb533dd4d39200c1d995b Fixed potential null reference when no map was loaded.
  • 879cde1557157ccaa242b78ad21f59872c1453d5 Improved behaviour when trying to load non-existing projects.
  • f15177b570cc6a7d7786efaf83576f88e3077bb5 Added Ambient Light and static shadow preview to MapPropertyPanel and enhanced the panel's layout.
  • #292 Enabled Map property manipulation in the MapPropertyPanel
  • 64ec7b751abb480fe7af245aefb8790a3d7fdcc9 392bcc5bcefe5803bae3eaa9d260e02dca29e90a
    • Added Alpha spinner to the ColorComponent to make it more reusable.
    • Enhanced MapPropertyPanel with the streamlined ColorComponents, a scrollable Editor field for the map description, and omitted non-custom map properties from the table on the lower end.
    • Allowed complex components with varying height to be added to a PropertyPanel.
    • Fixed Label Alignment in the PropertyPanels
  • 5309c6f839dc8a06ede00e7a9c5ddefe3c1805cf 5964444d646d676c617876551f8aea9e3070d8fa
    • Switched to concrete Map objects instead of just name strings in the MapList.
    • #262 Fixed the MapList losing its selection when changing map properties.
    • Added MapListCellRenderer for further customizability of the MapList.
    • Don't rebind all Maps to the MapList when just saving the game file.
  • 04223a486ae63dcafbe23ce4e4ae07ce7332abdd Changed the AssetPanel layout type from a GridLayout to a dynamic WrapLayout.
  • b7d464e373eed25a1850cd82ced826d86011ee68 Display the default value for CombatEntity hitpoints in the editor.
  • 3e22f1c8ca8213267f8a926e01011c304b2ea9b9 Improved control flow via keyboard.
  • 2089445ae3a52c22e2cd16d0fa2af9d9b9d83a34 Replaced usages of deprecated Event class.
  • d95c73af7bac97ca3b85ad037f6f01e5dcf356db Fixed issue with save state of a map not being tracked.

Misc

  • 1e7030bd6b04b171938e723e1cfff2b005f2f7cc Updated code of conduct link in CONTRIBUTING.md.
  • a9706fdc33ff9770d09d653f17b4903f445d529b Moved "Games made with LITIengine" showcase to docs pages.
  • 747731845b43226724ef189e291b9a42d150e639 Added FUNDING.yml
  • 448b630959ab665a5b5770049feccfa50dad957f Whoop whoop.

Code Style

  • 95f44c335a047b0ea94be7e367c66f46b6c73a1f Removed some curly brackets to match correct single statement syntax.
  • 274e8028386d3608577f9890ebe5ad3593c1f44b Removed redundant if-block
  • 8d7ddd76587aa13fc82e23a39967860f95a84481 Fixed variable name shadowing
  • 02611a3b591ae0ceccda5cd270b61ae4dd39bcae Added unused annotation to empty test method.
  • b391b16cbe124c7e5b32f98954bb80503336529a 4730c37e6b9a0eb1884fb71ac6c7ac6f2447d20f e0ca3a89e6218d39f51966cbd400e0548a90058a 5e10e26da9a3828d2c4145e0932283135e398218 9485f97481bd2884e1364394d72b014568a3326a bbd10e74b2ab759ce712747e651e72406cf4f421 Fixed minor style issues.

Acknowledgements

Contributors in this release

@CalvinMT @TheRamenChef

Thank you!

2019 has been an eventful year for us, with LITIengine seeing more than 600 commits since January. The number of stars on the LITIengine Github repository has doubled again in 2019! The interest and demand for LITIengine is out there, and we are deeply in your debt for giving us your time and patience. LITIengine Github stars powered by https://star-history.t9t.io/#gurkenlabs/litiengine Thank you all so much for all your contributions, your discussions, your bug reports, your suggestions, and all the support you give us! Cheers to success and health in 2020 and beyond.

Yours truly, Steffen and Matthias

v0.4.17-alpha

5 years ago

This release comes with a ton of improvements for the utiLITI editor which have been implemented in preparation for LDJAM 44.

Fixes

  • #249 Fixed an issue that caused the terminating callbacks to be executed after the system was already terminated
  • 7ff40626eaf232821e8b0054adf25035aa4e6aa8 5e284be8a3f99b82d862c8b350065404ddd51b64 83e7da3e2fceab49d0eb903f23bdcdef24f37947 Fixed rendering of StaticShadows
  • 4cba2a4a742bf3da98c23e39b15ff0f71c4caa1c Fixed an issue with the SpeechBubble implementation

Features / Improvements

  • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 Improved the delay() of the loop tick by accounting for the delay error that is inevitably caused by the fact that Thread.sleep uses long instead of double values
  • 012b75d4488d5b00dc4b6321b3246e54c0f87aa2 Minor version numbers of Tiled map format releases are no longer considered when checking for version support because they are only used for bugfix releases and have no effect on the .tmx format.
  • b1ca5de3a12430978ee33127beed4eddb945a4d1 Implemented possibility to retrieve a layer by name and ID
  • c7af38a475b0c185a0786abd6d6026bd9084f715 Added methods for text and shape rendering with antialiasing

Changes

#243 TMX Overhaul, Part 2

  • All resources except spritesheets are now cached using URLs as keys (they still work with strings)
  • Resources can now be loaded asynchronously
  • Most entities loaded from map objects are now rendered as part of their respective layers
  • Tilesets that use individual images for each tile are now supported
  • Tile types are now supported
  • File custom properties are now supported, though only tentatively
  • Light sources now use an enum for their type
  • Various refinements for several features

Other changes

  • 4fe0e8130bad562e81bf713ebee5d35e8f4007a1 Rename collisionboxHeightFactor and collisionboxWidthFactor MapObjectProperties to collisionboxHeight and collisionboxWidth. This might require you to adjust maps created with previous versions of the engine.
  • 4fe0e8130bad562e81bf713ebee5d35e8f4007a1 Entities that have a duplicate or invalid ID now get a local map ID
  • 21d2bbc Moved some time related methods from the GameLoop class to the GameTime class (use Game.time()...)
    • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 Game.loop().getDeltaTime(long tick) has been moved and is now Game.time().since(long tick)
    • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 Game.loop().execute(...) has been renamed to Game.loop().perform(...) to be consistent with the EntityAction terminology
    • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 The input loop is no longer a GameLoop and instead "just" a plain UpdateLoop. -> There should only be one GameLoop (that provides enhanced functionality like TimedActions)
  • 4a37838d4391edc7b6a54ad0e55476c18cd52794 Renamed the Map class to TmxMap to avoid collisions with java.util.Map
  • d2cb9ba4849dcf86c1e4d7264a981f7c32b299de Cleaned up "render entity with layer" feature

utiLITI

Fixes

  • Fixed a potential exception in the asset tree after closing
  • #240 Fixed issue with cached states of imported maps
  • #246 Fixed issue with the cursor that stopped moving when a menu was open
  • #247 Fixed issue that caused the paste command not to be enabled.
  • #253 Fixed custom panel table cell editor issue.
  • 369056e10310746708ee8edbaba1c881ca40dc1f Fixed issue that caused inconsistent move edit mode
  • 4890d159af93aef8d3fc223726722631601abd51 Fixed an issue that caused the transform controls not to be rendered properly upon undoing a move command.
  • b6732620915afe28ec5cdb3ed6af3e234d3bd517 Fixed broken map snapshot functionality.

a7d981d7b88eef44712a4756b83e825ff29af6e5 Improved utiLITI menus

  • #246 Replaced the AWT menu with a Swing menu.
  • Added a close button
  • Added clear history button
  • Disabled menus and entries that are not available
  • Cleared the entity tree upon closing
  • Reorganized some menu items
  • 628c9f6d1fbf23b95ac2427cca99fe486ec8957f Add menu that allows moving entities to other layers.
  • ac8451795e51beb5ae533aa3b0bc165999e71f92 Added an "edit" menu.
  • 781804700f59b31af29997efe6f0c02440140993 Added menu item to center the camera on the current focus
  • 781804700f59b31af29997efe6f0c02440140993 Added shortcuts to all "Add-Entity" commands. (CRTL-1 -CTRL-9)
  • 4890d159af93aef8d3fc223726722631601abd51 Removed the toolbar The buttons on the toolbar are not really required and can be accessed elsewhere in a more convenient way.

Other Changes

  • Some huge internal code refactorings and improvements
  • 4890d159af93aef8d3fc223726722631601abd51 Reworked the "MOVE" edit-mode which can now be triggered by clicking the mouse button within the bound of a map object instead of having to press CTRL or manually activate it.
  • 628c9f6d1fbf23b95ac2427cca99fe486ec8957f Added option to toggle rendering of entity names.
  • b94433ad702608f4b0d76cd6bfab770729d3afa0 Improved displaying of severe log messages
  • 34582a83b5bad9fd9cd8f272e0a98e6526959f67 Added possibility to focus the map center with the camera.
  • 628c9f6d1fbf23b95ac2427cca99fe486ec8957f The entity's layer is now displayed in the UI
  • 1d9dc3480cd6ef024fdfbdea2760955b66b8a36c Implemented "selectAll" and "deselect" commands
  • 4266a76bf5a4bff9ad0c0b19c0e06c92033836df Implemented possibility to revert all changes on a project
  • f9370bc6f4d902973d1a5b4b44da63b046f614fe Update mapobject list when ids are reassigned
  • ad265eb2749bfc883f5b2ed210d40d2ecb35c72a Implemented the possibility to set the RenderType of an entity

Misc

  • The source code of the LITIengine is now citable for academic use via zenodo:

DOI

0.4.17

5 years ago

This release comes with a ton of improvements for the utiLITI editor which have been implemented in preparation for LDJAM 44.

Fixes

  • #249 Fixed an issue that caused the terminating callbacks to be executed after the system was already terminated
  • 7ff40626eaf232821e8b0054adf25035aa4e6aa8 5e284be8a3f99b82d862c8b350065404ddd51b64 83e7da3e2fceab49d0eb903f23bdcdef24f37947 Fixed rendering of StaticShadows
  • 4cba2a4a742bf3da98c23e39b15ff0f71c4caa1c Fixed an issue with the SpeechBubble implementation

Features / Improvements

  • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 Improved the delay() of the loop tick by accounting for the delay error that is inevitably caused by the fact that Thread.sleep uses long instead of double values
  • 012b75d4488d5b00dc4b6321b3246e54c0f87aa2 Minor version numbers of Tiled map format releases are no longer considered when checking for version support because they are only used for bugfix releases and have no effect on the .tmx format.
  • b1ca5de3a12430978ee33127beed4eddb945a4d1 Implemented possibility to retrieve a layer by name and ID
  • c7af38a475b0c185a0786abd6d6026bd9084f715 Added methods for text and shape rendering with antialiasing

Changes

#243 TMX Overhaul, Part 2

  • All resources except spritesheets are now cached using URLs as keys (they still work with strings)
  • Resources can now be loaded asynchronously
  • Most entities loaded from map objects are now rendered as part of their respective layers
  • Tilesets that use individual images for each tile are now supported
  • Tile types are now supported
  • File custom properties are now supported, though only tentatively
  • Light sources now use an enum for their type
  • Various refinements for several features

Other changes

  • 4fe0e8130bad562e81bf713ebee5d35e8f4007a1 Rename collisionboxHeightFactor and collisionboxWidthFactor MapObjectProperties to collisionboxHeight and collisionboxWidth. This might require you to adjust maps created with previous versions of the engine.
  • 4fe0e8130bad562e81bf713ebee5d35e8f4007a1 Entities that have a duplicate or invalid ID now get a local map ID
  • 21d2bbc Moved some time related methods from the GameLoop class to the GameTime class (use Game.time()...)
    • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 Game.loop().getDeltaTime(long tick) has been moved and is now Game.time().since(long tick)
    • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 Game.loop().execute(...) has been renamed to Game.loop().perform(...) to be consistent with the EntityAction terminology
    • 91a81fbcc48523c4d8a6327ac16fae37e98ee295 The input loop is no longer a GameLoop and instead "just" a plain UpdateLoop. -> There should only be one GameLoop (that provides enhanced functionality like TimedActions)
  • 4a37838d4391edc7b6a54ad0e55476c18cd52794 Renamed the Map class to TmxMap to avoid collisions with java.util.Map
  • d2cb9ba4849dcf86c1e4d7264a981f7c32b299de Cleaned up "render entity with layer" feature

utiLITI

Fixes

  • Fixed a potential exception in the asset tree after closing
  • #240 Fixed issue with cached states of imported maps
  • #246 Fixed issue with the cursor that stopped moving when a menu was open
  • #247 Fixed issue that caused the paste command not to be enabled.
  • #253 Fixed custom panel table cell editor issue.
  • 369056e10310746708ee8edbaba1c881ca40dc1f Fixed issue that caused inconsistent move edit mode
  • 4890d159af93aef8d3fc223726722631601abd51 Fixed an issue that caused the transform controls not to be rendered properly upon undoing a move command.
  • b6732620915afe28ec5cdb3ed6af3e234d3bd517 Fixed broken map snapshot functionality.

a7d981d7b88eef44712a4756b83e825ff29af6e5 Improved utiLITI menus

  • #246 Replaced the AWT menu with a Swing menu.
  • Added a close button
  • Added clear history button
  • Disabled menus and entries that are not available
  • Cleared the entity tree upon closing
  • Reorganized some menu items
  • 628c9f6d1fbf23b95ac2427cca99fe486ec8957f Add menu that allows moving entities to other layers.
  • ac8451795e51beb5ae533aa3b0bc165999e71f92 Added an "edit" menu.
  • 781804700f59b31af29997efe6f0c02440140993 Added menu item to center the camera on the current focus
  • 781804700f59b31af29997efe6f0c02440140993 Added shortcuts to all "Add-Entity" commands. (CRTL-1 -CTRL-9)
  • 4890d159af93aef8d3fc223726722631601abd51 Removed the toolbar The buttons on the toolbar are not really required and can be accessed elsewhere in a more convenient way.

Other Changes

  • Some huge internal code refactorings and improvements
  • 4890d159af93aef8d3fc223726722631601abd51 Reworked the "MOVE" edit-mode which can now be triggered by clicking the mouse button within the bound of a map object instead of having to press CTRL or manually activate it.
  • 628c9f6d1fbf23b95ac2427cca99fe486ec8957f Added option to toggle rendering of entity names.
  • b94433ad702608f4b0d76cd6bfab770729d3afa0 Improved displaying of severe log messages
  • 34582a83b5bad9fd9cd8f272e0a98e6526959f67 Added possibility to focus the map center with the camera.
  • 628c9f6d1fbf23b95ac2427cca99fe486ec8957f The entity's layer is now displayed in the UI
  • 1d9dc3480cd6ef024fdfbdea2760955b66b8a36c Implemented "selectAll" and "deselect" commands
  • 4266a76bf5a4bff9ad0c0b19c0e06c92033836df Implemented possibility to revert all changes on a project
  • f9370bc6f4d902973d1a5b4b44da63b046f614fe Update mapobject list when ids are reassigned
  • ad265eb2749bfc883f5b2ed210d40d2ecb35c72a Implemented the possibility to set the RenderType of an entity

Misc

  • The source code of the LITIengine is now citable for academic use via zenodo:

DOI

v0.4.16.1-alpha

5 years ago

Fixes

  • e5da3605e4c821e52ec856d727297cf60ef8b864 Fixed an issue that caused only fields with the same name as the TMX property to be loaded
  • 9137bdf108bfd43b10d6db1f5d04029f83efbdb9 Fixed text rendering realative to the environment
  • #162 Fixed issues with the jaxb dependencies for Java versions >= 9
  • 9e20b20db3f68cc413a091e6644155637351d464 Fixed an issue with mouse events not being forwarded after the window was resized

Features / Improvements

  • aea88772f95f2482c8a548159081796295021192 Rendering the GameMetrics has been improved and additional information has been added.
  • 9dcd82cdc7a69f10c4514fdf44ba8aca88453680 Implemented support for TextureAtlas created with the TexturePacker tool
  • #190 Improved error message for Spritesheets.
  • #211 Introduce the concept of Entity Actions
  • #103 Cleaned up event handling of the AnimationController
  • 9d2ab2040fe235a069752652b63d923ec330557a Implemented support for web resources
  • #218 Implemented support for SoundResources
  • 8b48d728d04e19d96ed5e0c9dcb4a3b555d25ef3 The animation controller is now updated when the sprite changes
  • fc6b586d9747ba32ede420f735efd801c5eff6a3 Implemented support for rendering layers with their respective opacity

Changes

  • 68aae15cc4b2fa9b5322606f127bdad82649d249 Overhaul on the Material implementation
  • 5de362014a31823e3e7106838e6d8f358a098464 Internal overhaul of the ScreenManager
    • Extracted the GameWindow specific logic to the respective class (see Game.window())
  • #171 Resources are now being accessed with URI-based filepaths
  • 806309b14e4bbf3d6635b55aae5b32251e0e7462 Some improvements on class names
    • Renamed the static class ImageProcessing to Imaging
    • Renamed the static class SerializationHelper to Codec
    • Moved encoding/decoding of images to the Codec class
  • 17ca6fa3d1d885c16d8027b09a4483a17669de4e Moved the InputLoop to the Game class Input.loop() -> Game.inputLoop()
  • #215 113b28f9768063affb9b1816be9ce287a882df03 Overhaul on the GuiComponent framework
  • #228 Adjusted the default resolution to be based on the computer's native resolution
  • #232 Removed the IEntityProvider interface
  • a5e634be2fd8d352b824b8870f0dfcbde492a7ac Replaced the isObstacle flag by the usage of CollisionType.
  • 2e033ea0ea14d51e87b003aa0a8dadfc652fce29 Removed various "adapter" classes in favor of default methods
  • TMX Map Improvements
    • #150 Implemented support for .tx format for blueprints (tmx templates).
    • #150 74f45c162dabe25ea08bdc72b51ba16522f9d130 Added support for additional MapObject properties
    • #3 The order of image and tile layers will now be serialized in the original order
    • #150 3cd351c795b972b27b5a41389109767531475f16 Implemented support for GroupLayers
    • #232 Rewrite the map orientations
    • #230 Handle missing version tag more gracefully
  • SoundEngine API Overhaul
    • 03f3c9918b325db7362d8d166954057aea6e3afc The Sound is now always the first argument for all playback methods
    • #236 Reworked the SoundPlayback implementation

utiLITI

  • Various usability and stability improvements
    • 1c0bda46e865b307a715870b0214fe2a4eefe231 General rework of the layouting process
    • 83c91760a7a07afdfeedc413108f68c331ac2aec OpenSans as default font.
    • 2e207c0dcf462124ac3576eb1f89a37c99f0a805 Removed custom fonts from the editor
  • #91 e80d4ae37a50bfcb502307d859d704f02855ae7f Implemented 'Movement' and 'Combat' panel for entities
  • b9cce67a033062e4cb80f0f36113a782b1c137ac Allow rendering of MapObjects without type
  • #90 Animations are now being previewed in the Spritesheet dialog
  • #166 Enhanced the UndoManager
  • 4bec9b30523c9eeecfe28ba5bf58ad244d37567c Fixed issue where the editor size wasn't properly restored
  • #216 Fixed an issue when the system doesn't support tray icons
  • #235 Fixed an issue with copy/pasing Creatures
  • 5d697f6fcd58a93a43e8409a307570a2ca346796 Fix potential NullReference when deleting all maps from the editor
  • 20dbcc2e4b8aa627d66dc7b3c9d1407eceb71669 The Entity list is now sorted by mapIDs.

Misc

  • Improved Javadoc and external documentation
  • The max. supported TMX format is now 1.2.2.
  • acbcd49b0fbc2b8d5f16c55062023bb4d602c8a9 Removed the "Hello World" example projects from the repository
  • Updated Gradle wrapper to 5.3.1

0.4.16

5 years ago

Fixes

  • e5da3605e4c821e52ec856d727297cf60ef8b864 Fixed an issue that caused only fields with the same name as the TMX property to be loaded
  • 9137bdf108bfd43b10d6db1f5d04029f83efbdb9 Fixed text rendering realative to the environment
  • #162 Fixed issues with the jaxb dependencies for Java versions >= 9
  • 9e20b20db3f68cc413a091e6644155637351d464 Fixed an issue with mouse events not being forwarded after the window was resized

Features / Improvements

  • aea88772f95f2482c8a548159081796295021192 Rendering the GameMetrics has been improved and additional information has been added.
  • 9dcd82cdc7a69f10c4514fdf44ba8aca88453680 Implemented support for TextureAtlas created with the TexturePacker tool
  • #190 Improved error message for Spritesheets.
  • #211 Introduce the concept of Entity Actions
  • #103 Cleaned up event handling of the AnimationController
  • 9d2ab2040fe235a069752652b63d923ec330557a Implemented support for web resources
  • #218 Implemented support for SoundResources
  • 8b48d728d04e19d96ed5e0c9dcb4a3b555d25ef3 The animation controller is now updated when the sprite changes
  • fc6b586d9747ba32ede420f735efd801c5eff6a3 Implemented support for rendering layers with their respective opacity

Changes

  • 68aae15cc4b2fa9b5322606f127bdad82649d249 Overhaul on the Material implementation
  • 5de362014a31823e3e7106838e6d8f358a098464 Internal overhaul of the ScreenManager
    • Extracted the GameWindow specific logic to the respective class (see Game.window())
  • #171 Resources are now being accessed with URI-based filepaths
  • 806309b14e4bbf3d6635b55aae5b32251e0e7462 Some improvements on class names
    • Renamed the static class ImageProcessing to Imaging
    • Renamed the static class SerializationHelper to Codec
    • Moved encoding/decoding of images to the Codec class
  • 17ca6fa3d1d885c16d8027b09a4483a17669de4e Moved the InputLoop to the Game class Input.loop() -> Game.inputLoop()
  • #215 113b28f9768063affb9b1816be9ce287a882df03 Overhaul on the GuiComponent framework
  • #228 Adjusted the default resolution to be based on the computer's native resolution
  • #232 Removed the IEntityProvider interface
  • a5e634be2fd8d352b824b8870f0dfcbde492a7ac Replaced the isObstacle flag by the usage of CollisionType.
  • 2e033ea0ea14d51e87b003aa0a8dadfc652fce29 Removed various "adapter" classes in favor of default methods
  • TMX Map Improvements
    • #150 Implemented support for .tx format for blueprints (tmx templates).
    • #150 74f45c162dabe25ea08bdc72b51ba16522f9d130 Added support for additional MapObject properties
    • #3 The order of image and tile layers will now be serialized in the original order
    • #150 3cd351c795b972b27b5a41389109767531475f16 Implemented support for GroupLayers
    • #232 Rewrite the map orientations
    • #230 Handle missing version tag more gracefully
  • SoundEngine API Overhaul
    • 03f3c9918b325db7362d8d166954057aea6e3afc The Sound is now always the first argument for all playback methods
    • #236 Reworked the SoundPlayback implementation

utiLITI

  • Various usability and stability improvements
    • 1c0bda46e865b307a715870b0214fe2a4eefe231 General rework of the layouting process
    • 83c91760a7a07afdfeedc413108f68c331ac2aec OpenSans as default font.
    • 2e207c0dcf462124ac3576eb1f89a37c99f0a805 Removed custom fonts from the editor
  • #91 e80d4ae37a50bfcb502307d859d704f02855ae7f Implemented 'Movement' and 'Combat' panel for entities
  • b9cce67a033062e4cb80f0f36113a782b1c137ac Allow rendering of MapObjects without type
  • #90 Animations are now being previewed in the Spritesheet dialog
  • #166 Enhanced the UndoManager
  • 4bec9b30523c9eeecfe28ba5bf58ad244d37567c Fixed issue where the editor size wasn't properly restored
  • #216 Fixed an issue when the system doesn't support tray icons
  • #235 Fixed an issue with copy/pasing Creatures
  • 5d697f6fcd58a93a43e8409a307570a2ca346796 Fix potential NullReference when deleting all maps from the editor
  • 20dbcc2e4b8aa627d66dc7b3c9d1407eceb71669 The Entity list is now sorted by mapIDs.

Misc

  • Improved Javadoc and external documentation
  • The max. supported TMX format is now 1.2.2.
  • acbcd49b0fbc2b8d5f16c55062023bb4d602c8a9 Removed the "Hello World" example projects from the repository
  • Updated Gradle wrapper to 5.3.1

v0.4.15-alpha

5 years ago

Fixes

  • Fixed the tile flipping implementation
  • #176 Fixed an issue with the Trigger's internal logic
  • Fixed rendering order of the ImageComponent
  • Fixed an issue that caused the game not to terminate all its threads.

Features / Improvements

  • Implemented the possibility to register event listeners for the game initialization.
  • Introduced the new GameWindow that is used to access window specific functionality via Game.window()
  • Improved a lot of internal data structures
  • Improved the overall performance of the GameLoop
  • #188 #193 Improved the thread handling or the SoundPlayback
  • #196 Introduced the new GameWorld implementation (accessed via Game.world())
  • #196 Added a reference from the Entity to its Environment
  • Added the Spawnpoint.spawn method
  • Disabled turnOnMove() when applying Forces
  • 72c9a2dcd95d30353d4fc9b565e84cab31146e52 Implemented the possiblity to provide a global or map specific gravity force
  • The camera is now centered on the map by default
  • Added a platformer specific movement controller PlatformingMovementController
  • #205 Fixed collision with the boundaries of the map
  • Made it optional to exit the game when an exception occurs: Game.config().client().exitOnError()
  • Enhanced the PhysicsEngine with additional method overloads

Changes

THIS RELEASE CONTAINS A LOT OF CHANGES TO CORE APIS OF THE ENGINE. THESE CHANGES MOSTLY DON'T AFFECT THE FUNCTIONALITY AND ARE MAINLY CAUSED DUE TO RESTRUCTURING OF THE ENGINE. PLEASE SEE THE ATTACHED PULL REQUESTS FOR DETAILLED INFORMATION ON HOW TO MIGRATE YOUR EXISTING GAME TO THE NEW VERSION OF THE ENGINE.

  • #191 Reworked the Resources API
    • Replace the ImageCache
    • Simlify the API (less to type and everything regarding resources in one place)
  • #189 Dropped subfolder for localization files
  • #194 Reworked the TMX implementation
  • #198 Reworked the Game API
  • #202 Introduced the GameWorld API and moved some methods that were previously on the Game class
  • The AccelerationMovementController has been removed and its functionality is now part of the basic MovementController

utiLITI

  • Fixed and handled a few potential exception in the editor

Misc

  • Since we don't expect any major changes to the API in upcoming releases anymore, we've started to document everything via the LITIengine GitBooks Page
  • We've started the new sample game project Gurk Nukem to get you started with the engine
  • Add a ton of Javadoc
  • Add a lot more unit tests
  • Update to Gradle 4.9 -> 5.0
  • Update steamworks4j 1.7.0 -> 1.8.0
  • Update mockito 2.21.0 -> 2.23.4
  • Update junit 5.2.0 -> 5.3.2

0.4.15

5 years ago

Fixes

  • Fixed the tile flipping implementation
  • #176 Fixed an issue with the Trigger's internal logic
  • Fixed rendering order of the ImageComponent
  • Fixed an issue that caused the game not to terminate all its threads.

Features / Improvements

  • Implemented the possibility to register event listeners for the game initialization.
  • Introduced the new GameWindow that is used to access window specific functionality via Game.window()
  • Improved a lot of internal data structures
  • Improved the overall performance of the GameLoop
  • #188 #193 Improved the thread handling or the SoundPlayback
  • #196 Introduced the new GameWorld implementation (accessed via Game.world())
  • #196 Added a reference from the Entity to its Environment
  • Added the Spawnpoint.spawn method
  • Disabled turnOnMove() when applying Forces
  • 72c9a2dcd95d30353d4fc9b565e84cab31146e52 Implemented the possiblity to provide a global or map specific gravity force
  • The camera is now centered on the map by default
  • Added a platformer specific movement controller PlatformingMovementController
  • #205 Fixed collision with the boundaries of the map
  • Made it optional to exit the game when an exception occurs: Game.config().client().exitOnError()
  • Enhanced the PhysicsEngine with additional method overloads

Changes

THIS RELEASE CONTAINS A LOT OF CHANGES TO CORE APIS OF THE ENGINE. THESE CHANGES MOSTLY DON'T AFFECT THE FUNCTIONALITY AND ARE MAINLY CAUSED DUE TO RESTRUCTURING OF THE ENGINE. PLEASE SEE THE ATTACHED PULL REQUESTS FOR DETAILLED INFORMATION ON HOW TO MIGRATE YOUR EXISTING GAME TO THE NEW VERSION OF THE ENGINE.

  • #191 Reworked the Resources API
    • Replace the ImageCache
    • Simlify the API (less to type and everything regarding resources in one place)
  • #189 Dropped subfolder for localization files
  • #194 Reworked the TMX implementation
  • #198 Reworked the Game API
  • #202 Introduced the GameWorld API and moved some methods that were previously on the Game class
  • The AccelerationMovementController has been removed and its functionality is now part of the basic MovementController

utiLITI

  • Fixed and handled a few potential exception in the editor

Misc

  • Since we don't expect any major changes to the API in upcoming releases anymore, we've started to document everything via the LITIengine GitBooks Page
  • We've started the new sample game project Gurk Nukem to get you started with the engine
  • Add a ton of Javadoc
  • Add a lot more unit tests
  • Update to Gradle 4.9 -> 5.0
  • Update steamworks4j 1.7.0 -> 1.8.0
  • Update mockito 2.21.0 -> 2.23.4
  • Update junit 5.2.0 -> 5.3.2