chunk logic

This commit is contained in:
2026-09-18 17:40:36 +02:00
parent fe88997cd1
commit 0e5c2407ed
+11 -16
View File
@@ -1,39 +1,34 @@
use bevy::prelude::*; use bevy::prelude::*;
use crate::world::Chunk;
// Test checkboard background // Test checkboard background
const COLS: usize = 35;
const ROWS: usize = 500;
const CELL_SIZE: f32 = 60.0;
const COLOR_A: Color = Color::srgb(0.0, 0.0, 0.0); const COLOR_A: Color = Color::srgb(0.0, 0.0, 0.0);
const COLOR_B: Color = Color::srgb(0.6, 0.2, 0.8); const COLOR_B: Color = Color::srgb(0.6, 0.2, 0.8);
const ROWS_PER_CHUNK: i64 = 2;
const CELL_SIZE: f32 = crate::world::CHUNK_HEIGHT / ROWS_PER_CHUNK as f32;
const BOARD_WIDTH: f32 = 1920.0;
const COLS: i64 = (BOARD_WIDTH / CELL_SIZE).ceil() as i64;
fn spawn_board(mut commands: Commands) { pub fn spawn_background_chunk(commands: &mut Commands, id: i64) {
for row in 0..ROWS { for row in (id * ROWS_PER_CHUNK)..(id * ROWS_PER_CHUNK + ROWS_PER_CHUNK) {
for col in 0..COLS { for col in 0..COLS {
// Altern colors let color = if (row + col as i64) % 2 == 0 {
let color = if (row + col) % 2 == 0 {
COLOR_A COLOR_A
} else { } else {
COLOR_B COLOR_B
}; };
commands.spawn(( commands.spawn((
Chunk { id },
Sprite::from_color(color, Vec2::new(CELL_SIZE, CELL_SIZE)), Sprite::from_color(color, Vec2::new(CELL_SIZE, CELL_SIZE)),
Transform::from_xyz( Transform::from_xyz(
(col as f32 + 0.5 - COLS as f32 / 2.0) * CELL_SIZE, (col as f32 + 0.5 - COLS as f32 / 2.0) * CELL_SIZE,
(row as f32 + 0.5 - ROWS as f32 / 2.0) * CELL_SIZE, (row as f32 + 0.5) * CELL_SIZE,
0.0, 0.0,
), ),
)); ));
} }
} }
} }
pub struct BackgroundPlugin;
impl Plugin for BackgroundPlugin {
fn build(&self, app: &mut App) {
app.add_systems(Startup, spawn_board);
}
}