Skip to content

Latest commit

 

History

History
223 lines (148 loc) · 23.3 KB

CHANGELOG.md

File metadata and controls

223 lines (148 loc) · 23.3 KB

Changelog

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)

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 tutorial in the book, replacing getting-started guide (#269) (2d43efa)
  • document all-features in docs.rs (#252) (321bb07)
  • reference book in API ref and README.md, replacing redundant sections (#282) (e7afdad)
  • remove README.md caveat for hot reloading external levels (#253) (59eb6b3)
  • write Anatomy of the World chapter of book (#285) (29d5e33)
  • write Create bevy relations from ldtk entity references chapter of book (#287) (8080f24)
  • write Game Logic Integration chapter of the book (#279) (a62a556)
  • write Level Selection chapter of book (#284) (226c60c)
  • write Make level selection follow player chapter of book (#293) (201d908)
  • write Respawn levels and worlds chapter of book (#289) (55ed30f)

Code Refactors

  • LdtkAsset and LdtkProject are now exported in new assets module instead of lib.rs (#206) (fe44774)
  • LdtkAsset renamed to LdtkProject (#206) (fe44774)
  • LdtkProject::project and LdtkLevel::level fields have both been renamed to data (#206) (fe44774)
  • LevelMap and TilesetMap type aliases have been removed (#206) (fe44774)
  • All fields of LdtkProject and LdtkLevel are now privatized, and have immutable getter methods (#206) (fe44774)
  • asset Loader types are now private (#206) (fe44774)

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

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)

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)

0.5.0 (2022-11-19)

⚠ BREAKING CHANGES

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

Features

  • add with attribute to LdtkEntity derive (#128) (18e84be)
  • insert Name component on ldtk entities, layers, and levels (33f2b73)
  • upgrade bevy_ecs_tilemap dependency to 0.8 (#134) (7d4d1d0)
  • upgrade to bevy 0.9 (#138) (048285c)

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)
  • filter out out-of-bounds tiles (#129) (37dfed0)