diff --git a/Cargo.toml b/Cargo.toml index 57204e5..aac894b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ chrono = { version = "0.4.35", features = ["serde"] } anyhow = { version = "1.0.86", features = ["backtrace"] } indexmap = { version = "2.2.6", features = ["rayon"] } shaderc = { version = "0.8.3", features = ["build-from-source"] } -rusqlite = { version = "0.32.0", features = ["bundled"] } +rusqlite = { version = "0.33.0", features = ["bundled"] } cgmath = "0.18.0" http = "1.1.0" iterchunks = "0.5.0" @@ -36,7 +36,7 @@ sdl2 = { version = "0.37.0" } syn = { version = "2.0.67", features = ["extra-traits", "full"] } quote = "1.0.35" proc-macro2 = "1.0.86" -downcast-rs = "1.2.1" +downcast-rs = "2.0.0" utilities = { git = "https://gavania.de/hodasemi/utilities.git" } vulkan-rs = { git = "https://gavania.de/hodasemi/vulkan_lib.git" } diff --git a/character_window/src/lib.rs b/character_window/src/lib.rs index 981557d..83940c7 100644 --- a/character_window/src/lib.rs +++ b/character_window/src/lib.rs @@ -6,7 +6,7 @@ mod page_content; mod traits; use anyhow::Result; -use downcast_rs::{impl_downcast, Downcast}; +use downcast_rs::{Downcast, impl_downcast}; use engine::prelude::*; use rpg_components::{ components::{ @@ -21,8 +21,8 @@ use std::{ collections::HashMap, ops::{Deref, DerefMut}, sync::{ - atomic::{AtomicUsize, Ordering::SeqCst}, Arc, Mutex, RwLock, RwLockReadGuard, RwLockWriteGuard, + atomic::{AtomicUsize, Ordering::SeqCst}, }, }; @@ -125,19 +125,19 @@ pub struct CharacterWindow { tabs: RwLock<[Box<dyn Page>; 3]>, tab: AtomicUsize, - - engine: Arc<Engine>, } impl CharacterWindow { pub fn new<A: Ability + 'static>( - engine: Arc<Engine>, + world: &World, hero: Entity, name: &str, close: Box<dyn FutureStateChange>, ) -> Result<Arc<Self>> { - let menu_gui = - GuiBuilder::from_str(engine.gui_handler(), include_str!("../resources/menu.xml"))?; + let menu_gui = GuiBuilder::from_str( + world.resources.get::<Arc<GuiHandler>>(), + include_str!("../resources/menu.xml"), + )?; let content_grid = menu_gui.element("tab_content")?; let open_character_page: Arc<Button> = menu_gui.element("open_statistics")?; diff --git a/rpg_components/src/components/attributes.rs b/rpg_components/src/components/attributes.rs index 7606c93..501d356 100644 --- a/rpg_components/src/components/attributes.rs +++ b/rpg_components/src/components/attributes.rs @@ -1,11 +1,12 @@ use anyhow::bail; use engine::prelude::{image::RgbaImage, *}; +use serde::{Deserialize, Serialize}; use std::{cmp::Ordering, slice::Iter, str::FromStr}; use crate::{ config::attributes::{AttributeColorSettings, StartingAttributes}, - items::{ability_book::Ability, ItemSystem}, + items::{ItemSystem, ability_book::Ability}, }; generate_stat!(Agility, u32, "Agility"); diff --git a/rpg_components/src/components/character_status.rs b/rpg_components/src/components/character_status.rs index 9588a13..2e09cd1 100644 --- a/rpg_components/src/components/character_status.rs +++ b/rpg_components/src/components/character_status.rs @@ -2,6 +2,7 @@ use std::time::Duration; use anyhow::Result; use engine::prelude::*; +use serde::{Deserialize, Serialize}; use super::statistics::*; diff --git a/rpg_components/src/components/crafting_materials.rs b/rpg_components/src/components/crafting_materials.rs index b516c7d..b77f6e5 100644 --- a/rpg_components/src/components/crafting_materials.rs +++ b/rpg_components/src/components/crafting_materials.rs @@ -1,6 +1,7 @@ use engine::prelude::*; use paste::paste; +use serde::{Deserialize, Serialize}; use crate::{config::save_game::SaveGame, items::Rarities}; diff --git a/rpg_components/src/components/statistic_types.rs b/rpg_components/src/components/statistic_types.rs index 6225d70..05a93c1 100644 --- a/rpg_components/src/components/statistic_types.rs +++ b/rpg_components/src/components/statistic_types.rs @@ -1,5 +1,6 @@ use anyhow::Result; use engine::prelude::*; +use serde::{Deserialize, Serialize}; use std::fmt; @@ -540,7 +541,7 @@ impl std::str::FromStr for StatisticType { return Err(anyhow::Error::msg(format!( "Failed parsing StatisticTypes from {}", s - ))) + ))); } } } diff --git a/rpg_components/src/components/statistics.rs b/rpg_components/src/components/statistics.rs index 1c53b69..2094626 100644 --- a/rpg_components/src/components/statistics.rs +++ b/rpg_components/src/components/statistics.rs @@ -1,4 +1,5 @@ use engine::prelude::*; +use serde::{Deserialize, Serialize}; use crate::{ config::{ diff --git a/rpg_components/src/config/abilities.rs b/rpg_components/src/config/abilities.rs index 939412e..cb312df 100644 --- a/rpg_components/src/config/abilities.rs +++ b/rpg_components/src/config/abilities.rs @@ -1,5 +1,6 @@ use assetpath::AssetPath; use engine::prelude::*; +use serde::{Deserialize, Serialize}; create_settings_section!( AbilityIcons, diff --git a/rpg_components/src/config/experience.rs b/rpg_components/src/config/experience.rs index 5720488..3a999ea 100644 --- a/rpg_components/src/config/experience.rs +++ b/rpg_components/src/config/experience.rs @@ -1,4 +1,5 @@ use engine::prelude::*; +use serde::{Deserialize, Serialize}; use crate::components::npc_type::NPCType; diff --git a/rpg_components/src/damage_type.rs b/rpg_components/src/damage_type.rs index 78204db..5894fc5 100644 --- a/rpg_components/src/damage_type.rs +++ b/rpg_components/src/damage_type.rs @@ -1,5 +1,6 @@ use anyhow::Result; use engine::prelude::*; +use serde::{Deserialize, Serialize}; use std::convert::TryFrom; @@ -31,7 +32,7 @@ impl std::str::FromStr for DamageType { return Err(anyhow::Error::msg(format!( "Failed parsing DamageType from {}", s - ))) + ))); } } } diff --git a/rpg_components/src/items/ability_addon.rs b/rpg_components/src/items/ability_addon.rs index ae48371..9c1814c 100644 --- a/rpg_components/src/items/ability_addon.rs +++ b/rpg_components/src/items/ability_addon.rs @@ -1,6 +1,7 @@ use anyhow::Result; use assetpath::AssetPath; use engine::prelude::*; +use serde::{Deserialize, Serialize}; use std::{ fmt, diff --git a/rpg_components/src/items/ability_book.rs b/rpg_components/src/items/ability_book.rs index 9d00a32..eaeac01 100644 --- a/rpg_components/src/items/ability_book.rs +++ b/rpg_components/src/items/ability_book.rs @@ -2,6 +2,7 @@ use anyhow::Result; use assetpath::AssetPath; use cgmath::{Vector2, Vector3}; use engine::prelude::*; +use serde::{Deserialize, Serialize}; use std::{fmt::Debug, str::FromStr, sync::Arc, time::Duration}; diff --git a/rpg_components/src/items/item.rs b/rpg_components/src/items/item.rs index bb09bb8..8b225f1 100644 --- a/rpg_components/src/items/item.rs +++ b/rpg_components/src/items/item.rs @@ -16,7 +16,7 @@ use crate::{ config::items::ItemSettings, }; -use super::{ability_book::Ability, ItemSlots, ItemSystem, Jewel, Rarities, Tooltip}; +use super::{ItemSlots, ItemSystem, Jewel, Rarities, Tooltip, ability_book::Ability}; const ITEM_SNIPPETS: [&'static str; 8] = [ include_str!("../../resources/items/slots_0.xml"), @@ -314,7 +314,7 @@ impl Item { None => { socket_icon.set_icon( &Image::from_slice(include_bytes!("../../resources/circle.png"))? - .attach_sampler(Sampler::pretty_sampler().build(gui_handler.device())?) + .attach_pretty_sampler(gui_handler.device())? .build(gui_handler.device(), gui_handler.queue())?, )?; diff --git a/rpg_components/src/items/item_slots.rs b/rpg_components/src/items/item_slots.rs index f131877..258dea0 100644 --- a/rpg_components/src/items/item_slots.rs +++ b/rpg_components/src/items/item_slots.rs @@ -1,6 +1,7 @@ use anyhow::Result; use assetpath::AssetPath; use engine::prelude::*; +use serde::{Deserialize, Serialize}; use std::{fmt, slice::Iter}; @@ -91,7 +92,7 @@ impl std::str::FromStr for ItemSlots { return Err(anyhow::Error::msg(format!( "Failed parsing ItemSlots from {}", s - ))) + ))); } } } diff --git a/rpg_components/src/items/rarities.rs b/rpg_components/src/items/rarities.rs index d23972a..7587772 100644 --- a/rpg_components/src/items/rarities.rs +++ b/rpg_components/src/items/rarities.rs @@ -2,12 +2,13 @@ use anyhow::Result; use engine::prelude::*; use image::RgbaImage; +use serde::{Deserialize, Serialize}; use std::{fmt, slice::Iter}; use crate::config::items::{ItemSettings, RarityColorSettings}; -use super::{ability_book::Ability, ItemSystem}; +use super::{ItemSystem, ability_book::Ability}; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)] pub enum Rarities { @@ -114,7 +115,7 @@ impl std::str::FromStr for Rarities { return Err(anyhow::Error::msg(format!( "Failed parsing Rarities from {}", s - ))) + ))); } } }