summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Barrett <tom@tombarrett.xyz>2024-01-13 20:19:11 +0100
committerTom Barrett <tom@tombarrett.xyz>2024-01-13 20:19:11 +0100
commit15fe765d380abc70ed371a2af2806dbb2fa95199 (patch)
tree007f30f0a69a1af072e2811e54f4e4ce661452eb /src
parenta0207d6b7a53fd942f9010287d27336692893da4 (diff)
didnt build
Diffstat (limited to 'src')
-rw-r--r--src/cell.rs34
-rw-r--r--src/main.rs29
2 files changed, 30 insertions, 33 deletions
diff --git a/src/cell.rs b/src/cell.rs
index 0d9b381..53e9860 100644
--- a/src/cell.rs
+++ b/src/cell.rs
@@ -107,22 +107,16 @@ impl Cell {
}
}
- pub fn set_occupant(
- &mut self,
- occupant: Occupant,
- sprite: &mut TextureAtlasSprite,
- visibility: &mut Visibility,
- ) {
+ pub fn set_occupant(&mut self, occupant: Occupant, sprite: &mut TextureAtlasSprite) {
self.occupant = occupant;
sprite.index = self.occupant.to_index();
- *visibility = Visibility::Inherited;
}
}
-pub fn insert(mut q: Query<(&mut Cell, &mut TextureAtlasSprite, &mut Visibility)>) {
- for (mut cell, mut sprite, mut visibility) in q.iter_mut() {
+pub fn insert(mut q: Query<(&mut Cell, &mut TextureAtlasSprite)>) {
+ for (mut cell, mut sprite) in q.iter_mut() {
if cell.occupant == Occupant::None && cell.y == constants::GRID_SIZE - 1 {
- cell.set_occupant(rand::random(), &mut sprite, &mut visibility);
+ cell.set_occupant(rand::random(), &mut sprite);
}
}
}
@@ -140,9 +134,9 @@ pub fn start_explosion(
}
}
-pub fn check(mut q: Query<(&mut Cell, &mut TextureAtlasSprite, &mut Visibility)>) {
+pub fn check(mut q: Query<(&mut Cell, &mut TextureAtlasSprite)>) {
let mut cells = [[Cell::default(); constants::GRID_SIZE]; constants::GRID_SIZE];
- for (cell, _, _) in q.iter_mut() {
+ for (cell, _) in q.iter_mut() {
cells[cell.x][cell.y] = *cell;
}
@@ -187,39 +181,39 @@ pub fn check(mut q: Query<(&mut Cell, &mut TextureAtlasSprite, &mut Visibility)>
for c in connected.iter() {
for (i, j) in c.iter() {
- for (mut cell, mut sprite, mut visibility) in q.iter_mut() {
+ for (mut cell, mut sprite) in q.iter_mut() {
if &cell.x == i && &cell.y == j && cell.occupant != Occupant::Explosion {
- cell.set_occupant(Occupant::Explosion, &mut sprite, &mut visibility);
+ cell.set_occupant(Occupant::Explosion, &mut sprite);
}
}
}
}
}
-pub fn falling(mut q: Query<(&mut Cell, &mut TextureAtlasSprite, &mut Visibility)>) {
+pub fn falling(mut q: Query<(&mut Cell, &mut TextureAtlasSprite)>) {
let mut have_gems = Vec::new();
- for (cell, _sprite, _visibility) in q.iter_mut() {
+ for (cell, _sprite) in q.iter_mut() {
if cell.occupant != Occupant::None {
have_gems.push(*cell);
}
}
let mut moved_gems = Vec::new();
- for (mut cell, mut sprite, mut visibility) in q.iter_mut() {
+ for (mut cell, mut sprite) in q.iter_mut() {
if cell.occupant == Occupant::None {
if let Some(c) = have_gems
.iter()
.find(|&c| (c.x, c.y) == (cell.x, cell.y + 1))
{
- cell.set_occupant(c.occupant, &mut sprite, &mut visibility);
+ cell.set_occupant(c.occupant, &mut sprite);
moved_gems.push(c);
}
}
}
- for (mut cell, mut sprite, mut visibility) in q.iter_mut() {
+ for (mut cell, mut sprite) in q.iter_mut() {
if moved_gems.iter().any(|c| (c.x, c.y) == (cell.x, cell.y)) {
- cell.set_occupant(Occupant::None, &mut sprite, &mut visibility);
+ cell.set_occupant(Occupant::None, &mut sprite);
}
}
}
diff --git a/src/main.rs b/src/main.rs
index 627fec0..b06e30c 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -110,7 +110,6 @@ pub fn setup(
commands
.spawn(SpriteSheetBundle {
texture_atlas: atlas_handle.clone(),
- visibility: Visibility::Inherited,
transform: Transform {
translation: Vec3::new(
((i as f32) * constants::TILE_SIZE * constants::TILE_SCALE) - 330.0,
@@ -135,10 +134,9 @@ fn animation(
Option<&mut Cell>,
&mut AnimationTimer,
&mut TextureAtlasSprite,
- &mut Visibility,
)>,
) {
- for (entity, cell, mut timer, mut sprite, mut visibility) in q.iter_mut() {
+ for (entity, cell, mut timer, mut sprite) in q.iter_mut() {
timer.tick(time.delta());
if timer.finished() {
let index = match sprite.index {
@@ -160,7 +158,7 @@ fn animation(
if let Some(index) = index {
sprite.index = index;
} else if let Some(mut cell) = cell {
- cell.set_occupant(Occupant::None, &mut sprite, &mut visibility);
+ cell.set_occupant(Occupant::None, &mut sprite);
commands.entity(entity).remove::<AnimationTimer>();
} else {
commands.entity(entity).despawn();
@@ -282,7 +280,10 @@ pub fn main() {
.set(WindowPlugin {
primary_window: Some(Window {
title: "gems".to_string(),
- resolution: WindowResolution::new(constants::WINDOW_WIDTH,constants::WINDOW_HEIGHT),
+ resolution: WindowResolution::new(
+ constants::WINDOW_WIDTH,
+ constants::WINDOW_HEIGHT,
+ ),
resizable: false,
..default()
}),
@@ -290,13 +291,15 @@ pub fn main() {
}),
)
.add_startup_system(setup)
- .add_system(cell::insert)
- .add_system(cell::falling)
- .add_system(cell::check)
- .add_system(cell::start_explosion)
- .add_system(mouse)
- .add_system(cosmonaut_detect)
- .add_system(animation)
- .add_system(star_spawning)
+ .add_systems((
+ cell::insert,
+ cell::falling,
+ cell::check,
+ cell::start_explosion,
+ mouse,
+ cosmonaut_detect,
+ animation,
+ star_spawning,
+ ))
.run();
}