Translate appearance and outfit parity tests

This commit is contained in:
2026-08-08 20:29:15 +02:00
parent ffe559db61
commit a78f9fba76
21 changed files with 4111 additions and 1902 deletions

View File

@@ -4673,13 +4673,16 @@ impl AppearanceManager {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.AppearanceManager.ManagerBusy")
}
/// C# member: `P:LibreMetaverse.AppearanceManager.TextureProvider`.
pub fn texture_provider(&self) -> Box<dyn libremetaverse::IBakingTextureProvider> {
pub fn texture_provider(&self) -> std::sync::Arc<dyn libremetaverse::IBakingTextureProvider> {
libremetaverse_types::unimplemented_api!(
"P:LibreMetaverse.AppearanceManager.TextureProvider"
)
}
/// Setter for C# member: `P:LibreMetaverse.AppearanceManager.TextureProvider`.
pub fn set_texture_provider(&mut self, value: Box<dyn libremetaverse::IBakingTextureProvider>) {
pub fn set_texture_provider(
&mut self,
value: std::sync::Arc<dyn libremetaverse::IBakingTextureProvider>,
) {
libremetaverse_types::unimplemented_api!(
"P:LibreMetaverse.AppearanceManager.TextureProvider"
)
@@ -5742,7 +5745,7 @@ pub struct AvatarAppearanceEventArgs;
impl AvatarAppearanceEventArgs {
/// C# member: `M:LibreMetaverse.AvatarAppearanceEventArgs.#ctor(LibreMetaverse.Simulator,LibreMetaverse.UUID,System.Boolean,LibreMetaverse.Primitive.TextureEntryFace,LibreMetaverse.Primitive.TextureEntryFace[],System.Collections.Generic.List{System.Byte},System.Byte,System.Int32,LibreMetaverse.AppearanceFlags,System.Int32)`.
pub fn new(
sim: libremetaverse::Simulator,
sim: Option<libremetaverse::Simulator>,
avatar_id: libremetaverse_types::UUID,
is_trial: bool,
default_texture: libremetaverse::PrimitiveTextureEntryFace,
@@ -6582,32 +6585,34 @@ impl AvatarUpdateEventArgs {
/// C# type: `T:LibreMetaverse.BakeType`.
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[repr(i32)]
pub enum BakeType {
#[repr(transparent)]
pub struct BakeType(pub i32);
#[allow(non_upper_case_globals)]
impl BakeType {
/// C# member: `F:LibreMetaverse.BakeType.BakedAux1`.
BakedAux1 = 8,
pub const BakedAux1: Self = Self(8);
/// C# member: `F:LibreMetaverse.BakeType.BakedAux2`.
BakedAux2 = 9,
pub const BakedAux2: Self = Self(9);
/// C# member: `F:LibreMetaverse.BakeType.BakedAux3`.
BakedAux3 = 10,
pub const BakedAux3: Self = Self(10);
/// C# member: `F:LibreMetaverse.BakeType.BakedLeftArm`.
BakedLeftArm = 6,
pub const BakedLeftArm: Self = Self(6);
/// C# member: `F:LibreMetaverse.BakeType.BakedLeftLeg`.
BakedLeftLeg = 7,
pub const BakedLeftLeg: Self = Self(7);
/// C# member: `F:LibreMetaverse.BakeType.Eyes`.
Eyes = 3,
pub const Eyes: Self = Self(3);
/// C# member: `F:LibreMetaverse.BakeType.Hair`.
Hair = 5,
pub const Hair: Self = Self(5);
/// C# member: `F:LibreMetaverse.BakeType.Head`.
Head = 0,
pub const Head: Self = Self(0);
/// C# member: `F:LibreMetaverse.BakeType.LowerBody`.
LowerBody = 2,
pub const LowerBody: Self = Self(2);
/// C# member: `F:LibreMetaverse.BakeType.Skirt`.
Skirt = 4,
pub const Skirt: Self = Self(4);
/// C# member: `F:LibreMetaverse.BakeType.Unknown`.
Unknown = -1,
pub const Unknown: Self = Self(-1);
/// C# member: `F:LibreMetaverse.BakeType.UpperBody`.
UpperBody = 1,
pub const UpperBody: Self = Self(1);
}
/// C# type: `T:LibreMetaverse.BalanceEventArgs`.
@@ -13662,7 +13667,7 @@ impl HttpCapsClientProgressReport {
}
/// C# type: `T:LibreMetaverse.IBakingTextureProvider`.
pub trait IBakingTextureProvider {
pub trait IBakingTextureProvider: std::any::Any {
/// C# member: `M:LibreMetaverse.IBakingTextureProvider.RequestTextureAsync(LibreMetaverse.UUID,System.Threading.CancellationToken)`.
fn request_texture(
&self,
@@ -14865,7 +14870,10 @@ impl InventoryAnimation {
}
/// C# type: `T:LibreMetaverse.InventoryAttachment`.
pub struct InventoryAttachment;
pub struct InventoryAttachment {
/// Rust composition for C# base type `LibreMetaverse.InventoryItem`.
pub base: libremetaverse::InventoryItem,
}
impl InventoryAttachment {
/// C# member: `M:LibreMetaverse.InventoryAttachment.#ctor(LibreMetaverse.UUID)`.
pub fn new(uuid: libremetaverse_types::UUID) -> Result<Self, crate::Error> {
@@ -15086,7 +15094,10 @@ impl InventoryGesture {
}
/// C# type: `T:LibreMetaverse.InventoryItem`.
pub struct InventoryItem;
pub struct InventoryItem {
/// Rust composition for C# base type `LibreMetaverse.InventoryBase`.
pub base: libremetaverse::InventoryBase,
}
impl InventoryItem {
/// C# member: `M:LibreMetaverse.InventoryItem.#ctor(LibreMetaverse.InventoryType,LibreMetaverse.UUID)`.
pub fn new_with_inventory_type_uuid(
@@ -15595,7 +15606,7 @@ impl InventoryManager {
pub async fn create_links(
&self,
folder_id: libremetaverse_types::UUID,
links_to_create: Box<dyn Iterator<Item = (libremetaverse::InventoryBase, String)>>,
links_to_create: Box<dyn Iterator<Item = (libremetaverse::InventoryItem, String)>>,
callback: Option<Box<dyn Fn(bool) + Send + Sync>>,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
@@ -16935,7 +16946,10 @@ impl InventoryNotecard {
}
/// C# type: `T:LibreMetaverse.InventoryObject`.
pub struct InventoryObject;
pub struct InventoryObject {
/// Rust composition for C# base type `LibreMetaverse.InventoryItem`.
pub base: libremetaverse::InventoryItem,
}
impl InventoryObject {
/// C# member: `M:LibreMetaverse.InventoryObject.#ctor(LibreMetaverse.UUID)`.
pub fn new(uuid: libremetaverse_types::UUID) -> Result<Self, crate::Error> {
@@ -17135,7 +17149,10 @@ impl InventorySound {
}
/// C# type: `T:LibreMetaverse.InventoryTexture`.
pub struct InventoryTexture;
pub struct InventoryTexture {
/// Rust composition for C# base type `LibreMetaverse.InventoryItem`.
pub base: libremetaverse::InventoryItem,
}
impl InventoryTexture {
/// C# member: `M:LibreMetaverse.InventoryTexture.#ctor(LibreMetaverse.UUID)`.
pub fn new(uuid: libremetaverse_types::UUID) -> Result<Self, crate::Error> {
@@ -17146,7 +17163,10 @@ impl InventoryTexture {
}
/// C# type: `T:LibreMetaverse.InventoryWearable`.
pub struct InventoryWearable;
pub struct InventoryWearable {
/// Rust composition for C# base type `LibreMetaverse.InventoryItem`.
pub base: libremetaverse::InventoryItem,
}
impl InventoryWearable {
/// C# member: `M:LibreMetaverse.InventoryWearable.#ctor(LibreMetaverse.UUID)`.
pub fn new(uuid: libremetaverse_types::UUID) -> Result<Self, crate::Error> {
@@ -23495,7 +23515,7 @@ pub struct Primitive {
/// C# member: `F:LibreMetaverse.Primitive.MediaVersion`.
pub media_version: String,
/// C# member: `F:LibreMetaverse.Primitive.NameValues`.
pub name_values: Vec<libremetaverse::NameValue>,
pub name_values: Option<Vec<libremetaverse::NameValue>>,
/// C# member: `F:LibreMetaverse.Primitive.OwnerID`.
pub owner_id: libremetaverse_types::UUID,
/// C# member: `F:LibreMetaverse.Primitive.ParentID`.
@@ -29162,9 +29182,10 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn add_policy(
&self,
policy_to_add: Option<Box<dyn libremetaverse::appearance::ICurrentOutfitPolicy>>,
) -> Result<libremetaverse::appearance::CompositeCurrentOutfitPolicy, crate::Error>
{
policy_to_add: Option<
std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
>,
) -> Result<&Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)",
)
@@ -29172,7 +29193,7 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanAttach(LibreMetaverse.InventoryItem)`.
pub fn can_attach(
&self,
item: Option<libremetaverse::InventoryItem>,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanAttach(LibreMetaverse.InventoryItem)",
@@ -29181,7 +29202,7 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)`.
pub fn can_detach(
&self,
item: Option<libremetaverse::InventoryItem>,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)",
@@ -29190,7 +29211,9 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.RemovePolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn remove_policy(
&self,
policy_to_remove: Option<Box<dyn libremetaverse::appearance::ICurrentOutfitPolicy>>,
policy_to_remove: Option<
std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.RemovePolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)",
@@ -29199,8 +29222,8 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.ReportItemChangeAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Threading.CancellationToken)`.
pub async fn report_item_change(
&self,
added_items: Option<Vec<libremetaverse::InventoryItem>>,
removed_items: Option<Vec<libremetaverse::InventoryItem>>,
added_items: Option<std::sync::Arc<Vec<libremetaverse::InventoryItem>>>,
removed_items: Option<std::sync::Arc<Vec<libremetaverse::InventoryItem>>>,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
@@ -29214,7 +29237,9 @@ pub mod appearance {
pub struct CurrentOutfitFolder;
impl CurrentOutfitFolder {
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.#ctor(LibreMetaverse.GridClient)`.
pub fn new(client: Option<libremetaverse::GridClient>) -> Result<Self, crate::Error> {
pub fn new(
client: Option<std::sync::Arc<libremetaverse::GridClient>>,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.#ctor(LibreMetaverse.GridClient)",
)
@@ -29222,9 +29247,11 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn add_policy(
&self,
policy_to_add: Box<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
) -> Result<Box<dyn libremetaverse::appearance::ICurrentOutfitPolicy>, crate::Error>
{
policy_to_add: std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
) -> Result<
std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
crate::Error,
> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)",
)
@@ -29370,7 +29397,7 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.RemovePolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn remove_policy(
&self,
policy_to_remove: Box<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
policy_to_remove: std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.RemovePolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)",
@@ -29389,8 +29416,8 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.ResolveInventoryLink(LibreMetaverse.InventoryItem)`.
pub fn resolve_inventory_link(
&self,
item_link: libremetaverse::InventoryItem,
) -> Result<Option<libremetaverse::InventoryItem>, crate::Error> {
item_link: std::sync::Arc<libremetaverse::InventoryItem>,
) -> Result<Option<std::sync::Arc<libremetaverse::InventoryItem>>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.ResolveInventoryLink(LibreMetaverse.InventoryItem)",
)
@@ -29416,11 +29443,11 @@ pub mod appearance {
}
/// C# type: `T:LibreMetaverse.Appearance.ICurrentOutfitPolicy`.
pub trait ICurrentOutfitPolicy {
pub trait ICurrentOutfitPolicy: Send + Sync {
/// C# member: `M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.CanAttach(LibreMetaverse.InventoryItem)`.
fn can_attach(
&self,
item: Option<libremetaverse::InventoryItem>,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.CanAttach(LibreMetaverse.InventoryItem)",
@@ -29429,7 +29456,7 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)`.
fn can_detach(
&self,
item: Option<libremetaverse::InventoryItem>,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)",
@@ -29438,8 +29465,8 @@ pub mod appearance {
/// C# member: `M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.ReportItemChangeAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Threading.CancellationToken)`.
fn report_item_change(
&self,
added_items: Option<Vec<libremetaverse::InventoryItem>>,
removed_items: Option<Vec<libremetaverse::InventoryItem>>,
added_items: Option<std::sync::Arc<Vec<libremetaverse::InventoryItem>>>,
removed_items: Option<std::sync::Arc<Vec<libremetaverse::InventoryItem>>>,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> std::pin::Pin<
Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>,
@@ -33904,7 +33931,7 @@ pub mod imaging {
}
/// C# member: `M:LibreMetaverse.Imaging.Baker.AddTexture(LibreMetaverse.AppearanceManager.TextureData)`.
pub fn add_texture(
&self,
&mut self,
tdata: libremetaverse::AppearanceManagerTextureData,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
@@ -33912,7 +33939,7 @@ pub mod imaging {
)
}
/// C# member: `M:LibreMetaverse.Imaging.Baker.Bake`.
pub fn bake(&self) -> Result<(), crate::Error> {
pub fn bake(&mut self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.Imaging.Baker.Bake")
}
/// C# member: `M:LibreMetaverse.Imaging.Baker.BakeTypeFor(LibreMetaverse.AvatarTextureIndex)`.