Start fixing free space example
This commit is contained in:
parent
885e8126ac
commit
27403f16ba
4 changed files with 18 additions and 23 deletions
|
@ -170,7 +170,7 @@ impl AssetLoader for EntityManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
entity_object.insert_component(Audio::new(
|
entity_object.insert_component(Audio::new(
|
||||||
assets.world().resources.get_mut::<Context>(),
|
assets.world().resources.get_mut()?,
|
||||||
entity_parser.sound_map,
|
entity_parser.sound_map,
|
||||||
)?);
|
)?);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ use engine::prelude::{
|
||||||
|
|
||||||
use crate::{FREE_CAMERA_CONTROL, celestial_object::*};
|
use crate::{FREE_CAMERA_CONTROL, celestial_object::*};
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug)]
|
#[derive(Clone, Copy, Debug, Resource)]
|
||||||
struct PlayerEntity(Entity);
|
struct PlayerEntity(Entity);
|
||||||
|
|
||||||
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
|
||||||
|
@ -37,7 +37,7 @@ enum Control {
|
||||||
SecondaryWeapon,
|
SecondaryWeapon,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug, Resource)]
|
||||||
struct InputSettings {
|
struct InputSettings {
|
||||||
mappings: HashMap<(String, u32, Input), (Control, bool)>,
|
mappings: HashMap<(String, u32, Input), (Control, bool)>,
|
||||||
}
|
}
|
||||||
|
@ -112,9 +112,8 @@ impl Game {
|
||||||
pub fn update(&mut self, world: &mut World) -> Result<()> {
|
pub fn update(&mut self, world: &mut World) -> Result<()> {
|
||||||
if FREE_CAMERA_CONTROL {
|
if FREE_CAMERA_CONTROL {
|
||||||
let now = world.now();
|
let now = world.now();
|
||||||
let mut resources = world.resources.multi_mut();
|
let (scene, camera_control): (&mut Scene, &mut FreeCameraControl) =
|
||||||
let scene = resources.get::<Scene>();
|
world.resources.get_mut()?;
|
||||||
let camera_control = resources.get::<FreeCameraControl>();
|
|
||||||
|
|
||||||
camera_control.update(now, scene.view_mut())?;
|
camera_control.update(now, scene.view_mut())?;
|
||||||
}
|
}
|
||||||
|
@ -157,24 +156,23 @@ impl Game {
|
||||||
) -> Result<Option<EngineEvent<'a>>> {
|
) -> Result<Option<EngineEvent<'a>>> {
|
||||||
match event {
|
match event {
|
||||||
EngineEvent::MouseButtonDown(MouseButton::Middle) => {
|
EngineEvent::MouseButtonDown(MouseButton::Middle) => {
|
||||||
let camera_control = world.resources.get_mut::<FreeCameraControl>();
|
let camera_control: &mut FreeCameraControl = world.resources.get_mut()?;
|
||||||
camera_control.mouse_down();
|
camera_control.mouse_down();
|
||||||
}
|
}
|
||||||
EngineEvent::MouseButtonUp(MouseButton::Middle) => {
|
EngineEvent::MouseButtonUp(MouseButton::Middle) => {
|
||||||
let camera_control = world.resources.get_mut::<FreeCameraControl>();
|
let camera_control: &mut FreeCameraControl = world.resources.get_mut()?;
|
||||||
camera_control.mouse_release();
|
camera_control.mouse_release();
|
||||||
}
|
}
|
||||||
EngineEvent::MouseMotion(x, y) => {
|
EngineEvent::MouseMotion(x, y) => {
|
||||||
let mut resources = world.resources.multi_mut();
|
let (scene, camera_control): (&mut Scene, &mut FreeCameraControl) =
|
||||||
let scene = resources.get::<Scene>();
|
world.resources.get_mut()?;
|
||||||
let camera_control = resources.get::<FreeCameraControl>();
|
|
||||||
|
|
||||||
camera_control.mouse_move(x, y, scene.view_mut())?;
|
camera_control.mouse_move(x, y, scene.view_mut())?;
|
||||||
|
|
||||||
return Ok(Some(event));
|
return Ok(Some(event));
|
||||||
}
|
}
|
||||||
EngineEvent::KeyDown(key) => {
|
EngineEvent::KeyDown(key) => {
|
||||||
let camera_control = world.resources.get_mut::<FreeCameraControl>();
|
let camera_control: &mut FreeCameraControl = world.resources.get_mut()?;
|
||||||
|
|
||||||
match key {
|
match key {
|
||||||
Keycode::W => camera_control.forward_back(1.0),
|
Keycode::W => camera_control.forward_back(1.0),
|
||||||
|
@ -188,7 +186,7 @@ impl Game {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
EngineEvent::KeyUp(key) => {
|
EngineEvent::KeyUp(key) => {
|
||||||
let camera_control = world.resources.get_mut::<FreeCameraControl>();
|
let camera_control: &mut FreeCameraControl = world.resources.get_mut()?;
|
||||||
|
|
||||||
match key {
|
match key {
|
||||||
Keycode::W => camera_control.forward_back(-1.0),
|
Keycode::W => camera_control.forward_back(-1.0),
|
||||||
|
@ -282,12 +280,8 @@ impl Game {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setup_scene(world: &mut World) -> Result<()> {
|
pub fn setup_scene(world: &mut World) -> Result<()> {
|
||||||
world
|
let scene: &mut Scene = world.resources.get_mut()?;
|
||||||
.resources
|
scene.view_mut().camera_mut().look_at(false);
|
||||||
.get_mut::<Scene>()
|
|
||||||
.view_mut()
|
|
||||||
.camera_mut()
|
|
||||||
.look_at(false);
|
|
||||||
|
|
||||||
let mut fighter = AssetHandler::create(world).create_entity("fighter_edited")?;
|
let mut fighter = AssetHandler::create(world).create_entity("fighter_edited")?;
|
||||||
fighter.insert_component(FreeSpaceControl::new(
|
fighter.insert_component(FreeSpaceControl::new(
|
||||||
|
@ -317,7 +311,7 @@ impl Game {
|
||||||
light.set_power(50_000_000_000.0)?;
|
light.set_power(50_000_000_000.0)?;
|
||||||
light.set_color(vec3(1.0, 1.0, 1.0))?;
|
light.set_color(vec3(1.0, 1.0, 1.0))?;
|
||||||
|
|
||||||
let scene = world.resources.get_mut::<Scene>();
|
let scene: &mut Scene = world.resources.get_mut()?;
|
||||||
scene.add_light(light)?;
|
scene.add_light(light)?;
|
||||||
|
|
||||||
world.commit_entity_changes()
|
world.commit_entity_changes()
|
||||||
|
@ -341,7 +335,7 @@ impl Game {
|
||||||
_entity: Entity,
|
_entity: Entity,
|
||||||
control: &mut FreeSpaceControl,
|
control: &mut FreeSpaceControl,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let scene = world.resources.get_mut::<Scene>();
|
let scene: &mut Scene = world.resources.get_mut()?;
|
||||||
let view = scene.view_mut();
|
let view = scene.view_mut();
|
||||||
|
|
||||||
view.camera_mut()
|
view.camera_mut()
|
||||||
|
|
|
@ -5,7 +5,7 @@ use engine::prelude::*;
|
||||||
|
|
||||||
use crate::game::Game;
|
use crate::game::Game;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default, Resource)]
|
||||||
pub enum GameState {
|
pub enum GameState {
|
||||||
#[default]
|
#[default]
|
||||||
Startup,
|
Startup,
|
||||||
|
|
|
@ -41,7 +41,8 @@ fn main() -> Result<()> {
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
if FREE_CAMERA_CONTROL {
|
if FREE_CAMERA_CONTROL {
|
||||||
let view = world_builder.resources.get_mut::<Scene>().view_mut();
|
let scene:&mut Scene = world_builder.resources.get_mut::<Scene>()?;
|
||||||
|
let view = .view_mut();
|
||||||
let camera_control = FreeCameraControl::new(view)?;
|
let camera_control = FreeCameraControl::new(view)?;
|
||||||
world_builder.resources.insert(camera_control);
|
world_builder.resources.insert(camera_control);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue