Skip to content

Commit 433bdcd

Browse files
Generate plugin boilerplate
1 parent 050fea0 commit 433bdcd

File tree

7 files changed

+65
-0
lines changed

7 files changed

+65
-0
lines changed

src/client/main.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ mod player;
1010
mod remote_player;
1111
mod scene;
1212
mod terrain;
13+
mod sand;
1314

1415
use scene::setup_scene;
1516

@@ -41,6 +42,7 @@ fn main() {
4142
player::PlayerPlugin,
4243
remote_player::RemotePlayerPlugin,
4344
chat::ChatPlugin,
45+
sand::SandPlugin,
4446
))
4547
.add_systems(Startup, setup_scene)
4648
.run();

src/client/prelude.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,8 @@ pub use crate::chat::components as chat_components;
8080
pub use crate::chat::events as chat_events;
8181
pub use crate::chat::resources as chat_resources;
8282
pub use crate::chat::systems as chat_systems;
83+
84+
pub use crate::sand::components as sand_components;
85+
pub use crate::sand::events as sand_events;
86+
pub use crate::sand::resources as sand_resources;
87+
pub use crate::sand::systems as sand_systems;

src/client/sand/components.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
use crate::prelude::*;
2+
3+
#[derive(Component, Default, Debug, Clone)]
4+
pub struct ExampleComponent {
5+
pub value: i32,
6+
pub name: String,
7+
pub active: bool,
8+
}

src/client/sand/events.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
use crate::prelude::*;
2+
3+
#[derive(Event, Debug, Clone)]
4+
pub struct ExampleEvent {
5+
pub message: String,
6+
pub timestamp: f32,
7+
}

src/client/sand/mod.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
use crate::prelude::*;
2+
3+
pub mod components;
4+
pub mod events;
5+
pub mod resources;
6+
pub mod systems;
7+
8+
pub struct SandPlugin;
9+
10+
impl Plugin for SandPlugin {
11+
fn build(&self, app: &mut App) {
12+
info!("Building SandPlugin");
13+
14+
app.add_event::<events::ExampleEvent>();
15+
app.add_systems(Update, systems::example_system);
16+
app.insert_resource(resources::ExampleResource::default());
17+
}
18+
}

src/client/sand/resources.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
use crate::prelude::*;
2+
3+
#[derive(Resource, Default, Debug)]
4+
pub struct ExampleResource {
5+
pub counter: usize,
6+
pub last_update: f64,
7+
}

src/client/sand/systems.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
use crate::prelude::*;
2+
3+
pub fn example_system(
4+
mut _commands: Commands,
5+
time: Res<Time>,
6+
mut _example_resource: ResMut<sand_resources::ExampleResource>,
7+
mut example_writer: EventWriter<sand_events::ExampleEvent>,
8+
query: Query<(Entity, &sand_components::ExampleComponent)>,
9+
) {
10+
for (entity, component) in query.iter() {
11+
if component.active {
12+
example_writer.send(sand_events::ExampleEvent {
13+
message: format!("Entity {} is active", entity.index()),
14+
timestamp: time.elapsed_seconds(),
15+
});
16+
}
17+
}
18+
}

0 commit comments

Comments
 (0)