Releases: Trouv/bevy_ecs_ldtk
Releases · Trouv/bevy_ecs_ldtk
v0.10.0
v0.9.0
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
toLdtkSettings
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 inLdtkEntity
andLdtkIntCell
derive macros (#222) - add
RawLevelAccessor
trait forLdtkJson
level borrowing/iteration, replacing existing methods (#225) - add
LevelIndices
type defining a level's location in a project and use it inLevelSelection::Indices
(#221) - change
LevelEvent
inner types fromString
toLevelIid
(#219) - change
LevelSet
inner type fromString
toLevelIid
(#219) - change
LevelSelection::Iid
inner type fromString
toLevelIid
(#219) - replace
LevelSet::from_iid
withLevelSet::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
andLdtkLevel::level
fields have both been renamed todata
(#206)- All fields of
LdtkProject
andLdtkLevel
are now privatized, and have immutable getter methods (#206) LevelMap
andTilesetMap
type aliases have been removed (#206)LdtkAsset
andLdtkProject
are now exported in newassets
module instead oflib.rs
(#206)- asset
Loader
types are now private (#206) LdtkAsset
renamed toLdtkProject
(#206)
Features
- add
LevelIndices
type defining a level's location in a project and use it inLevelSelection::Indices
(#221) (59618fe) - add
RawLevelAccessor
trait forLdtkJson
level borrowing/iteration, replacing existing methods (#225) (d3de2d9) - add
SpawnExclusions
toLdtkSettings
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 fromString
toLevelIid
(#219) (0039ed7) - change
LevelSelection::Iid
inner type fromString
toLevelIid
(#219) (0039ed7) - change
LevelSet
inner type fromString
toLevelIid
(#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
withLevelSet::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 inLdtkEntity
andLdtkIntCell
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
v0.8.0
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
Documentation Changes
v0.7.0
0.7.0 (2023-04-29)
⚠ BREAKING CHANGES
- Most likely won't affect users -
LdtkAsset
has gained aint_grid_image_handle
field, breaking any manual construction of it.
Features
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
v0.6.0
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-textureTextureAtlas
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
andLayerMetadata
(#146) (ed4a0f9) - upgrade to bevy 0.10 (#168) (5b8f17c)
Bug Fixes
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
Documentation Changes
v0.5.0
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
- add with attribute to LdtkEntity derive (#128) (18e84be) (thanks @marcoseiza)
- insert Name component on ldtk entities, layers, and levels (33f2b73) (thanks @Piturnah)
- 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) (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
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:
- Support multilines string type (thanks @jrasanen) #90
COPY_SRC
no longer added to modified textures recursively (thanks for the report @oliverbestmann) #98- Level no longer spawns twice when spawning
LdtkWorldBundle
in a non-startup system (thanks for the report @grace125, @beardedmullett, @chungwong) #109
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, improvingbevy-inspector-egui
integration (thanks @johanhelsing) #84Clone
derived forLdtkAsset
(thanks @jrasanen) #90- All tiles have
SpatialBundle
s and are children of layer entities, as opposed to just those with intgrid values and metadata #106
v0.3.0
New features:
- LDtk 1.1 support #75
LdtkSettings::set_clear_color
now an enum with an additional option:FromLevelBackground
#76- Level background rendering now optional via
LdtkSettings::level_background
option #76 - Intgrid color rendering now optional via
LdtkSettings::int_grid_rendering
option #76 - Layer opacity support #77
- Level background image support #78
- Support for tileset custom data/enum tagging via
TileMetadata
andTileEnumTags
components #80 - Bevy 0.7 support #81
Breaking changes:
LdtkSettings
refactor, changed structure of existing options to use enums instead of bools, withload_level_neighbors
being an option withinLevelSpawnBehavior::UseWorldTranslation
#76- The
utils
coordinate conversion functions have been rewritten significantly to improve their utility and organization. See PR for more details #80
Bug fixes:
- Auto-tiled IntGrid layer missing GridCoords for unset tiles (thanks for the reports @NeoRaider) #62
Other:
- Added link to LDtk in readme/docs (thanks @pard68) #66
- Added
#[from_entity_instance]
demonstration toplatformer
example (thanks @chungwong) #74
v0.2.0
New features:
GridCoords
component which is added to all tiles, and can be added toLdtkEntity
s 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
andLdtkIntCell
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: