summaryrefslogtreecommitdiff
path: root/src/sim/entity/entities/entity_cube.rs
blob: 2c79aa5f86c98799f1b5d9a33f93ce105d2df94c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use glam::{IVec2, Vec2};

use crate::sim::{
    cell::{cell::Cell, materials::MaterialId},
    entity::{EntityCells, EntityDef},
};

pub fn entity_cube_def(position: Vec2, material: MaterialId) -> EntityDef {
    let w = 10;
    let h = 10;
    let mut raw_cells = vec![Cell::void(); (w * h) as usize];

    for x in 0..w {
        for y in 0..h {
            let cell_idx = x + y * w;
            raw_cells[cell_idx as usize] = Cell::from_material(material);
            raw_cells[cell_idx as usize].set_entity(true);
        }
    }

    let entity_cells = EntityCells {
        cells: raw_cells,
        size: IVec2::new(w, h),
    };

    EntityDef::from_cells(position, entity_cells, None)
}