set_rich_presence, more logging

This commit is contained in:
2025-12-19 21:56:36 -05:00
parent 22674822cc
commit 1a632e729e
3 changed files with 35 additions and 5 deletions

View File

@@ -61,6 +61,14 @@ fn test_steam_system(steam_client: Res<Client>) {
},
);
let id = steam_client.user().steam_id();
info!("Steam ID: {:?}", id);
steam_client
.friends()
.set_rich_presence("connect", Some(id.raw().to_string().as_str()));
for friend in steam_client.friends().get_friends(FriendFlags::IMMEDIATE) {
info!(
"Steam Friend: {:?} - {}({:?})",

View File

@@ -45,12 +45,14 @@ use bevy::app::ScheduleRunnerPlugin;
use bevy::{core_pipeline::tonemapping::Tonemapping, prelude::*};
use bevy_common_assets::ron::RonAssetPlugin;
use bevy_replicon::{RepliconPlugins, prelude::ClientId};
use bevy_replicon_renet::RepliconRenetPlugins;
use bevy_replicon_renet::{RepliconRenetPlugins, steam::SteamServerPlugin};
use bevy_sprite3d::Sprite3dPlugin;
use bevy_steamworks::SteamworksEvent;
use bevy_trenchbroom::{
TrenchBroomPlugins, config::TrenchBroomConfig, prelude::TrenchBroomPhysicsPlugin,
};
use bevy_trenchbroom_avian::AvianPhysicsBackend;
use steamworks::{CallbackResult, P2PSessionRequest};
use utils::{billboards, squish_animation};
pub const HEDZ_GREEN: Srgba = Srgba::rgb(0.0, 1.0, 0.0);
@@ -90,6 +92,7 @@ pub fn launch() {
.auto_open_threshold(bevy::log::tracing::level_filters::LevelFilter::OFF),
);
app.add_plugins(SteamServerPlugin);
app.add_plugins(PhysicsPlugins::default());
app.add_plugins((RepliconPlugins, RepliconRenetPlugins));
app.add_plugins(Sprite3dPlugin);
@@ -163,6 +166,8 @@ pub fn plugin(app: &mut App) {
} else {
app.add_systems(OnEnter(GameState::Waiting), start_dedicated_server);
}
app.add_systems(Update, accept_p2p_sessions);
}
#[derive(Resource, Reflect, Debug)]
@@ -192,6 +197,23 @@ pub enum GameState {
Playing,
}
fn accept_p2p_sessions(
mut events: MessageReader<SteamworksEvent>,
steam_client: Res<bevy_steamworks::Client>,
) {
for event in events.read() {
if let SteamworksEvent::CallbackResult(CallbackResult::P2PSessionRequest(
P2PSessionRequest { remote },
)) = event
{
info!("Accepting P2P session from: {:?}", remote);
steam_client.networking().accept_p2p_session(*remote);
} else {
info!("steamworks event: {:?}", event);
}
}
}
fn start_solo_client(
commands: Commands,
mut next: ResMut<NextState<GameState>>,

View File

@@ -76,10 +76,10 @@ fn open_renet_server(
let client = (**steam_client).clone();
let transport = SteamServerTransport::new(client, steam_config)?;
commands.insert_resource(server);
commands.insert_resource(transport);
info!("hosting a server");
commands.queue(|w: &mut World| {
w.insert_resource(server);
w.insert_non_send_resource(transport);
});
next.set(GameState::Playing);