Fetching contributors…
Cannot retrieve contributors at this time
344 lines (296 sloc) 15.4 KB
- Update to LibGDX 1.9.8
- [BREAKING] UiContainer can now select a NavigationMode instead of only enabling/disabling keyboard
- Added GameDataSerializable interface for reading/writing binary data
- Added method to get file handles within the player data directory
- Added CustomCursor class for implementing custom cursors with up/down state
- UiContainer can now have multiple navigation action keys
- Mdx.playerData now uses temp files on desktop to write before moving files to target filename
- Fixed Graphics#tint not being reset each frame
- Fixed UI navigation cursor not updating when switching between controller and mouse
- Fixed UI hotkeys triggering actions while elements are disabled
- [BREAKING] TileMergeMode modes renamed to Y_THEN_X, X_THEN_X and SQUARE
- Added new TileMergeMode modes; Y_THEN_X_ALTERNATING and X_THEN_Y_ALTERNATING
- Added support for polyline per Tiled 1.2 specification
- Update to RoboVM 2.3.3
- [BREAKING] Replace usages of Java collections with GDX collections to improve performance
- [BREAKING] UI Modal and Containers are now unified into a single Container class
- [BREAKING] Deferred UI tasks can now be deferred until update() or layout()
- [BREAKING] UI elements now default to pixel coordinate UI layout
- [BREAKING] Rename PS4Button.X to PS4Button.CROSS per PS specification
- Added support for all GDX collection classes in XML/JSON serialization
- Added CustomUiElement class to simplify implementing custom UI elements
- Added support for both flex and pixel coordinate UI layouts
- Added support for static, ninepatch and tiling UI element backgrounds
- Added multiple images to ImageButton to allow for images based on button state
- Added NodeStateListener to UiElement
- Added shadow, spacing, kerning and flip options to UiFont
- Added controller trigger button down/up notifications
- Added option to set hover state when resetting a UiNavigation cursor
- UI can now use controller triggers as hotkeys and D-PAD for UI navigation
- Improved UI theme JSON consistency
- Improved scrolling when dragging scroll thumb in ScrollBox
- Fixed hotkey based actions not triggering correct UI state
- Fixed TypingTextAnimation not resetting correctly
- Fixed UI elements changing state within margin area
- Fixed SlideIn/SlideOut visibility timing
- Fixed graphics context unnecessarily applying clip when clip is same size as viewport
- Seperated resize events from reset events in text animations
- (#76) Added support for Tiled object shapes
- (#77) Fixed fade transitions modifying the color instance
- Fixed out of bounds exception when switch between TabView and another navigation type
- Added IntTreeMap implementation
- Fixed incorrect clip caching between scrollbox and other elements
- Reduced UI render node + layer memory usage
- Reduced memory usage by switching to IntMap where appropriate
- Fixed Xbox360 controller left/right trigger detection on Windows
- Fixed incorrect Mac/Linux key bindings on Xbox360 controller
- Fixed UiUtils#setUpControllerInput not initializing PS4 controller correctly
- Fixed TiledMapLoader crashing when loading cached Tiled layers asynchronously
- [BREAKING] Removed PS3 controller support due to inconsistent support across platforms
- Significantly reduce memory usage of XML and JSON serializers
- [BREAKING] mini2Dx artemis systems moved from package com.artemis.system to com.artemis to provide access to artemis-odb scopes
- Fix interpolation and rendering systems not checking disabled flag
- Fix DispersedIntervalEntitySystem not removing entities from processing queue if deleted between intervals
- Fix collisions not using IDs for equals/hashcode
- Optimise debug rendering of QuadTrees
- Added Select#getOption(index) method
- Fixed nested defer() tasks immediately completing with parent
- Changed RenderLayer#render to public method
- Reduce memory usage of ParentRenderNode by sharing clip cache across instances
- Changed ImageRenderNode textureRegion field visibility to protected
- Fixed TypingTextAnimation not resetting after initially skipped
- Fixed LabelRenderNode not updating text if updated from its own defer call
- Added additional assert in DisperedIntervalEntitySystemTest
- Fixed multiple UiElement defer ordering when durations are same
- Significant memory usage improvements across all geometry classes
- Added TypingTextAnimation#getCurrentCharacterIndex
- [BREAKING] LayoutRuleset is now applied to both horizontal and vertical calculations
- [BREAKING] UI minHeight now includes padding + margin in check
- [BREAKING] TiledCollisionFactory now takes TiledMap as parameter
- [BREAKING] SlideIn/SlideOut animations now take duration as parameter
- [BREAKING] TiledCollisionMerger#isMergable now accepts TiledMap and TileLayer parameters
- (#74) Added TiledMapLoader for loading TiledMap instances via AssetManager
- Added AnimatedImage element to UI library
- Added new FlexDirections; ROW_REVERSE and CENTER
- Added Sprite#getAlpha() method
- Added jacocoTestReport for better code coverage reporting
- Added #equals method to ControllerButton implementations
- Added #equals and #hashcode methods to geometry classes
- TiledCollisionFactory can now return null to specify no collision
- Prototype beans no longer require setters/getters for dependency injection
- Fixed merging concurrency exception during object movement within concurrent QuadTrees
- Fixed incorrect Circle bounding box dimensions
- Fixed dependency injection validating injection too early
- Fixed typing text animation cutting off last character
- Fixed unnecessary Image render node layouts when setting same value for texture path
- Fixed Image#getTexturePath returning null
- Fixed duplicate notifications for CollisionPoint listeners
- Fixed XML deserialization constructor matching on Android
- Fixed transitionIn#initialise not being called during screen transitions
- (#53) Increased code coverage on Rectangle and Circle
- (#72) Fixed support for flipped tiles in Tiled object GID
- (#71) Fixed regression with missing setCenter method in shapes after 1.3 refactor
- Fixed child UI elements receiving mouseDown events when hidden
- Added additional UiElement defer method that accepts a duration
- UI defer operations can now be cancelled
- Added support for rotated + flipped tiles
- Added TiledObject#getProperties method
- Fixed Tiled property parse notification for TSX tilesets
- Added support for animated tiles
- Added hexagonal Tiled map support
- TSX tilesets now shared across TiledMap instances when path is same - reduces memory usage
- Added more utility methods to TiledCollisionMapper
- Added TiledMap.getLayerIndexIgnoreCase
- Added support for Tile type attribute
- (#70) Fixed libgdx stage2D integration for UiContainer
- Fixed locking exception in removeAll(List) for concurrent QuadTree implementations
- Added JRebel support to UiContainer
- Added label + icon getters for TabButton
- Added removeAll() method to UiNavigation interface and implementations
WARNING: This release changes the default target timestep from 100FPS to 60FPS.
To change it back set config.targetTimestep to 0.1f
- Updated to libGDX 1.9.6, roboVM 2.3.0 and artemis-odb 2.1.0
- (#68) Added Checkbox, Slider and RadioButton UI elements
- Added Graphics#isWindowReady()
- Added additional add/remove methods to MdxController interface
- Added direction input threshold setting to UI controller input implementations
- Added methods to clear UI hotkeys
- Added methods to set text of left and right Select buttons
- Added UiContainerOperation and ClearShaderProgramOperation for render pipelines
- Added ScrollBox#setMinHeight to override the style's minimum height
- Added UiElement#defer to defer method calls until the next frame
- Added PerformanceTracker for debugging performance issues
- Added methods to TiledCollisionMapper to map non-collision areas
- Added lightweight classes for static collisions:
-- StaticCollisionBox
-- StaticCollisionCircle
-- StaticCollisionPolygon
- UI elements can now be hidden based on controller type (hidden-controller-xbox360, etc.)
- [BREAKING] Changed default target timestep to 60FPS
- ScreenSize values can now be scaled as NO_SCALING, LINEAR or INVERSE (NO_SCALING is default)
- ActionListeners now receive event details via ActionEvent instance
- Improved controller javadocs
- LibGdxGraphics now uses LibGDX ShapeRenderer for shape rendering
- UiContainerListeners now only receive inputSourceChanged and controllerTypeChanged events once per frame
- Fixed UI controller input blocking other controller listeners when no input is consumed by UiContainer
- Fixed Button instances not triggering right-click events
- Fixed ScrollBox#setMaxHeight triggering unnecessary layouts
- Fixed Graphics tint value not being set on startup
- Fixed UiContainerRenderTree always set to dirty
- Fixed RepeatableNinePatch not repeating correctly when using TextureRegion
- Fixed UI button up/down controller events triggering when controller is disabled
- Fixed NPE when resetting navigation with no navigation elements configured
- Fixed GridUiNavigation misordering elements when using set#(x,y)
- Fixed GridUiNavigation triggering unnecessary cursor resets
- Fixed hotkeys not triggering if the element was outside of the navigation element node
- Fixed invalid merge invocations in QuadTree implementations
- Fix @PostDeserialize not being invoked for nested objects
- Fix UiContainer not clearing active action element
- Fix Rectangle returning 0,0 as its center
- Graphics can now draw TiledDrawable instances
- Added RepeatedNinePatch which repeats instead of stretches
- UI element backgrounds can now set backgroundMode to "repeat" or "stretch"
- Reduce float array allocations in Polygon#setVertices
- Added ScreenBasedGame#getScreenManager and ScreenManager#getGameScreens
- Added Shape#add and Shape#subtract methods for modifying position
- QuadTree implementations can now specify a minimum quad size
- Added Positionable#moveTowards for easier movement logic
- Added Positionable#getDistanceTo(x,y)
- Added additional methods to geometry classes
-- Shape#getCenterX + Shape#getCenterY
-- Shape#scale
-- Shape#setRadius
-- Polygon#isEquilateral
-- LineSegment#getLength
- Added methods to preset singletons and prototypes for dependency injection
- Added @PostInject annotation to trigger methods after dependency injection
- @Autowired dependencies now also inject into super classes
- Fix UiContainer blocking keyUp/buttonUp events when it did not accept the original keyDown/buttonDown event
- Added TiledMap#getObjectGroups() method
- Added additional getProperties() methods to Tiled classes
- Added TiledCollisionMapper method to get objects by type
- Added DispersedIntervalEntitySystem
- Performance improvements to Polygon class
- Added @PostDeserialize annotation to trigger methods after deserialising from xml/json
- Added Graphics#drawBitmapFontCache
- Added backgrounds to Labels
- Added BitmapFont caching to UiFont
- Added FlexDirection for changing layout of children UI elements
- UI framework now renders text using BitmapFontCache instances
- UI elements that contain children now extend ParentUiElement class
-- Button is now a non-abstract class that acts as a parent element
-- TextButton and ImageButton are now utility classes
- Fixed serialisation of enums that contain abstract methods
- Moved Os util classes to natives-loader project
- Graphics can now take circle radius as an int or float
- Added methods to access RenderLayer children
- Added UiContainerListener interface for listening to UiContainer events
- Fixed ninepatch sizes not applying to Buttons correctly
- Updated to libGDX 1.9.4, roboVM 2.2.0, and artemis-odb 1.4.0
- Updated to Android build tools 23.0.1
- (#38) Added drawNinePatch() and clearScaling() methods to Graphics
- (#45) Added contains and getDistanceFromCenter to Circle
- (#45) Added fillShape() method to Graphics class
- (#45) Added Shape#intersects(Shape) and Shape#contains(Shape)
- (#45) Added Polygon and Triangle classes. Rectangle now backed by Polygon.
- (#46) Fixed ParticleEffect not flipped correctly on load
- (#48) Fixed alpha channel not being applied to line rendering
- (#50) Fixed TiledMap rendering incorrectly when scaled down
- (#54) Added performance benchmarking for collisions
- (#55) Added non-rectangle support to RegionQuadTree and ConcurrentRegionQuadTree
- Improved Graphics#clip performance on mobile devices (changed to Depth Buffer method)
- Added UI framework (mini2Dx-ui)
- Added headless runtime (mini2Dx-headless)
- Added controller mappings - Xbox One, Xbox 360 controllers
- Added controller dead zone implementations - axial, radial and scaled radial
- Added render pipeline feature
- Added RegularShape classes (shapes with equal interior angles)
- Added NPE prevention to TiledCollisionMapper
- Added additional drawTexture() methods to Graphics
- Added Sizeable and SizeChangeListener interfaces
- Added GameResizeListener and removed onResize method from GameContainer
- Added MdxException for mini2Dx runtime exceptions
- Added WorldListener interface to listen for entity creation/deletion
- Added TextureRegion setFlip, setFlipX and setFlipY
- Added Graphics.setRotation
- Added getPixelWidth() and getPixelHeight() to TiledMap
- Added non-entity render and interpolate Artemis systems
- Positionable instances now have getId() method
- Improved pixel rounding and reduced interpolation for CollisionBox, CollisionCircle and CollisionPoint
- Mdx.json can now read/write to/from FileHandle instances
- Added @NonConcrete annotation for interface serialization in Mdx.xml and Mdx.json
- Added @ConstructorArg for constructor based serialization in Mdx.xml and Mdx.json
- Fixed inconsistencies in TextureRegion and NinePatch APIs
- Fixed Mdx.xml not deserializing maps correctly when values are objects
- Fixed Mdx.xml and Mdx.json not serializing/deserialzing super class fields
- Fixed Mdx.xml and Mdx.json not deserialzing enum fields correctly
- Fixed Animation flipping Sprites when rendering at a coordinate
- Fixed TiledParser exception when TiledObjects had non-integer coordinates
- TiledObjectGroup instances are now treated as layers to match Tiled specification
- QuadTrees
* Added QuadTree interface for all QuadTree implementations
* Existing Quad class renamed to PointQuadTree
* Added thread-safe versions of PointQuadTree and RegionQuadTree
* QuadTrees now have a watermark for remerging empty quads
* Performance improvements to QuadTree implementations
- (#39) Fixed Animation flipping Sprites by default
- Updated to libGDX 1.6.5 and roboVM 1.6.0
- (#28) Added artemis-odb integration
- (#34) Fixed input not being polled if multiple updates occur in one frame
- (#35) Added TextureRegion wrapper class
- Added mini2Dx-specific game launcher classes
- Added forceTo(x, y) method to CollisionPoint and CollisionCircle
- Fixed tile image and id calculation for tilesets with margin and/or spacing
- Updated to libGDX 1.6.4, roboVM 1.5.0 and reflections 0.9.10
- (#25) Added isometric Tiled map support
- Added utility classes for extracting collision data from TiledMap instances
- Fixed exception when disposing orthogonal TiledMaps that do not use caching
- Fixed reentering issues with position listener locks
- Initial release