feat: Layout changes

- Added padlock layout object
- Added lockpick item
- Added ItemImage component
- Tilemap colliders are now creating from the tiles themselves
- Removed items from container bundle
- Removed colliders from tilemap bundle
- Removed setup_player system
This commit is contained in:
Alexey 2026-03-25 13:32:12 +03:00
commit 42cfd14214
10 changed files with 175 additions and 57 deletions

View file

@ -25,7 +25,6 @@ pub fn tilemap_bundle(
asset_server: &Res<AssetServer>,
size: UVec2,
tiles: Vec<(u16, UVec2)>,
colliders: Vec<(Collider, Vec2)>,
) -> impl Bundle {
let tile_data: Vec<Option<TileData>> = (0..size.element_product()).map(|xy| {
if let Some((id, _)) = tiles.iter().find(|(_, pos)| pos.x == xy % size.x && pos.y == xy / size.x) {
@ -47,15 +46,25 @@ pub fn tilemap_bundle(
},
Transform::from_xyz(0., meters(0.5) * size.y as f32 - meters(3.), 0.),
TilemapChunkTileData(tile_data),
Children::spawn(SpawnIter(colliders.into_iter()
.map(move |(collider, pos)| {(
collider.clone(),
Children::spawn(SpawnIter(tiles.into_iter().map(move |(_, pos)| {(
// TODO: optimize colliders
Collider::cuboid(meters(0.5), meters(0.5)),
Transform::from_xyz(
pos.x - meters(0.5) * size.x as f32,
pos.y,
0.
meters(0.5 + pos.x as f32 - (size.x as f32 * 0.5)),
meters(0.5 + pos.y as f32 - (size.y as f32 * 0.5)),
0.,
),
)})
)),
//Children::spawn(SpawnIter(colliders.into_iter()
// .map(move |(collider, pos)| {(
// collider.clone(),
// Transform::from_xyz(
// pos.x - meters(0.5) * size.x as f32,
// pos.y - meters(0.5) * size.y as f32,
// 0.
// ),
// )})
//)),
)
}