mirror of
https://codeberg.org/schrottkatze/mgd2-tram-championships.git
synced 2025-07-01 09:27:38 +00:00
start map stuff
This commit is contained in:
parent
684fdd5558
commit
67383ac1db
8 changed files with 476 additions and 123 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,3 +1,3 @@
|
|||
/target
|
||||
/.direnv
|
||||
|
||||
*.blend1
|
||||
|
|
546
Cargo.lock
generated
546
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -2,13 +2,15 @@
|
|||
name = "mgd2-demonic-posession"
|
||||
version = "0.1.0"
|
||||
edition = "2024"
|
||||
default-run = "mgd2-demonic-posession"
|
||||
|
||||
[dependencies]
|
||||
bevy = "0.16.0"
|
||||
bevy = {version="0.16.1", features=["file_watcher"]}
|
||||
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]
|
||||
|
|
BIN
assets/gltf/test.glb
Normal file
BIN
assets/gltf/test.glb
Normal file
Binary file not shown.
BIN
blender/test.blend
Normal file
BIN
blender/test.blend
Normal file
Binary file not shown.
|
@ -3,7 +3,7 @@
|
|||
use bevy::prelude::*;
|
||||
use bevy_third_person_camera::*;
|
||||
|
||||
use crate::AppState;
|
||||
use crate::{AppState, TPCTarget};
|
||||
|
||||
use super::GameplaySet;
|
||||
|
||||
|
@ -13,6 +13,7 @@ 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));
|
||||
}
|
||||
|
||||
|
@ -39,6 +40,21 @@ 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>();
|
||||
|
|
|
@ -3,26 +3,19 @@ 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>>,
|
||||
) {
|
||||
// spawn in floor plane
|
||||
let scene_handle = asset_server.load(GltfAssetLabel::Scene(0).from_asset("gltf/test.glb"));
|
||||
c.spawn((
|
||||
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.))),
|
||||
Mesh3d(meshes.add(Cuboid::new(1., 1., 1.))),
|
||||
MeshMaterial3d(materials.add(Color::BLACK)),
|
||||
ThirdPersonCameraTarget,
|
||||
cleanup::Scene,
|
||||
));
|
||||
c.spawn(SceneRoot(scene_handle));
|
||||
info!("Scene spawned!")
|
||||
}
|
||||
|
|
14
src/main.rs
14
src/main.rs
|
@ -1,5 +1,6 @@
|
|||
#![feature(iter_collect_into)]
|
||||
use bevy::prelude::*;
|
||||
use bevy_skein::SkeinPlugin;
|
||||
|
||||
mod camera;
|
||||
mod cleanup;
|
||||
|
@ -18,13 +19,16 @@ enum AppState {
|
|||
|
||||
fn main() {
|
||||
App::new()
|
||||
.add_plugins(DefaultPlugins)
|
||||
.register_type::<TPCTarget>()
|
||||
.add_systems(Startup, camera::setup)
|
||||
.add_plugins(game::plugin)
|
||||
.add_plugins(menus::plugin)
|
||||
.add_plugins(DefaultPlugins)
|
||||
.add_plugins((game::plugin, menus::plugin, debugging::plugin))
|
||||
.add_plugins(SkeinPlugin::default())
|
||||
.init_state::<AppState>()
|
||||
.add_plugins(debugging::plugin)
|
||||
.register_type::<AppState>()
|
||||
// .insert_state(AppState::Ingame)
|
||||
.run();
|
||||
}
|
||||
|
||||
#[derive(Debug, Reflect, Component)]
|
||||
#[reflect(Component)]
|
||||
struct TPCTarget;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue