Skip to content

Commit 3399156

Browse files
committed
update to bevy 0.13
1 parent 13996f7 commit 3399156

File tree

10 files changed

+45
-27
lines changed

10 files changed

+45
-27
lines changed

Cargo.toml

+8-8
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,22 @@ edition = "2021"
1010
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
1111

1212
[dependencies]
13-
bevy = { version = "0.12", default-features = false, features = ["bevy_asset"] }
14-
bevy_asset = "0.12.1"
15-
bevy_app = "0.12"
16-
bevy_ecs = "0.12"
13+
bevy = { version = "0.13", default-features = false, features = ["bevy_asset"] }
14+
bevy_asset = "0.13"
15+
bevy_app = "0.13"
16+
bevy_ecs = "0.13"
1717
crossterm = { version = "0.27", features = ["serde"] }
1818
ron = "0.8"
1919
serde = { version = "1.0", features = ["derive"] }
20-
unicode-segmentation = "1.7"
20+
unicode-segmentation = "1.11"
2121
broccoli = "2"
22-
anyhow = { version = "1.0.79", features = [] }
22+
thiserror = "1.0.58"
2323

2424
[dev-dependencies]
2525
# Note that we need "multi-threaded" for "file_watcher" to work (otherwise the game will freeze when assets are modified)
26-
bevy = { version = "0.12", default-features = false, features = ["bevy_asset", "file_watcher", "multi-threaded"] }
26+
bevy = { version = "0.13", default-features = false, features = ["bevy_asset", "file_watcher", "multi-threaded"] }
2727
ron = "0.8"
28-
textwrap = "0.16.0"
28+
textwrap = "0.16"
2929

3030
[[example]]
3131
name = "window"

examples/assets.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ pub fn main() {
4040
.set(LogPlugin {
4141
filter: "off".into(),
4242
level: bevy::log::Level::ERROR,
43+
..default()
4344
}),
4445
)
4546
.add_plugins(CrosstermPlugin)
46-
.add_state::<GameState>()
47+
.init_state::<GameState>()
4748
.add_systems(OnEnter(GameState::Loading), default_settings)
4849
.add_systems(OnEnter(GameState::Loading), load_assets)
4950
.add_systems(Update, check_for_loaded)

examples/demo/main.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,14 @@ pub fn main() {
5252
.set(LogPlugin {
5353
filter: "off".into(),
5454
level: bevy::log::Level::ERROR,
55+
..default()
5556
})
5657
.set(TaskPoolPlugin {
5758
task_pool_options: TaskPoolOptions::with_num_threads(1),
5859
}),
5960
)
6061
.add_plugins(CrosstermPlugin)
61-
.add_state::<GameState>()
62+
.init_state::<GameState>()
6263
.add_systems(Startup, loading_system)
6364
.add_systems(
6465
Update,

examples/focus.rs

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ pub fn main() {
2323
.set(LogPlugin {
2424
filter: "off".into(),
2525
level: bevy::log::Level::ERROR,
26+
..default()
2627
}),
2728
)
2829
.add_plugins(CrosstermPlugin)

examples/redraw_demo.rs

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ pub fn main() {
3131
.set(LogPlugin {
3232
filter: "off".into(),
3333
level: bevy::log::Level::ERROR,
34+
..default()
3435
}),
3536
)
3637
.add_plugins(CrosstermPlugin)

examples/transparency.rs

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ pub fn main() {
2222
.set(LogPlugin {
2323
filter: "off".into(),
2424
level: bevy::log::Level::ERROR,
25+
..default()
2526
}),
2627
)
2728
.add_plugins(CrosstermPlugin)

examples/window.rs

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub fn main() {
3333
.set(LogPlugin {
3434
filter: "off".into(),
3535
level: bevy::log::Level::ERROR,
36+
..default()
3637
}),
3738
)
3839
.add_plugins(CrosstermPlugin)

src/asset_loaders.rs

+23-9
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,37 @@ use bevy::utils::BoxedFuture;
22
use bevy_asset::io::Reader;
33
use bevy_asset::AsyncReadExt;
44
use bevy_asset::{AssetLoader, LoadContext};
5+
use thiserror::Error;
56

67
use crate::components::{Sprite, StyleMap};
78

9+
#[derive(Error, Debug)]
10+
pub enum LoadSpriteError {
11+
#[error("sprite data contains invalid utf8 data")]
12+
InvalidUtf8(#[from] std::str::Utf8Error),
13+
#[error("io error")]
14+
Io(#[from] std::io::Error),
15+
}
16+
817
#[derive(Default)]
918
pub struct SpriteLoader;
1019

11-
// TODO
12-
// Library should not use anyhow
13-
1420
impl AssetLoader for SpriteLoader {
1521
type Asset = Sprite;
1622
type Settings = ();
17-
type Error = anyhow::Error;
23+
type Error = LoadSpriteError;
1824

1925
fn load<'a>(
2026
&'a self,
2127
reader: &'a mut Reader,
2228
_settings: &'a Self::Settings,
2329
_load_context: &'a mut LoadContext,
24-
) -> BoxedFuture<'a, Result<Self::Asset, anyhow::Error>> {
30+
) -> BoxedFuture<'a, Result<Self::Asset, LoadSpriteError>> {
2531
Box::pin(async move {
2632
let mut bytes = Vec::new();
2733
reader.read_to_end(&mut bytes).await?;
28-
let string = std::str::from_utf8(&bytes);
29-
let sprite = Sprite::new(string?);
34+
let string = std::str::from_utf8(&bytes)?;
35+
let sprite = Sprite::new(string);
3036
Ok(sprite)
3137
})
3238
}
@@ -36,20 +42,28 @@ impl AssetLoader for SpriteLoader {
3642
}
3743
}
3844

45+
#[derive(Error, Debug)]
46+
pub enum LoadStyleMapError {
47+
#[error("error deserializing style map from ron data")]
48+
Deserialize(#[from] ron::de::SpannedError),
49+
#[error("io error")]
50+
Io(#[from] std::io::Error),
51+
}
52+
3953
#[derive(Default)]
4054
pub struct StyleMapLoader;
4155

4256
impl AssetLoader for StyleMapLoader {
4357
type Asset = StyleMap;
4458
type Settings = ();
45-
type Error = anyhow::Error;
59+
type Error = LoadStyleMapError;
4660

4761
fn load<'a>(
4862
&'a self,
4963
reader: &'a mut Reader,
5064
_settings: &'a Self::Settings,
5165
_load_context: &'a mut LoadContext,
52-
) -> BoxedFuture<'a, Result<Self::Asset, anyhow::Error>> {
66+
) -> BoxedFuture<'a, Result<Self::Asset, LoadStyleMapError>> {
5367
Box::pin(async move {
5468
let mut bytes = Vec::new();
5569
reader.read_to_end(&mut bytes).await?;

src/components.rs

+5-7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use bevy::prelude::*;
2-
use bevy::reflect::{TypePath, TypeUuid};
2+
use bevy::reflect::TypePath;
33
use bevy::utils::{HashMap, HashSet};
44
use bevy_asset::Handle;
55
use serde::{Deserialize, Serialize};
@@ -40,7 +40,7 @@ pub struct SpriteBundle {
4040
pub visible: Visible,
4141
}
4242

43-
#[derive(Copy, Clone, Debug, Eq, PartialEq, Serialize, Deserialize, Reflect, Default)]
43+
#[derive(Copy, Clone, Debug, Eq, PartialEq, Serialize, Deserialize, Default, TypePath)]
4444
pub struct Colors {
4545
pub foreground: Option<Color>,
4646
pub background: Option<Color>,
@@ -149,7 +149,7 @@ mod attribute_parser {
149149
// impl Reflect for StyleAttributes {}
150150
// impl FromReflect for StyleAttributes {}
151151

152-
#[derive(Copy, Clone, Serialize, Deserialize, PartialEq, Eq, Reflect)]
152+
#[derive(Copy, Clone, Serialize, Deserialize, PartialEq, Eq)]
153153
pub struct Style {
154154
pub colors: Colors,
155155
#[serde(with = "attribute_parser")]
@@ -206,8 +206,7 @@ impl Default for Style {
206206
}
207207
}
208208

209-
#[derive(Default, Serialize, Deserialize, PartialEq, Eq, TypeUuid, TypePath, Asset)]
210-
#[uuid = "a5418d12-e050-498a-a31e-37fd0b6c078d"]
209+
#[derive(Default, Serialize, Deserialize, PartialEq, Eq, TypePath, Asset)]
211210
pub struct StyleMap {
212211
pub style: Style,
213212
pub map: Vec<Vec<Style>>,
@@ -301,8 +300,7 @@ impl Visible {
301300
}
302301
}
303302

304-
#[derive(Default, Eq, PartialEq, Debug, TypeUuid, Reflect, Asset)]
305-
#[uuid = "f04f5352-e656-4a90-95a5-2269c02d0091"]
303+
#[derive(Default, Eq, PartialEq, Debug, Reflect, Asset)]
306304
pub struct Sprite {
307305
// The whole sprites's data
308306
data: String,

src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#![feature(trivial_bounds)]
1+
// #![feature(trivial_bounds)]
22

33
use bevy::prelude::*;
44
use bevy_app::App;

0 commit comments

Comments
 (0)