diff --git a/.github/workflows/install-deps/action.yml b/.github/workflows/install-deps/action.yml
index 54e13c1..ae39eaf 100644
--- a/.github/workflows/install-deps/action.yml
+++ b/.github/workflows/install-deps/action.yml
@@ -5,7 +5,7 @@ runs:
using: 'composite'
steps:
- name: Cache APT packages
- uses: actions/cache@v4
+ uses: actions/cache@v5
id: cache-apt
with:
path: /var/cache/apt/archives/*.deb
@@ -20,6 +20,7 @@ runs:
sudo apt update
sudo apt install -y --download-only \
pkg-config libx11-dev libasound2-dev libudev-dev \
+ libwayland-dev libxkbcommon-dev \
libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev \
libxcb-render0-dev libxcb-xfixes0-dev libxcb1-dev \
portaudio19-dev build-essential libpulse-dev libdbus-1-dev \
@@ -31,6 +32,7 @@ runs:
sudo apt update
sudo apt install -y \
pkg-config libx11-dev libasound2-dev libudev-dev \
+ libwayland-dev libxkbcommon-dev \
libxcb-randr0-dev libxcb-xtest0-dev libxcb-xinerama0-dev libxcb-shape0-dev libxcb-xkb-dev \
libxcb-render0-dev libxcb-xfixes0-dev libxcb1-dev \
portaudio19-dev build-essential libpulse-dev libdbus-1-dev \
diff --git a/README.md b/README.md
index a5894cd..1314097 100644
--- a/README.md
+++ b/README.md
@@ -9,10 +9,10 @@ This repository hosts working examples of agent-based simulations, based on the
| [Ants Foraging](antsforaging) | :heavy_check_mark: |
|
| [Flockers](flockers) | :heavy_check_mark: |
|
| [ForestFire](forestfire) | :heavy_check_mark: |
|
-| [ForestFire_bayesian](forestfire_bayesian) | :heavy_check_mark: |
+| [ForestFire_bayesian](forestfire_bayesian) | :heavy_check_mark: | :x: |
| [Schelling](schelling) | :heavy_check_mark: |
|
-| [Sir_bayesian](sir_bayesian) | :heavy_check_mark: |
-| [Sir_ga_exploration](sir_ga_exploration) | :heavy_check_mark: |
+| [Sir_bayesian](sir_bayesian) | :heavy_check_mark: | :x: |
+| [Sir_ga_exploration](sir_ga_exploration) | :heavy_check_mark: | :x: |
| [Sugarscape](sugarscape) | :heavy_check_mark: |
|
| [Template](template) | :heavy_check_mark: |
|
| [Virus on a Network](virusnetwork) | :heavy_check_mark: |
|
diff --git a/antsforaging/Cargo.toml b/antsforaging/Cargo.toml
index c572f7e..3db7c97 100644
--- a/antsforaging/Cargo.toml
+++ b/antsforaging/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "antsforaging"
-version = "0.3.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
visualization = ["krabmaga/visualization"]
diff --git a/antsforaging/src/main.rs b/antsforaging/src/main.rs
index 1a67614..8bbb1b8 100644
--- a/antsforaging/src/main.rs
+++ b/antsforaging/src/main.rs
@@ -4,15 +4,13 @@ use krabmaga::simulate;
// Visualization specific imports
#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
use {
- crate::model::to_food_grid::ToFoodGrid, crate::model::to_home_grid::ToHomeGrid,
- crate::visualization::vis_state::VisState, krabmaga::bevy::app::FixedUpdate,
- krabmaga::bevy::prelude::Color, krabmaga::visualization::fields::number_grid_2d::BatchRender,
+ crate::model::state::ModelState, crate::model::to_food_grid::ToFoodGrid,
+ crate::model::to_home_grid::ToHomeGrid, crate::visualization::vis_state::VisState,
+ krabmaga::bevy::app::FixedUpdate, krabmaga::bevy::prelude::Color,
+ krabmaga::visualization::fields::number_grid_2d::BatchRender,
krabmaga::visualization::visualization::Visualization,
};
-// Global imports, required in all cases
-use crate::model::state::ModelState;
-
pub mod model;
// Constants
@@ -48,7 +46,7 @@ pub mod visualization;
fn main() {
let state = ModelState::new();
let mut app = Visualization::default()
- .with_background_color(Color::rgb(255., 255., 255.))
+ .with_background_color(Color::srgb(1., 1., 1.))
.with_simulation_dimensions(WIDTH as f32, HEIGHT as f32)
.with_window_dimensions(1280., 720.)
.with_name("Ants foraging")
@@ -57,16 +55,10 @@ fn main() {
FixedUpdate,
(ToHomeGrid::batch_render, ToFoodGrid::batch_render),
);
- app.run()
+ app.run();
}
-// #[cfg(not(any(feature = "visualization", feature = "visualization_wasm")))]
-// use {krabmaga::rand, krabmaga::rand::Rng};
-
-// Main used when only the simulation should run, without any visualization.
#[cfg(not(any(feature = "visualization", feature = "visualization_wasm")))]
fn main() {
- let state = ModelState::new();
-
- let _ = simulate!(state, STEP, 10);
+ println!("Visualization features are not enabled. Please enable one of the visualization features to see the simulation in action.");
}
diff --git a/antsforaging/src/model/state.rs b/antsforaging/src/model/state.rs
index b62038b..7f8ab70 100644
--- a/antsforaging/src/model/state.rs
+++ b/antsforaging/src/model/state.rs
@@ -7,6 +7,12 @@ use crate::{
};
use core::fmt;
use core::hash::{Hash, Hasher};
+
+#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
+use krabmaga::bevy::ecs as bevy_ecs;
+#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
+use krabmaga::bevy::prelude::Component;
+
use krabmaga::engine::fields::field::Field;
use krabmaga::engine::fields::sparse_object_grid_2d::SparseGrid2D;
use krabmaga::engine::location::Int2D;
@@ -35,6 +41,10 @@ impl fmt::Display for ItemType {
}
#[derive(Copy, Clone)]
+#[cfg_attr(
+ any(feature = "visualization", feature = "visualization_wasm"),
+ derive(Component)
+)]
pub struct Item {
pub id: u32,
pub value: ItemType,
diff --git a/antsforaging/src/visualization/ant.rs b/antsforaging/src/visualization/ant.rs
index b36a734..5cbc5b0 100644
--- a/antsforaging/src/visualization/ant.rs
+++ b/antsforaging/src/visualization/ant.rs
@@ -1,7 +1,6 @@
use crate::model::ant::Ant;
use crate::model::state::ModelState;
-use krabmaga::bevy::ecs::component::TableStorage;
-use krabmaga::bevy::prelude::{Component, Quat, Transform, Visibility};
+use krabmaga::bevy::prelude::{Quat, Transform, Visibility};
use krabmaga::engine::agent::Agent;
use krabmaga::engine::location::Int2D;
use krabmaga::engine::state::State;
@@ -10,9 +9,7 @@ use krabmaga::visualization::agent_render::{AgentRender, SpriteType};
pub struct AntVis {
pub id: u32,
}
-impl Component for AntVis {
- type Storage = TableStorage;
-}
+
impl AgentRender for AntVis {
fn sprite(&self, _agent: &Box, _state: &Box<&dyn State>) -> SpriteType {
SpriteType::Emoji(String::from("ant"))
diff --git a/antsforaging/src/visualization/item.rs b/antsforaging/src/visualization/item.rs
index 2ff35c6..c57ac14 100644
--- a/antsforaging/src/visualization/item.rs
+++ b/antsforaging/src/visualization/item.rs
@@ -1,8 +1 @@
-use krabmaga::bevy::ecs::component::TableStorage;
-use krabmaga::bevy::prelude::Component;
-
-use crate::model::state::Item;
-
-impl Component for Item {
- type Storage = TableStorage;
-}
+// Item now derives Component in model/state.rs for Bevy 0.18 compatibility.
diff --git a/antsforaging/src/visualization/vis_state.rs b/antsforaging/src/visualization/vis_state.rs
index 4d6120b..7515139 100644
--- a/antsforaging/src/visualization/vis_state.rs
+++ b/antsforaging/src/visualization/vis_state.rs
@@ -15,7 +15,7 @@ use crate::model::ant::Ant;
use crate::model::state::*;
use crate::visualization::ant::AntVis;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
+use krabmaga::bevy::prelude::Resource;
#[derive(Clone, Resource)]
pub struct VisState;
@@ -48,7 +48,7 @@ impl VisualizationState for VisState {
fn get_agent(
&self,
- agent_render: &Box,
+ agent_render: &dyn AgentRender,
state: &Box<&dyn StateTrait>,
) -> Option> {
let state = state.as_any().downcast_ref::().unwrap();
diff --git a/flockers/Cargo.toml b/flockers/Cargo.toml
index 73e0b47..0775540 100644
--- a/flockers/Cargo.toml
+++ b/flockers/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "flockers"
-version = "0.3.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
parallel = ["krabmaga/parallel"]
diff --git a/flockers/src/main.rs b/flockers/src/main.rs
index 5ded40c..9a1a1c4 100644
--- a/flockers/src/main.rs
+++ b/flockers/src/main.rs
@@ -1,19 +1,11 @@
// No visualization specific imports
#[cfg(not(any(feature = "visualization", feature = "visualization_wasm")))]
-use {
- krabmaga::engine::schedule::Schedule,
- // krabmaga::*,
- krabmaga::engine::state::State,
- krabmaga::simulate,
- krabmaga::Info,
- krabmaga::*,
- std::time::Duration,
-};
+use {krabmaga::simulate, krabmaga::*};
// Visualization specific imports
#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
use {
crate::visualization::vis_state::VisState, krabmaga::bevy::prelude::Color,
- krabmaga::visualization::visualization::Visualization,
+ krabmaga::engine::state::State, krabmaga::visualization::visualization::Visualization,
};
use crate::model::state::Flocker;
@@ -35,16 +27,14 @@ pub static TOROIDAL: bool = true;
// Main used when only the simulation should run, without any visualization.
#[cfg(not(any(feature = "visualization", feature = "visualization_wasm")))]
fn main() {
- use krabmaga::simulate_old;
-
- let step = 200;
+ let step = 1000;
- let dim = (100., 100.);
- let num_agents = 1000;
+ let dim = (1000., 1000.);
+ let num_agents = 10000;
let state = Flocker::new(dim, num_agents);
// let _ = simulate!(state, step, 1, Info::Normal);
- // let _ = simulate!(state, step, 1);
- let _ = simulate_old!(state, step, 1, krabmaga::Info::Normal);
+ simulate!(state, step, 1);
+ // let _ = simulate_old!(state, step, 1, krabmaga::Info::Normal);
}
// Main used when a visualization feature is applied.
@@ -56,7 +46,7 @@ fn main() {
Visualization::default()
.with_window_dimensions(1000., 700.)
.with_simulation_dimensions(dim.0, dim.1)
- .with_background_color(Color::rgb(0., 0., 0.))
+ .with_background_color(Color::srgb(0., 0., 0.))
.with_name("Flockers")
.start::(VisState, state);
}
diff --git a/flockers/src/visualization/vis_state.rs b/flockers/src/visualization/vis_state.rs
index ac8f738..66a2fa4 100644
--- a/flockers/src/visualization/vis_state.rs
+++ b/flockers/src/visualization/vis_state.rs
@@ -1,4 +1,4 @@
-use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::{Commands, Resource};
use krabmaga::engine::agent::Agent;
use krabmaga::engine::location::Real2D;
use krabmaga::engine::schedule::Schedule;
@@ -12,7 +12,6 @@ use crate::model::bird::Bird;
use crate::model::state::Flocker;
use crate::visualization::bird_vis::BirdVis;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
#[derive(Clone, Resource)]
pub struct VisState;
@@ -43,7 +42,7 @@ impl VisualizationState for VisState {
fn get_agent(
&self,
- agent_render: &Box,
+ agent_render: &dyn AgentRender,
state: &Box<&dyn State>,
) -> Option> {
// TODO we don't just need the agent associated to the agent render, we need the correct one so that we
diff --git a/flockers_mpi/Cargo.toml b/flockers_mpi/Cargo.toml
index c863028..e70dd87 100644
--- a/flockers_mpi/Cargo.toml
+++ b/flockers_mpi/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "flockers_mpi"
-version = "0.4.1"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
distributed_mpi = ["krabmaga/distributed_mpi"]
diff --git a/forestfire/Cargo.toml b/forestfire/Cargo.toml
index d9fce8b..f3d4977 100644
--- a/forestfire/Cargo.toml
+++ b/forestfire/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "forestfire"
-version = "0.2.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
visualization = ["krabmaga/visualization"]
diff --git a/forestfire/src/main.rs b/forestfire/src/main.rs
index 65ebf69..3c6fb0f 100644
--- a/forestfire/src/main.rs
+++ b/forestfire/src/main.rs
@@ -45,7 +45,7 @@ fn main() {
let mut app = Visualization::default()
.with_simulation_dimensions(state.dim.0 as f32, state.dim.1 as f32)
.with_window_dimensions(1000., 720.)
- .with_background_color(Color::BLACK)
+ .with_background_color(Color::srgb(0., 0., 0.))
.with_name("Forest Fire Model")
.setup::(ForestVis, state);
app.add_systems(FixedUpdate, DenseGrid2D::::render);
diff --git a/forestfire/src/model/forest.rs b/forestfire/src/model/forest.rs
index 99b573a..80154e3 100644
--- a/forestfire/src/model/forest.rs
+++ b/forestfire/src/model/forest.rs
@@ -1,5 +1,9 @@
use crate::model::spread::Spread;
use core::fmt;
+#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
+use krabmaga::bevy::ecs as bevy_ecs;
+#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
+use krabmaga::bevy::prelude::Component;
use krabmaga::engine::fields::dense_object_grid_2d::DenseGrid2D;
use krabmaga::engine::fields::field::Field;
use krabmaga::engine::location::Int2D;
@@ -29,6 +33,10 @@ impl fmt::Display for Status {
}
#[derive(Copy, Clone)]
+#[cfg_attr(
+ any(feature = "visualization", feature = "visualization_wasm"),
+ derive(Component)
+)]
pub struct Tree {
pub id: i32,
pub status: Status,
diff --git a/forestfire/src/visualization/custom_systems.rs b/forestfire/src/visualization/custom_systems.rs
index 049c9ed..7657abc 100644
--- a/forestfire/src/visualization/custom_systems.rs
+++ b/forestfire/src/visualization/custom_systems.rs
@@ -1,15 +1,9 @@
use crate::model::forest::*;
-use krabmaga::bevy::ecs::component::TableStorage;
-use krabmaga::bevy::prelude::Component;
use krabmaga::engine::fields::dense_object_grid_2d::DenseGrid2D;
use krabmaga::engine::fields::sparse_object_grid_2d::SparseGrid2D;
use krabmaga::engine::location::Int2D;
use krabmaga::visualization::fields::object_grid_2d::RenderObjectGrid2D;
-impl Component for Tree {
- type Storage = TableStorage;
-}
-
impl RenderObjectGrid2D for DenseGrid2D {
fn fetch_sparse_grid(_state: &Forest) -> Option<&SparseGrid2D> {
None
diff --git a/forestfire/src/visualization/forest_vis.rs b/forestfire/src/visualization/forest_vis.rs
index 059aab8..375bc90 100644
--- a/forestfire/src/visualization/forest_vis.rs
+++ b/forestfire/src/visualization/forest_vis.rs
@@ -1,8 +1,8 @@
use crate::model::forest::Forest;
use crate::Tree;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::Resource;
use krabmaga::engine::agent::Agent;
use krabmaga::engine::fields::dense_object_grid_2d::DenseGrid2D;
use krabmaga::engine::fields::field::Field;
@@ -49,7 +49,7 @@ impl VisualizationState for ForestVis {
fn get_agent(
&self,
- _agent_render: &Box,
+ _agent_render: &dyn AgentRender,
_state: &Box<&dyn State>,
) -> Option> {
None
diff --git a/forestfire_bayesian/Cargo.toml b/forestfire_bayesian/Cargo.toml
index e5665e5..7702122 100644
--- a/forestfire_bayesian/Cargo.toml
+++ b/forestfire_bayesian/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "forestfire_bayesian"
-version = "0.2.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
bayesian = ["krabmaga/bayesian"]
diff --git a/forestfire_bayesian/src/visualization/custom_systems.rs b/forestfire_bayesian/src/visualization/custom_systems.rs
index 8318001..8cb2df1 100644
--- a/forestfire_bayesian/src/visualization/custom_systems.rs
+++ b/forestfire_bayesian/src/visualization/custom_systems.rs
@@ -1,13 +1,9 @@
-use krabmaga::bevy::ecs::component::TableStorage;
-use krabmaga::bevy::prelude::Component;
use crate::model::forest::*;
use krabmaga::engine::fields::dense_object_grid_2d::DenseGrid2D;
use krabmaga::engine::fields::sparse_object_grid_2d::SparseGrid2D;
use krabmaga::engine::location::Int2D;
use krabmaga::visualization::fields::object_grid_2d::RenderObjectGrid2D;
-impl Component for Tree { type Storage = TableStorage; }
-
impl RenderObjectGrid2D for DenseGrid2D {
fn fetch_sparse_grid(_state: &Forest) -> Option<&SparseGrid2D> {
None
diff --git a/forestfire_bayesian/src/visualization/forest_vis.rs b/forestfire_bayesian/src/visualization/forest_vis.rs
index 7edddbb..375bc90 100644
--- a/forestfire_bayesian/src/visualization/forest_vis.rs
+++ b/forestfire_bayesian/src/visualization/forest_vis.rs
@@ -1,6 +1,8 @@
use crate::model::forest::Forest;
use crate::Tree;
+use krabmaga::bevy::ecs as bevy_ecs;
use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::Resource;
use krabmaga::engine::agent::Agent;
use krabmaga::engine::fields::dense_object_grid_2d::DenseGrid2D;
use krabmaga::engine::fields::field::Field;
@@ -12,7 +14,7 @@ use krabmaga::visualization::fields::object_grid_2d::RenderObjectGrid2D;
use krabmaga::visualization::simulation_descriptor::SimulationDescriptor;
use krabmaga::visualization::visualization_state::VisualizationState;
-#[derive(Clone)]
+#[derive(Clone, Resource)]
pub struct ForestVis;
impl VisualizationState for ForestVis {
@@ -47,7 +49,7 @@ impl VisualizationState for ForestVis {
fn get_agent(
&self,
- _agent_render: &Box,
+ _agent_render: &dyn AgentRender,
_state: &Box<&dyn State>,
) -> Option> {
None
diff --git a/schelling/Cargo.toml b/schelling/Cargo.toml
index 03e4812..6997a8f 100644
--- a/schelling/Cargo.toml
+++ b/schelling/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "schelling"
-version = "0.3.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
visualization = ["krabmaga/visualization"]
diff --git a/schelling/src/main.rs b/schelling/src/main.rs
index 902059c..5d2018e 100644
--- a/schelling/src/main.rs
+++ b/schelling/src/main.rs
@@ -49,7 +49,7 @@ fn main() {
let mut app = Visualization::default()
.with_simulation_dimensions(dim.0 as f32, dim.1 as f32)
.with_window_dimensions(1000., 720.)
- .with_background_color(Color::WHITE)
+ .with_background_color(Color::srgb(1., 1., 1.))
.with_name("Schelling Model")
.setup::(WorldVis, world);
app.add_systems(FixedUpdate, SparseGrid2D::::render);
diff --git a/schelling/src/model/world.rs b/schelling/src/model/world.rs
index 18b76e8..8f1cfaa 100644
--- a/schelling/src/model/world.rs
+++ b/schelling/src/model/world.rs
@@ -1,5 +1,9 @@
use crate::model::updater::Updater;
use core::fmt;
+#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
+use krabmaga::bevy::ecs as bevy_ecs;
+#[cfg(any(feature = "visualization", feature = "visualization_wasm"))]
+use krabmaga::bevy::prelude::Component;
use krabmaga::engine::fields::field::Field;
use krabmaga::engine::fields::sparse_object_grid_2d::SparseGrid2D;
use krabmaga::engine::location::Int2D;
@@ -29,6 +33,10 @@ impl fmt::Display for Status {
}
#[derive(Copy, Clone)]
+#[cfg_attr(
+ any(feature = "visualization", feature = "visualization_wasm"),
+ derive(Component)
+)]
pub struct Patch {
pub id: u32,
pub value: Status,
diff --git a/schelling/src/visualization/custom_systems.rs b/schelling/src/visualization/custom_systems.rs
index 37c6ff9..f91da47 100644
--- a/schelling/src/visualization/custom_systems.rs
+++ b/schelling/src/visualization/custom_systems.rs
@@ -1,15 +1,9 @@
use crate::model::world::*;
-use krabmaga::bevy::ecs::component::TableStorage;
-use krabmaga::bevy::prelude::Component;
use krabmaga::engine::fields::dense_object_grid_2d::DenseGrid2D;
use krabmaga::engine::fields::sparse_object_grid_2d::SparseGrid2D;
use krabmaga::engine::location::Int2D;
use krabmaga::visualization::fields::object_grid_2d::RenderObjectGrid2D;
-impl Component for Patch {
- type Storage = TableStorage;
-}
-
impl RenderObjectGrid2D for SparseGrid2D {
fn fetch_sparse_grid(state: &World) -> Option<&SparseGrid2D> {
Some(&state.field)
diff --git a/schelling/src/visualization/world_vis.rs b/schelling/src/visualization/world_vis.rs
index 003a0e1..b2df7ff 100644
--- a/schelling/src/visualization/world_vis.rs
+++ b/schelling/src/visualization/world_vis.rs
@@ -1,8 +1,8 @@
use crate::model::world::World;
use crate::Patch;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::Resource;
use krabmaga::engine::agent::Agent;
use krabmaga::engine::fields::field::Field;
use krabmaga::engine::fields::sparse_object_grid_2d::SparseGrid2D;
@@ -49,7 +49,7 @@ impl VisualizationState for WorldVis {
fn get_agent(
&self,
- _agent_render: &Box,
+ _agent_render: &dyn AgentRender,
_state: &Box<&dyn State>,
) -> Option> {
None
diff --git a/sir_ga_exploration/Cargo.toml b/sir_ga_exploration/Cargo.toml
index 51e8a05..1b6053e 100644
--- a/sir_ga_exploration/Cargo.toml
+++ b/sir_ga_exploration/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "sir_ga_exploration"
-version = "0.2.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
distributed_mpi = ["krabmaga/distributed_mpi"]
diff --git a/sugarscape/Cargo.toml b/sugarscape/Cargo.toml
index 1aa8f0e..c464528 100644
--- a/sugarscape/Cargo.toml
+++ b/sugarscape/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "sugarscape"
-version = "0.3.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
visualization = ["krabmaga/visualization"]
diff --git a/sugarscape/src/main.rs b/sugarscape/src/main.rs
index b52c40e..6c12f77 100644
--- a/sugarscape/src/main.rs
+++ b/sugarscape/src/main.rs
@@ -38,9 +38,9 @@ fn main() {
let mut app = Visualization::default()
.with_window_dimensions(1000.0, 600.0)
.with_simulation_dimensions(dim.0 as f32, dim.1 as f32)
- .with_background_color(Color::WHITE)
+ .with_background_color(Color::srgb(1., 1., 1.))
.with_name("Sugarscape")
.setup::(EnvironmentVis, state);
app.add_systems(FixedUpdate, DenseNumberGrid2D::batch_render);
- app.run()
+ app.run();
}
diff --git a/sugarscape/src/visualization/environment_vis.rs b/sugarscape/src/visualization/environment_vis.rs
index a3042b7..0011af0 100644
--- a/sugarscape/src/visualization/environment_vis.rs
+++ b/sugarscape/src/visualization/environment_vis.rs
@@ -2,8 +2,8 @@ use crate::model::eater::Eater;
use crate::model::state::Environment;
use crate::visualization::eater_vis::EaterVis;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::Resource;
use krabmaga::engine::agent::Agent;
use krabmaga::engine::location::Int2D;
use krabmaga::engine::schedule::Schedule;
@@ -44,7 +44,7 @@ impl VisualizationState for EnvironmentVis {
fn get_agent(
&self,
- agent_render: &Box,
+ agent_render: &dyn AgentRender,
state: &Box<&dyn State>,
) -> Option> {
let mut rng = krabmaga::rand::rng();
diff --git a/template/Cargo.toml b/template/Cargo.toml
index 432e6c9..eb6278a 100644
--- a/template/Cargo.toml
+++ b/template/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "template"
-version = "0.3.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
visualization = ["krabmaga/visualization"]
diff --git a/template/src/main.rs b/template/src/main.rs
index 192fc20..9ebd34e 100644
--- a/template/src/main.rs
+++ b/template/src/main.rs
@@ -44,7 +44,7 @@ fn main() {
Visualization::default()
.with_window_dimensions(800., 800.)
.with_simulation_dimensions(dim.0, dim.1)
- .with_background_color(Color::BLUE)
+ .with_background_color(Color::srgb(0., 0., 1.))
.with_name("Template")
.start::(SeaVis, state);
}
diff --git a/template/src/visualization/sea_vis.rs b/template/src/visualization/sea_vis.rs
index 2fe78ad..77b404c 100644
--- a/template/src/visualization/sea_vis.rs
+++ b/template/src/visualization/sea_vis.rs
@@ -2,8 +2,8 @@ use crate::model::crab::Crab;
use crate::model::sea::Sea;
use crate::visualization::crab_vis::CrabVis;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::Resource;
use krabmaga::engine::agent::Agent;
use krabmaga::engine::location::Real2D;
use krabmaga::engine::schedule::Schedule;
@@ -41,7 +41,7 @@ impl VisualizationState for SeaVis {
fn get_agent(
&self,
- agent_render: &Box,
+ agent_render: &dyn AgentRender,
state: &Box<&dyn State>,
) -> Option> {
let state = state.as_any().downcast_ref::().unwrap();
diff --git a/virusnetwork/Cargo.toml b/virusnetwork/Cargo.toml
index de6ca3a..ba2e164 100644
--- a/virusnetwork/Cargo.toml
+++ b/virusnetwork/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "virusnetwork"
-version = "0.3.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,8 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
+
[features]
visualization = ["krabmaga/visualization"]
diff --git a/virusnetwork/src/main.rs b/virusnetwork/src/main.rs
index c72734d..1aaa18e 100644
--- a/virusnetwork/src/main.rs
+++ b/virusnetwork/src/main.rs
@@ -47,7 +47,7 @@ fn main() {
let mut app = Visualization::default()
.with_window_dimensions(1000., 700.)
.with_simulation_dimensions(dim.0, dim.1)
- .with_background_color(Color::rgb(255., 255., 255.))
+ .with_background_color(Color::srgb(1., 1., 1.))
.setup::(VisState, epidemic_network);
app.add_systems(FixedUpdate, EpidemicNetworkState::render);
app.run();
diff --git a/virusnetwork/src/visualization/vis_network.rs b/virusnetwork/src/visualization/vis_network.rs
index d12ea22..e29cb7b 100644
--- a/virusnetwork/src/visualization/vis_network.rs
+++ b/virusnetwork/src/visualization/vis_network.rs
@@ -12,7 +12,7 @@ impl NetworkRender for EpidemicNetworkSta
fn get_edge_info(edge: &Edge, network: &Network) -> EdgeRenderInfo {
EdgeRenderInfo {
- line_color: Color::BLACK,
+ line_color: Color::srgb(0., 0., 0.),
line_width: 1.,
source_loc: network.get_object(edge.u).unwrap().loc,
target_loc: network.get_object(edge.v).unwrap().loc,
diff --git a/virusnetwork/src/visualization/vis_state.rs b/virusnetwork/src/visualization/vis_state.rs
index 5e07d76..1e812b9 100644
--- a/virusnetwork/src/visualization/vis_state.rs
+++ b/virusnetwork/src/visualization/vis_state.rs
@@ -1,8 +1,7 @@
use crate::model::{node::*, state::EpidemicNetworkState};
use crate::visualization::node::NetNodeVis;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
-use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::{Commands, Resource};
use krabmaga::engine::agent::Agent;
use krabmaga::engine::schedule::*;
use krabmaga::engine::state::State;
@@ -39,7 +38,7 @@ impl VisualizationState for VisState {
fn get_agent(
&self,
- agent_render: &Box,
+ agent_render: &dyn AgentRender,
state: &Box<&dyn State>,
) -> Option> {
let state = state
diff --git a/wolfsheepgrass/Cargo.toml b/wolfsheepgrass/Cargo.toml
index a004f48..6fb6c20 100644
--- a/wolfsheepgrass/Cargo.toml
+++ b/wolfsheepgrass/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "wolfsheepgrass"
-version = "0.3.0"
+version = "0.6.0"
authors = [
"Carmine Spagnuolo ",
"Alessia Antelmi ",
@@ -18,7 +18,7 @@ readme = "README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-krabmaga = "0.5.*"
+krabmaga = "0.6.*"
[features]
visualization = ["krabmaga/visualization"]
diff --git a/wolfsheepgrass/src/main.rs b/wolfsheepgrass/src/main.rs
index 521c651..6910203 100644
--- a/wolfsheepgrass/src/main.rs
+++ b/wolfsheepgrass/src/main.rs
@@ -49,10 +49,10 @@ fn main() {
let state = WsgState::new(dim, initial_animals);
let mut app = Visualization::default()
- .with_background_color(Color::rgb(255., 255., 255.))
+ .with_background_color(Color::srgb(1., 1., 1.))
.with_simulation_dimensions(dim.0 as f32, dim.1 as f32)
.with_window_dimensions(1000., 700.)
.setup::(VisState, state);
app.add_systems(FixedUpdate, DenseNumberGrid2D::batch_render);
- app.run()
+ app.run();
}
diff --git a/wolfsheepgrass/src/visualization/vis_state.rs b/wolfsheepgrass/src/visualization/vis_state.rs
index d962f2b..7f73269 100644
--- a/wolfsheepgrass/src/visualization/vis_state.rs
+++ b/wolfsheepgrass/src/visualization/vis_state.rs
@@ -4,8 +4,8 @@ use crate::model::wolf::Wolf;
use crate::visualization::sheep_vis::SheepVis;
use crate::visualization::wolf_vis::WolfVis;
use krabmaga::bevy::ecs as bevy_ecs;
-use krabmaga::bevy::ecs::system::Resource;
use krabmaga::bevy::prelude::Commands;
+use krabmaga::bevy::prelude::Resource;
use krabmaga::engine::agent::Agent;
use krabmaga::engine::location::Int2D;
use krabmaga::engine::schedule::Schedule;
@@ -46,7 +46,7 @@ impl VisualizationState for VisState {
fn get_agent(
&self,
- agent_render: &Box,
+ agent_render: &dyn AgentRender,
state: &Box<&dyn State>,
) -> Option> {
let state = state.as_any().downcast_ref::().unwrap();