steamworks test integration (#20)
This commit is contained in:
66
src/main.rs
66
src/main.rs
@@ -24,21 +24,22 @@ mod tb_entities;
|
||||
mod utils;
|
||||
|
||||
use avian3d::prelude::*;
|
||||
use bevy::audio::PlaybackMode;
|
||||
use bevy::audio::Volume;
|
||||
use bevy::core_pipeline::tonemapping::Tonemapping;
|
||||
use bevy::prelude::*;
|
||||
use bevy::render::view::ColorGrading;
|
||||
use bevy::{
|
||||
audio::{PlaybackMode, Volume},
|
||||
core_pipeline::tonemapping::Tonemapping,
|
||||
prelude::*,
|
||||
render::view::ColorGrading,
|
||||
};
|
||||
use bevy_polyline::PolylinePlugin;
|
||||
use bevy_sprite3d::Sprite3dPlugin;
|
||||
use bevy_steamworks::{FriendFlags, SteamworksClient, SteamworksPlugin};
|
||||
use bevy_trenchbroom::prelude::*;
|
||||
use bevy_ui_gradients::UiGradientsPlugin;
|
||||
use camera::MainCamera;
|
||||
use control::controller::CharacterControllerPlugin;
|
||||
use loading_assets::AudioAssets;
|
||||
use utils::billboards;
|
||||
use utils::sprite_3d_animation;
|
||||
use utils::squish_animation;
|
||||
use std::io::{Read, Write};
|
||||
use utils::{billboards, sprite_3d_animation, squish_animation};
|
||||
|
||||
#[derive(Resource, Reflect, Debug)]
|
||||
#[reflect(Resource)]
|
||||
@@ -88,6 +89,15 @@ fn main() {
|
||||
}),
|
||||
);
|
||||
|
||||
match SteamworksPlugin::init_app(1603000) {
|
||||
Ok(plugin) => {
|
||||
app.add_plugins(plugin);
|
||||
}
|
||||
Err(e) => {
|
||||
error!("steam init error: {e:?}");
|
||||
}
|
||||
};
|
||||
|
||||
app.add_plugins(bevy_debug_log::LogViewerPlugin::default());
|
||||
app.add_plugins(PhysicsPlugins::default());
|
||||
app.add_plugins(CharacterControllerPlugin);
|
||||
@@ -142,13 +152,51 @@ fn main() {
|
||||
});
|
||||
app.insert_resource(ClearColor(Color::BLACK));
|
||||
|
||||
app.add_systems(Startup, write_trenchbroom_config);
|
||||
app.add_systems(
|
||||
Startup,
|
||||
(
|
||||
write_trenchbroom_config,
|
||||
steam_system.run_if(resource_exists::<SteamworksClient>),
|
||||
),
|
||||
);
|
||||
app.add_systems(OnEnter(GameState::Playing), music);
|
||||
app.add_systems(Update, (set_materials_unlit, set_tonemapping, set_shadows));
|
||||
|
||||
app.run();
|
||||
}
|
||||
|
||||
fn steam_system(steam_client: Res<SteamworksClient>) {
|
||||
for friend in steam_client.friends().get_friends(FriendFlags::IMMEDIATE) {
|
||||
info!(
|
||||
"Steam Friend: {:?} - {}({:?})",
|
||||
friend.id(),
|
||||
friend.name(),
|
||||
friend.state()
|
||||
);
|
||||
}
|
||||
|
||||
steam_client
|
||||
.remote_storage()
|
||||
.set_cloud_enabled_for_app(true);
|
||||
let f = steam_client.remote_storage().file("hedz_data.dat");
|
||||
if f.exists() {
|
||||
let mut buf = String::new();
|
||||
if let Err(e) = f.read().read_to_string(&mut buf) {
|
||||
error!("File read error: {}", e);
|
||||
} else {
|
||||
info!("File content: {}", buf);
|
||||
}
|
||||
} else {
|
||||
info!("File does not exist");
|
||||
|
||||
if let Err(e) = f.write().write_all(String::from("hello world").as_bytes()) {
|
||||
error!("steam cloud error: {}", e);
|
||||
} else {
|
||||
info!("steam cloud saved");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn music(assets: Res<AudioAssets>, mut commands: Commands) {
|
||||
commands.spawn((
|
||||
AudioPlayer::new(assets.music.clone()),
|
||||
|
||||
Reference in New Issue
Block a user