Trouv / bevy_ecs_ldtk

ECS-friendly ldtk plugin for bevy, leveraging bevy_ecs_tilemap
Other
627 stars 73 forks source link

Bevy 0.13 support #302

Closed theshortcut closed 3 months ago

theshortcut commented 4 months ago

Leaving this in draft until https://github.com/StarArawn/bevy_ecs_tilemap/pull/508 merges.

Upstream bevy_ecs_tilemap PR has merged, but a new release hasn't been cut. PR updated to note that main here tracks to main for ECS Tilemap which both allow for Bevy 0.13 support and PR should be mergeable.

Most of the changes here are related to the new TextureAtlasLayout and the examples in the repo look correct to me still at least.

Fixes #301

neocturne commented 4 months ago

I've updated my project to use this branch, and I haven't noticed any issues :tada: (besides having to add a number of manual LdtkEntity impls to work around #305, but that is unrelated to this PR)

linonetwo commented 3 months ago

Hi @theshortcut , https://github.com/StarArawn/bevy_ecs_tilemap/pull/508 is merged.

linonetwo commented 3 months ago

Get some error when using

bevy = "0.13.0"
bevy_ecs_tilemap = { git = "https://github.com/StarArawn/bevy_ecs_tilemap" }
bevy_ecs_ldtk = { git = "https://github.com/theshortcut/bevy_ecs_ldtk/", branch = "bevy-0.13" }
% cargo check
    Checking bevy_ecs_ldtk v0.9.0 (https://github.com/theshortcut/bevy_ecs_ldtk/?branch=bevy-0.13#ef466f3a)
error[E0308]: mismatched types
   --> /Users/linonetwo/.cargo/git/checkouts/bevy_ecs_ldtk-a845ef6482ca980f/ef466f3/src/tile_makers.rs:210:17
    |
209 |               color: TileColor(
    |                      --------- arguments to this struct are incorrect
210 | /                 *color_map
211 | |                     .get(&value)
212 | |                     .expect("Int grid values should have an associated IntGridValueDefinition"),
    | |_______________________________________________________________________________________________^ expected `bevy_render::color::Color`, found `bevy::prelude::Color`
    |
    = note: `bevy::prelude::Color` and `bevy_render::color::Color` have similar names, but are actually distinct types
note: `bevy::prelude::Color` is defined in crate `bevy_render`
// omited
neocturne commented 3 months ago

@linonetwo Your [dependencies] entry for bevy_ecs_tilemap must match the one in bevy_ecs_ldtk (bevy_ecs_tilemap = "0.12") to allow cargo to unify them (or you can omit it altogether if your crate does not use bevy_ecs_tilemap directly).

Use the [patch.crates-io] section to override that dependency to use the current git version:

[patch.crates-io]
bevy_ecs_tilemap = { git = "https://github.com/StarArawn/bevy_ecs_tilemap" }
theshortcut commented 3 months ago

yep looks like the PR merged but we'd still need a release of bevy_ecs_tilemap cut to be able to bump the dependency here and release a version of bevy_ecs_ldtk. I'll mark this PR as ready for review anyway and keep an eye on crate releases.

theshortcut commented 3 months ago

@Trouv I've updated the cargo patch definition to pull from upstream main branch instead of the PR branch and the compat table in the readme.

Trouv commented 3 months ago

It seems that your last push allowed me to run the CI. It's passing but the "Build and test book" job is actually secretly failing (see #270).

 - Test: how-to-guides/respawn-levels-and-worlds.md_sect_respawn_the_currently_selected_level_line_76 (Failed to compile)
 - Test: how-to-guides/respawn-levels-and-worlds.md_sect_respawn_the_currently_selected_level_line_32 (Failed to compile)

Those md files are in the book/src directory. I think it's just Input -> ButtonInput and KeyCode::L -> KeyCode::KeyL changes

theshortcut commented 3 months ago

Updated and locally ran mdbook which passes the mdbook-keeper tests for me. Will check the CI build when that goes too thanks for catching that.

EDIT: looks like the build & test book passed in CI as well 🎉