Compare commits

..

No commits in common. "cf63dd6e41e4970c0e73b80e36d6f4302b6856f0" and "684fdd5558aab2c2b112e2961e3c0d5e233ba849" have entirely different histories.

15 changed files with 123 additions and 476 deletions

2
.gitignore vendored
View file

@ -1,3 +1,3 @@
/target
/.direnv
*.blend1

546
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -2,15 +2,13 @@
name = "mgd2-demonic-posession"
version = "0.1.0"
edition = "2024"
default-run = "mgd2-demonic-posession"
[dependencies]
bevy = {version="0.16.1", features=["file_watcher"]}
bevy = "0.16.0"
bevy-inspector-egui = "0.31.0"
bevy_third_person_camera = "0.3.0"
env_logger = "0.11.8"
log = "0.4.27"
bevy_skein = { git = "https://github.com/rust-adventure/skein.git" }
# Enable a small amount of optimization in the dev profile.
[profile.dev]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -3,7 +3,7 @@
use bevy::prelude::*;
use bevy_third_person_camera::*;
use crate::{AppState, TPCTarget};
use crate::AppState;
use super::GameplaySet;
@ -13,7 +13,6 @@ pub fn plugin(app: &mut App) {
OnEnter(AppState::Ingame),
setup_game_camera.in_set(GameplaySet),
)
// .add_systems(Update, auto_target)
.add_systems(OnExit(AppState::Ingame), remove_tpc.in_set(GameplaySet));
}
@ -40,21 +39,6 @@ pub fn setup_game_camera(mut c: Commands, cam: Single<Entity, With<Camera3d>>) {
info!("Third person camera set up!")
}
// fn auto_target(
// mut c: Commands,
// without_custom: Query<Entity, (With<ThirdPersonCameraTarget>, Without<TPCTarget>)>,
// without_lib: Query<Entity, (Without<ThirdPersonCameraTarget>, With<TPCTarget>)>,
// ) {
// without_custom.iter().for_each(|e| {
// info!("Deleting ThirdPersonCameraTarget from {e}");
// c.entity(e).remove::<ThirdPersonCameraTarget>();
// });
// without_lib.iter().for_each(|e| {
// info!("Inserting TPCTarget into {e}");
// c.entity(e).insert(ThirdPersonCameraTarget);
// });
// }
/// Removes [ThirdPersonCamera] from the camera.
pub fn remove_tpc(mut c: Commands, cam: Single<Entity, (With<Camera3d>, With<ThirdPersonCamera>)>) {
c.entity(*cam).remove::<ThirdPersonCamera>();

View file

@ -3,19 +3,26 @@ use bevy_third_person_camera::ThirdPersonCameraTarget;
use crate::cleanup;
const NORMALSPUR: f32 = 1.435;
pub fn setup(
mut c: Commands,
asset_server: Res<AssetServer>,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<StandardMaterial>>,
) {
let scene_handle = asset_server.load(GltfAssetLabel::Scene(0).from_asset("gltf/test.glb"));
// spawn in floor plane
c.spawn((
Mesh3d(meshes.add(Cuboid::new(1., 1., 1.))),
Mesh3d(meshes.add(Plane3d::default().mesh().size(128., 128.))),
MeshMaterial3d(materials.add(Color::srgb(0.3, 0.8, 0.4))),
cleanup::Scene,
));
// track (temporary)
c.spawn((
Mesh3d(meshes.add(Cuboid::new(NORMALSPUR, 0.25, 96.))),
MeshMaterial3d(materials.add(Color::BLACK)),
ThirdPersonCameraTarget,
cleanup::Scene,
));
c.spawn(SceneRoot(scene_handle));
info!("Scene spawned!")
}

View file

@ -1,6 +1,5 @@
#![feature(iter_collect_into)]
use bevy::prelude::*;
use bevy_skein::SkeinPlugin;
mod camera;
mod cleanup;
@ -19,16 +18,13 @@ enum AppState {
fn main() {
App::new()
.register_type::<TPCTarget>()
.add_systems(Startup, camera::setup)
.add_plugins(DefaultPlugins)
.add_plugins((game::plugin, menus::plugin, debugging::plugin))
.add_plugins(SkeinPlugin::default())
.add_systems(Startup, camera::setup)
.add_plugins(game::plugin)
.add_plugins(menus::plugin)
.init_state::<AppState>()
.add_plugins(debugging::plugin)
.register_type::<AppState>()
// .insert_state(AppState::Ingame)
.run();
}
#[derive(Debug, Reflect, Component)]
#[reflect(Component)]
struct TPCTarget;