Try to render characters

This commit is contained in:
Dane Johnson 2023-10-16 13:51:24 -05:00
parent 8677e05fe1
commit 783021d5f3
3 changed files with 44 additions and 22 deletions

View File

@ -6,17 +6,13 @@ use crate::util::*;
pub fn spawn_player_character(mut commands: Commands) {
let (hp, _) = roll("1d6 + 3");
commands.spawn(Creature {
health: Health {
hp,
max: hp,
},
armor: Armor {
ac: 10,
},
position: Position {
x: 0.0,
y: 0.0,
},
})
.insert(PlayerCharacter);
health: Health {
hp,
max: hp,
},
armor: Armor {
ac: 10,
},
spatial: Default::default(),
}).insert(PlayerCharacter);
}

View File

@ -12,17 +12,11 @@ pub struct Armor {
pub ac: u32,
}
#[derive(Component)]
pub struct Position {
pub x: f32,
pub y: f32,
}
#[derive(Bundle)]
pub struct Creature {
pub health: Health,
pub armor: Armor,
pub position: Position,
pub spatial: SpatialBundle,
}
#[derive(Component)]

View File

@ -5,13 +5,45 @@ pub mod components;
pub mod systems;
pub mod characters;
use crate::characters::*;
use components::*;
use characters::*;
fn setup(
query: Query<&Transform, With<PlayerCharacter>>,
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
for transform in query.iter() {
commands.spawn(PbrBundle {
mesh: meshes.add(Mesh::from(shape::Capsule{
radius: 1.0,
rings: 32,
depth: 2.0,
..Default::default()
})),
material: materials.add(StandardMaterial {
unlit: true,
..Default::default()
}),
transform: Transform::clone(transform),
..Default::default()
});
commands.spawn(DirectionalLightBundle::default());
commands.spawn(Camera3dBundle{
transform: Transform::from_xyz(0.0, 10.0, 0.0).looking_at(Vec3::default(), Vec3::Y),
projection: OrthographicProjection::default().into(),
..Default::default()
});
}
}
fn main() {
App::new()
.add_plugins(DefaultPlugins)
// Add systems, whatnot
.add_systems(Startup, spawn_player_character)
.add_systems(Startup, spawn_player_character)
.add_systems(Startup, spawn_player_character)
.add_systems(Startup, setup)
.run();
}