Input!
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
use std::f32::consts::TAU;
|
||||
use std::f32::consts::{PI, TAU};
|
||||
use std::time::Duration;
|
||||
|
||||
use bevy::app::ScheduleRunnerPlugin;
|
||||
@@ -12,7 +12,7 @@ use wgpu::{TextureFormat, TextureUsages};
|
||||
mod post_process;
|
||||
|
||||
use crate::post_process::PostProcessSettings;
|
||||
use crate::renderer::{ImageExport, ImageExportPlugin, ImageExportSource};
|
||||
use crate::renderer::{G13Resource, ImageExport, ImageExportPlugin, ImageExportSource};
|
||||
use crate::shared::Spinner;
|
||||
|
||||
mod renderer;
|
||||
@@ -28,13 +28,13 @@ fn main() {
|
||||
})
|
||||
.build()
|
||||
.disable::<WinitPlugin>(),
|
||||
ScheduleRunnerPlugin::run_loop(Duration::from_secs_f64(1. / 24.)),
|
||||
ScheduleRunnerPlugin::run_loop(Duration::from_secs_f64(1. / 30.)),
|
||||
post_process::PostProcessPlugin,
|
||||
ImageExportPlugin,
|
||||
))
|
||||
.insert_resource(ClearColor(Color::linear_rgba(0.0, 0.0, 0.0, 1.0)))
|
||||
.add_systems(Startup, setup_scene_system)
|
||||
.add_systems(Update, rotate_cube)
|
||||
.add_systems(Update, (rotate_cube))
|
||||
.run();
|
||||
}
|
||||
|
||||
@@ -72,8 +72,27 @@ fn setup_scene_system(
|
||||
commands.spawn((ImageExport(export_sources.add(image_handle)),));
|
||||
}
|
||||
|
||||
fn rotate_cube(mut cubes: Query<(&mut Transform, &Spinner)>, timer: Res<Time>) {
|
||||
fn rotate_cube(
|
||||
mut cubes: Query<(&mut Transform, &Spinner)>,
|
||||
timer: Res<Time>,
|
||||
g13: Res<G13Resource>,
|
||||
) {
|
||||
const DEADZONE: i32 = 30;
|
||||
|
||||
let g13 = g13.g13.state();
|
||||
let mut x = g13.x as f32 / 512.0;
|
||||
let mut y = g13.y as f32 / 512.0;
|
||||
|
||||
if g13.x > -DEADZONE && g13.x < DEADZONE {
|
||||
x = 0.0;
|
||||
}
|
||||
|
||||
if g13.y > -DEADZONE && g13.y < DEADZONE {
|
||||
y = 0.0;
|
||||
}
|
||||
|
||||
for (mut transform, _cube) in &mut cubes {
|
||||
transform.rotate_y(0.25 * TAU * timer.delta_secs());
|
||||
transform.rotate_y(x * PI * timer.delta_secs());
|
||||
transform.rotate_x(y * PI * timer.delta_secs());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -184,7 +184,17 @@ impl Plugin for ImageExportPlugin {
|
||||
|
||||
let g13 = G13::new().expect("G13 to be connected");
|
||||
|
||||
let mut _g13 = g13.clone();
|
||||
std::thread::spawn(move || {
|
||||
loop {
|
||||
_g13.read().expect("G13 to be connected");
|
||||
}
|
||||
});
|
||||
|
||||
let g13r: G13Resource = G13Resource { g13 };
|
||||
|
||||
app.configure_sets(PostUpdate, ImageExportSetup)
|
||||
.insert_resource(g13r.clone())
|
||||
.register_type::<ImageExportSource>()
|
||||
.init_asset::<ImageExportSource>()
|
||||
.register_asset_reflect::<ImageExportSource>()
|
||||
@@ -196,7 +206,7 @@ impl Plugin for ImageExportPlugin {
|
||||
|
||||
let render_app = app.sub_app_mut(RenderApp);
|
||||
|
||||
render_app.insert_resource(G13Resource { g13 }).add_systems(
|
||||
render_app.insert_resource(g13r).add_systems(
|
||||
Render,
|
||||
save_buffer_to_disk
|
||||
.after(RenderSystems::Render)
|
||||
|
||||
Reference in New Issue
Block a user