This commit is contained in:
2026-04-29 11:51:04 +08:00
parent e191619ab3
commit 412279ae11
89 changed files with 3966 additions and 491 deletions

View File

@@ -1,6 +1,8 @@
use super::*;
use crate::mapper::*;
use crate::module_bindings::delete_custom_world_agent_session_procedure::delete_custom_world_agent_session;
use crate::module_bindings::record_custom_world_profile_play_procedure::record_custom_world_profile_play;
use crate::module_bindings::remix_custom_world_profile_procedure::remix_custom_world_profile;
impl SpacetimeClient {
pub async fn list_custom_world_profiles(
@@ -209,6 +211,55 @@ impl SpacetimeClient {
.await
}
pub async fn remix_custom_world_profile(
&self,
input: CustomWorldProfileRemixRecordInput,
) -> Result<CustomWorldLibraryMutationRecord, SpacetimeClientError> {
let procedure_input = CustomWorldProfileRemixInput {
source_owner_user_id: input.source_owner_user_id,
source_profile_id: input.source_profile_id,
target_owner_user_id: input.target_owner_user_id,
target_profile_id: input.target_profile_id,
author_display_name: input.author_display_name,
remixed_at_micros: input.remixed_at_micros,
};
self.call_after_connect(move |connection, sender| {
connection
.procedures()
.remix_custom_world_profile_then(procedure_input, move |_, result| {
let mapped = result
.map_err(|error| SpacetimeClientError::Procedure(error.to_string()))
.and_then(map_custom_world_library_mutation_result);
send_once(&sender, mapped);
});
})
.await
}
pub async fn record_custom_world_profile_play(
&self,
input: CustomWorldProfilePlayReportRecordInput,
) -> Result<CustomWorldLibraryMutationRecord, SpacetimeClientError> {
let procedure_input = CustomWorldProfilePlayRecordInput {
owner_user_id: input.owner_user_id,
profile_id: input.profile_id,
played_at_micros: input.played_at_micros,
};
self.call_after_connect(move |connection, sender| {
connection
.procedures()
.record_custom_world_profile_play_then(procedure_input, move |_, result| {
let mapped = result
.map_err(|error| SpacetimeClientError::Procedure(error.to_string()))
.and_then(map_custom_world_library_mutation_result);
send_once(&sender, mapped);
});
})
.await
}
pub async fn publish_custom_world_world(
&self,
input: CustomWorldPublishWorldRecordInput,