generated from 2ndbeam/bevy-template
feat: Updated tilemap bundle
- Layout is now defined from bottom left corner - Added rotation to lockpick bundle - Added level TOML structures that match current level
This commit is contained in:
parent
0e18bb6df5
commit
24153e476f
7 changed files with 225 additions and 72 deletions
|
|
@ -78,80 +78,66 @@ pub fn setup_world(
|
|||
mut commands: Commands,
|
||||
asset_server: Res<AssetServer>,
|
||||
) {
|
||||
// floor 1F
|
||||
let mut tiles = (0..16).map(|x| {
|
||||
(0, uvec2(x, 1))
|
||||
}).collect::<Vec<(u16, UVec2)>>();
|
||||
|
||||
// floor/ceil 1-2F
|
||||
tiles.extend((0..16).map(|x| {
|
||||
(0, uvec2(x, 5))
|
||||
}));
|
||||
|
||||
// ceil 2F
|
||||
tiles.extend((0..16).map(|x| {
|
||||
(0, uvec2(x, 9))
|
||||
}));
|
||||
let tiles = [
|
||||
( 0, ( 0, 0, 16, 1 )), // 1F floor
|
||||
( 0, ( 0, 4, 16, 1 )), // 1F ceiling / 2F floor
|
||||
( 0, ( 0, 8, 16, 1 )), // 2F ceiling
|
||||
|
||||
( 1, ( 0, 1, 1, 3 )), // 1F left wall
|
||||
( 1, ( 0, 5, 1, 3 )), // 2F left wall
|
||||
( 1, ( 15, 1, 1, 3 )), // 1F right wall
|
||||
( 1, ( 15, 5, 1, 3 )), // 2F right wall
|
||||
|
||||
( 2, ( 4, 3, 1, 1 )), // 1F left door connector
|
||||
( 2, ( 4, 7, 1, 1 )), // 2F left door connector
|
||||
( 2, ( 11, 3, 1, 1 )), // 1F right door connector
|
||||
( 2, ( 11, 7, 1, 1 )), // 2F right door connector
|
||||
].into_iter().map(|(id, (x, y, w, h))| {
|
||||
(id, URect::from_corners(uvec2(x, y), uvec2(x + w - 1, y + h - 1)))
|
||||
}).collect::<Vec<(u16, URect)>>();
|
||||
|
||||
// walls
|
||||
tiles.extend([
|
||||
(0, 4), (0, 3), (0, 2),
|
||||
(0, 8), (0, 7), (0, 6),
|
||||
(15, 4), (15, 3), (15, 2),
|
||||
(15, 8), (15, 7), (15, 6),
|
||||
].iter().map(|(x, y)| {
|
||||
(1, uvec2(*x, *y))
|
||||
}));
|
||||
|
||||
// wall connectors
|
||||
tiles.extend([
|
||||
(4, 8), (4, 4), (11, 8), (11, 4),
|
||||
].iter().map(|(x, y)| {
|
||||
(2, uvec2(*x, *y))
|
||||
}));
|
||||
|
||||
commands.spawn(tilemap::tilemap_bundle(&asset_server, uvec2(16, 10), tiles));
|
||||
commands.spawn(tilemap::tilemap_bundle(&asset_server, tiles));
|
||||
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(-3.5), 0.), false));
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(-3.5), meters(4.)), false))
|
||||
commands.spawn(player_bundle(&asset_server, vec2(meters(1.5), meters(1.))));
|
||||
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(4.5), meters(1.)), false));
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(4.5), meters(5.)), false))
|
||||
.with_child(lock::padlock_bundle(&asset_server, false));
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(3.5), 0.), true))
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(11.5), meters(1.)), true))
|
||||
.with_child(lock::padlock_bundle(&asset_server, true));
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(3.5), meters(4.)), true));
|
||||
commands.spawn(door::door_bundle(&asset_server, vec2(meters(11.5), meters(5.)), true));
|
||||
|
||||
commands.spawn(stairs::stairs_bundle(
|
||||
&asset_server,
|
||||
vec2(meters(0.), 0.),
|
||||
vec2(meters(8.), meters(1.)),
|
||||
Some(vec2(meters(2.), meters(4.))),
|
||||
None,
|
||||
));
|
||||
commands.spawn(stairs::stairs_bundle(
|
||||
&asset_server,
|
||||
vec2(meters(0.), meters(4.)),
|
||||
vec2(meters(8.), meters(5.)),
|
||||
None,
|
||||
Some(vec2(meters(-2.), meters(-4.))),
|
||||
));
|
||||
|
||||
commands.spawn(container::container_bundle(
|
||||
&asset_server,
|
||||
vec2(meters(-6.), 0.),
|
||||
vec2(meters(2.), meters(1.)),
|
||||
uvec2(1, 1),
|
||||
));
|
||||
commands.spawn(container::container_bundle(
|
||||
&asset_server,
|
||||
vec2(meters(-6.), meters(4.)),
|
||||
uvec2(1, 1),
|
||||
)).with_child(lockpick_bundle(&asset_server, UVec2::ZERO));
|
||||
commands.spawn(container::container_bundle(
|
||||
&asset_server,
|
||||
vec2(meters(6.), 0.),
|
||||
vec2(meters(14.), meters(1.)),
|
||||
uvec2(1, 1),
|
||||
));
|
||||
commands.spawn(container::container_bundle(
|
||||
&asset_server,
|
||||
vec2(meters(6.), meters(4.)),
|
||||
uvec2(1, 1),
|
||||
)).with_child(lockpick_bundle(&asset_server, UVec2::ZERO));
|
||||
|
||||
commands.spawn(player_bundle(&asset_server, vec2(meters(-6.), meters(4.))));
|
||||
vec2(meters(2.), meters(5.)),
|
||||
uvec2(4, 4),
|
||||
)).with_child(lockpick_bundle(&asset_server, uvec2(2, 2), false));
|
||||
commands.spawn(container::container_bundle(
|
||||
&asset_server,
|
||||
vec2(meters(14.), meters(5.)),
|
||||
uvec2(2, 2),
|
||||
)).with_child(lockpick_bundle(&asset_server, UVec2::ZERO, true));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue