Skip to content

Releases: Trouv/bevy_ecs_ldtk

v0.10.0

20 Jul 16:30
c72b5c8
Compare
Choose a tag to compare

0.10.0 (2024-07-20)

⚠ BREAKING CHANGES

  • upgrade to bevy and bevy_ecs_ldtk 0.14 (#325)
  • upgrade to bevy 0.13 (#302)

Features

  • add #[default] attribute to LdtkEntity and LdtkIntCell derive macros (#306) (416a46e)
  • upgrade to bevy 0.13 (#302) (2ee602f), closes #301
  • upgrade to bevy and bevy_ecs_ldtk 0.14 (#325) (d888535)

Documentation Changes

  • remove unused AssetServer param in Game logic integration chapter (#318) (617b108)

v0.9.0

11 Feb 17:18
e040747
Compare
Choose a tag to compare

0.9.0 (2024-02-11)

⚠ BREAKING CHANGES

  • upgrade to bevy 0.12 (#265)
  • upgrade to LDtk 1.5.3, dropping support for previous versions (#295)
  • add SpawnExclusions to LdtkSettings for skipping layers by identifier (#275)
  • add layer entity for Entity layers, changing the hierarchy (#257)
  • upgrade to LDtk types and examples to 1.4.1 (drop support for <1.4.1) (#256)
  • LdtkLevel renamed to LdtkExternalLevel and is no longer used as a component (#244)
  • redesign LdtkProject with better level data accessors and correct modeling of internal/external levels (#244)
  • use the bundle's Default implementation rather than the field's in LdtkEntity and LdtkIntCell derive macros (#222)
  • add RawLevelAccessor trait for LdtkJson level borrowing/iteration, replacing existing methods (#225)
  • add LevelIndices type defining a level's location in a project and use it in LevelSelection::Indices (#221)
  • change LevelEvent inner types from String to LevelIid (#219)
  • change LevelSet inner type from String to LevelIid (#219)
  • change LevelSelection::Iid inner type from String to LevelIid (#219)
  • replace LevelSet::from_iid with LevelSet::from_iids, which can convert from any collection of strings. (#219)
  • use new LevelIid type in LevelEvent, LevelSet, and LevelSelection, plus other improvements (#219)
  • LdtkProject::project and LdtkLevel::level fields have both been renamed to data (#206)
  • All fields of LdtkProject and LdtkLevel are now privatized, and have immutable getter methods (#206)
  • LevelMap and TilesetMap type aliases have been removed (#206)
  • LdtkAsset and LdtkProject are now exported in new assets module instead of lib.rs (#206)
  • asset Loader types are now private (#206)
  • LdtkAsset renamed to LdtkProject (#206)

Features

  • add LevelIndices type defining a level's location in a project and use it in LevelSelection::Indices (#221) (59618fe)
  • add RawLevelAccessor trait for LdtkJson level borrowing/iteration, replacing existing methods (#225) (d3de2d9)
  • add SpawnExclusions to LdtkSettings for skipping layers by identifier (#275) (282404d), closes #272
  • add layer entity for Entity layers, changing the hierarchy (#257) (ee20a53)
  • add LdtkJsonWithMetadata type for representing internal- and external-level project data with generics (#242) (630434a)
  • add LdtkProjectData for representing either internal- or external-level project data concretely (#243) (c530bc9)
  • add level locale types and begin splitting internal_levels and external_levels features (#237) (8129e55)
  • add LevelIid component and spawn it on every level (#215) (ad83455)
  • add LoadedLevel type that wraps around levels with complete data (#214) (3d40c15)
  • add types and traits around LevelMetadata (#229) (382dea2)
  • change LevelEvent inner types from String to LevelIid (#219) (0039ed7)
  • change LevelSelection::Iid inner type from String to LevelIid (#219) (0039ed7)
  • change LevelSet inner type from String to LevelIid (#219) (0039ed7)
  • LdtkLevel renamed to LdtkExternalLevel and is no longer used as a component (#244) (670cd4e)
  • redesign LdtkProject with better level data accessors and correct modeling of internal/external levels (#244) (670cd4e)
  • replace LevelSet::from_iid with LevelSet::from_iids, which can convert from any collection of strings. (#219) (0039ed7)
  • upgrade to bevy 0.12 (#265) (194731e)
  • upgrade to LDtk 1.5.3, dropping support for previous versions (#295) (4926a50)
  • upgrade to LDtk types and examples to 1.4.1 (drop support for <1.4.1) (#256) (ab21e2c)
  • use new LevelIid type in LevelEvent, LevelSet, and LevelSelection, plus other improvements (#219) (0039ed7)
  • use the bundle's Default implementation rather than the field's in LdtkEntity and LdtkIntCell derive macros (#222) (f003127)

Bug Fixes

  • don't apply level set until project and dependencies are completely loaded (#296) (dbfe1c6)
  • normalize resolved asset paths using path_clean (#255) (33a8998), closes #240
  • only spawn invisible tiles on first sub-layer of AutoTile+IntGrid layers (#231) (d2873e3)
  • recalculate layer offset to adjust for tileset sizes (#254) (c00085d)
  • use entity definition tile size instead of entity instance tile size as basis when calculating ldtk entity scale (#271) (833af01)

Documentation Changes

  • add 0.8 to 0.9 migration guide (#266) (bb91660)
  • add collectathon cargo example (#288) (32dfb85)
  • add mdbook with outline and introduction (#261) (810b25a)
  • add tile-based game example w/ a tut...
Read more

v0.8.0

31 Jul 01:56
9a10bc8
Compare
Choose a tag to compare

0.8.0 (2023-07-31)

⚠ BREAKING CHANGES

  • upgrade to bevy and bevy_ecs_tilemap 0.11 (#204)
  • LdtkAsset::world_height has been removed
  • upgrade LDtk types to 1.3.3 (dropping support for <1.3.3 LDtk projects) (#203)

Features

  • add EntityIid component which is added to all entities by default (#194) (d99f1ae)
  • register and derive Reflect for LdtkLevel and dependent types (#201) (873ed17)
  • upgrade LDtk types to 1.3.3 (dropping support for <1.3.3 LDtk projects) (#203) (e347780)
  • upgrade to bevy and bevy_ecs_tilemap 0.11 (#204) (ef1b075)

Bug Fixes

  • remove LdtkAsset::world_height and correct UseWorldTranslation y-calculation (#207) (8923b4e)

Documentation Changes

v0.7.0

29 Apr 18:40
58e22ce
Compare
Choose a tag to compare

0.7.0 (2023-04-29)

⚠ BREAKING CHANGES

  • Most likely won't affect users - LdtkAsset has gained a int_grid_image_handle field, breaking any manual construction of it.

Features

  • add LdtkFields trait with convenience methods for accessing field instances (#180) (a8dba24)

Bug Fixes

  • create IntGrid white-image on asset load and minimize its size (#183) (23fd924)
  • insert Name component before evaluating LdtkEntity (#186) (a5c1579)

Documentation Changes

  • rewrite field_instances example, demonstrating LdtkFields API (#187) (7be6635)

v0.6.0

31 Mar 03:33
adf393e
Compare
Choose a tag to compare

0.6.0 (2023-03-31)

⚠ BREAKING CHANGES

  • In addition to updating to bevy 0.10, users may need define order between LdtkSystemSet::ProcessApi and other 3rd party system sets, like rapier.
  • change LdtkEntity's #[with] attribute to borrow EntityInstance (#158)
  • split RegisterLdtkObjects into two new traits with a different naming convention (#155)
  • change #[from_entity_instance] to use references (#149)

Features

  • add #[sprite_sheet_bundle(no_grid)] attribute for generating a single-texture TextureAtlas instead of a grid (#161) (d6d3c9c)
  • add with attribute for LdtkIntCell derive macro (#157) (d3fbd3c)
  • add LevelSet::from_iid method (#144) (fb17ae1)
  • add render feature for headless mode (tilemaps only) (#159) (2f8000e)
  • change #[from_entity_instance] to use references (#149) (246880f)
  • change LdtkEntity's #[with] attribute to borrow EntityInstance (#158) (c052b31)
  • register TileMetadata and TileEnumTags types (#153) (26cae15)
  • register types GridCoords and LayerMetadata (#146) (ed4a0f9)
  • upgrade to bevy 0.10 (#168) (5b8f17c)

Bug Fixes

  • use normal sprite for background color instead of tile (#171) (b22b11d)

Example Changes

  • improve ground detection in platformer example (#137) (cafba57)
  • use rect_builder buffer instead of row-specific current_rects in spawn_wall_collisions (#147) (45303f3)

Code Refactors

  • split RegisterLdtkObjects into two new traits with a different naming convention (#155) (156ae8c)

Documentation Changes

  • explain feature flags in crate-level documentation (#164) (a832da0)
  • explain that sprite_bundle should not be used with tilemap editor visuals (#142) (1a7a8a1)
  • repair doc links to bevy in app module (#154) (0f928e8)

v0.5.0

20 Nov 05:35
5b24216
Compare
Choose a tag to compare

0.5.0 (2022-11-19)

⚠ BREAKING CHANGES

  • upgrade to bevy 0.9 (#138) (thanks @greenfierydragon)
  • adjust tile transformations for bevy_ecs_tilemap 0.8 (#136)
  • upgrade bevy_ecs_tilemap dependency to 0.8 (#134) (thanks @bardt)

Features

Bug Fixes

  • adjust tile transformations for bevy_ecs_tilemap 0.8 (#136) (aad0325)
  • do not spawn empty ECS entity for omitted worldly entities (#122) (a9a0318) (thanks @NeoRaider)
  • filter out out-of-bounds tiles (#129) (37dfed0) (thanks for the report @zicklag)

Other Changes

  • refactor platformer example to use bevy_rapier2d (#127) (thanks @CashWasabi)

v0.4.0

17 Aug 06:12
eb27c37
Compare
Choose a tag to compare

New features:

  • New LayerMetadata component, automatically added to AutoTile, Tile and IntGrid layers #102
  • New Respawn component that you can add to world entities or level entities to respawn them (thanks for the suggestion @bardt) #109
  • #[sprite_sheet_bundle] attribute macro now supports LDtk "tileset padding" #110

Breaking changes:

  • Spelling of LevelBackground::Nonexistent fixed (thanks @johanhelsing) #83
  • offset argument added to #[sprite_sheet_bundle(...)] attribute macro #110

Bug fixes:

Other:

  • Updated to bevy 0.8 (thanks @nfagerlund) #104
  • Schedule completely reworked. Fewer frame delays + more correct LevelSelection/LevelSet behavior #109
  • New stage LdtkStage::ProcessApi as part of the schedule rework. #109
  • Implement ground detection in platformer example (thanks @ChristopherBiscardi) #86
  • Reflect derived for all components, improving bevy-inspector-egui integration (thanks @johanhelsing) #84
  • Clone derived for LdtkAsset (thanks @jrasanen) #90
  • All tiles have SpatialBundles and are children of layer entities, as opposed to just those with intgrid values and metadata #106

v0.3.0

25 Apr 02:10
Compare
Choose a tag to compare

New features:

  1. LDtk 1.1 support #75
  2. LdtkSettings::set_clear_color now an enum with an additional option: FromLevelBackground #76
  3. Level background rendering now optional via LdtkSettings::level_background option #76
  4. Intgrid color rendering now optional via LdtkSettings::int_grid_rendering option #76
  5. Layer opacity support #77
  6. Level background image support #78
  7. Support for tileset custom data/enum tagging via TileMetadata and TileEnumTags components #80
  8. Bevy 0.7 support #81

Breaking changes:

  1. LdtkSettings refactor, changed structure of existing options to use enums instead of bools, with load_level_neighbors being an option within LevelSpawnBehavior::UseWorldTranslation #76
  2. The utils coordinate conversion functions have been rewritten significantly to improve their utility and organization. See PR for more details #80

Bug fixes:

  1. Auto-tiled IntGrid layer missing GridCoords for unset tiles (thanks for the reports @NeoRaider) #62

Other:

  1. Added link to LDtk in readme/docs (thanks @pard68) #66
  2. Added #[from_entity_instance] demonstration to platformer example (thanks @chungwong) #74

v0.2.0

25 Feb 05:12
Compare
Choose a tag to compare

New features:

  • GridCoords component which is added to all tiles, and can be added to LdtkEntitys with the #[grid_coords] attribute: #55
  • Colors! Now bevy_ecs_ldtk uses LDtk's workspace background color, level background colors, and IntGrid tile colors! #59
  • Wasm support through the "atlas" feature: #54 (thanks @colathro)

Bug fixes:

  • LdtkEntity and LdtkIntCell now work better on generic bundles: #53
  • Tile spacing supported again via the "atlas" feature: #56
  • No more chatty bevy_ecs_tilemap warnings regarding COPY_SRC textures: #59

Other changes:

  • Platformer example now spawns fewer colliders: #55
  • Constructors used by LdtkEntity are now more specific #58

v0.1.0

16 Jan 06:23
Compare
Choose a tag to compare

First release!