steamworks test integration (#20)

This commit is contained in:
extrawurst
2025-04-03 09:33:55 +02:00
committed by GitHub
parent 3758c47be6
commit e435738a21
8 changed files with 182 additions and 44 deletions

View File

@@ -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()),