Implement appearance and current outfit services (#65)
Some checks failed
Native code generation / deterministic (push) Failing after 2m19s
Imaging and meshing gate / native (push) Failing after 1m26s
Native Rust workspace compile / compile (push) Failing after 2m11s

This commit is contained in:
2026-08-10 08:58:29 +00:00
parent 52f62d8c39
commit a9927fcfcb
13 changed files with 2900 additions and 242 deletions

View File

@@ -2861,12 +2861,9 @@ impl AppearanceFlags {
}
/// C# type: `T:LibreMetaverse.AppearanceManager`.
pub struct AppearanceManager {
/// C# member: `F:LibreMetaverse.AppearanceManager.MyTextures`.
pub my_textures: libremetaverse::PrimitiveTextureEntry,
/// C# member: `F:LibreMetaverse.AppearanceManager.MyVisualParameters`.
pub my_visual_parameters: Vec<u8>,
}
pub use crate::appearance_manager::AppearanceManager;
/// C# member: `F:LibreMetaverse.AppearanceManager.MyTextures`.
/// C# member: `F:LibreMetaverse.AppearanceManager.MyVisualParameters`.
impl AppearanceManager {
/// C# member: `E:LibreMetaverse.AppearanceManager.AgentWearablesReply`.
pub fn subscribe_agent_wearables_reply(
@@ -2875,16 +2872,14 @@ impl AppearanceManager {
libremetaverse::AgentWearablesReplyEventArgs,
>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!(
"E:LibreMetaverse.AppearanceManager.AgentWearablesReply"
)
self.native_subscribe_agent_wearables_reply(handler)
}
/// C# member: `E:LibreMetaverse.AppearanceManager.AppearanceSet`.
pub fn subscribe_appearance_set(
&self,
handler: libremetaverse_types::compat::EventHandler<libremetaverse::AppearanceSetEventArgs>,
) -> libremetaverse_types::compat::Subscription {
libremetaverse_types::unimplemented_api!("E:LibreMetaverse.AppearanceManager.AppearanceSet")
self.native_subscribe_appearance_set(handler)
}
/// C# member: `E:LibreMetaverse.AppearanceManager.CachedBakesReply`.
pub fn subscribe_cached_bakes_reply(
@@ -3025,9 +3020,7 @@ impl AppearanceManager {
pub fn new(
client: Option<std::sync::Arc<libremetaverse::GridClient>>,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.#ctor(LibreMetaverse.GridClient)",
)
crate::appearance_manager::AppearanceManager::native_new(client)
}
/// C# member: `M:LibreMetaverse.AppearanceManager.AddAttachments(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean,System.Boolean)`.
pub fn add_attachments(
@@ -3036,9 +3029,7 @@ impl AppearanceManager {
remove_existing_first: bool,
replace: Option<bool>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.AddAttachments(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean,System.Boolean)",
)
self.native_add_attachments(attachments, remove_existing_first, replace.unwrap_or(false))
}
/// C# member: `M:LibreMetaverse.AppearanceManager.AddToOutfit(LibreMetaverse.InventoryItem,System.Boolean)`.
pub fn add_to_outfit_with_inventory_item_boolean(
@@ -3046,9 +3037,7 @@ impl AppearanceManager {
wearable_item: libremetaverse::InventoryItem,
replace: Option<bool>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.AddToOutfit(LibreMetaverse.InventoryItem,System.Boolean)",
)
self.native_add_to_outfit(vec![wearable_item], replace.unwrap_or(false))
}
/// C# member: `M:LibreMetaverse.AppearanceManager.AddToOutfit(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean)`.
pub fn add_to_outfit_with_list_boolean(
@@ -3056,9 +3045,7 @@ impl AppearanceManager {
wearable_items: Vec<libremetaverse::InventoryItem>,
replace: Option<bool>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.AddToOutfit(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean)",
)
self.native_add_to_outfit(wearable_items, replace.unwrap_or(false))
}
/// C# member: `M:LibreMetaverse.AppearanceManager.ApplyArchetype(LibreMetaverse.GenepoolArchetype)`.
pub async fn apply_archetype(
@@ -3076,9 +3063,7 @@ impl AppearanceManager {
attach_point: libremetaverse_types::AttachmentPoint,
replace: Option<bool>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.Attach(LibreMetaverse.InventoryItem,LibreMetaverse.AttachmentPoint,System.Boolean)",
)
self.native_attach(item, attach_point, replace.unwrap_or(false))
}
/// C# member: `M:LibreMetaverse.AppearanceManager.Attach(LibreMetaverse.UUID,LibreMetaverse.UUID,System.String,System.String,LibreMetaverse.Permissions,System.UInt32,LibreMetaverse.AttachmentPoint,System.Boolean)`.
pub fn attach_with_uuid_uuid_string_string_permissions_u_int32_attachment_point_boolean(
@@ -3092,8 +3077,15 @@ impl AppearanceManager {
attach_point: libremetaverse_types::AttachmentPoint,
replace: Option<bool>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.Attach(LibreMetaverse.UUID,LibreMetaverse.UUID,System.String,System.String,LibreMetaverse.Permissions,System.UInt32,LibreMetaverse.AttachmentPoint,System.Boolean)",
self.native_attach_fields(
item_id,
owner_id,
name,
description,
perms,
item_flags,
attach_point,
replace.unwrap_or(false),
)
}
/// C# member: `M:LibreMetaverse.AppearanceManager.BakeTypeToAgentTextureIndex(LibreMetaverse.BakeType)`.
@@ -3136,28 +3128,24 @@ impl AppearanceManager {
&self,
item: libremetaverse::InventoryItem,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.Detach(LibreMetaverse.InventoryItem)",
)
self.native_detach(item.base.uuid())
}
/// C# member: `M:LibreMetaverse.AppearanceManager.Detach(LibreMetaverse.UUID)`.
pub fn detach_with_uuid(
&self,
item_id: libremetaverse_types::UUID,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.Detach(LibreMetaverse.UUID)",
)
self.native_detach(item_id)
}
/// C# member: `M:LibreMetaverse.AppearanceManager.Dispose`.
pub fn dispose(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.AppearanceManager.Dispose")
self.native_dispose()
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetAttachments`.
pub fn get_attachments(
&self,
) -> Result<Box<dyn Iterator<Item = libremetaverse::InventoryItem>>, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.AppearanceManager.GetAttachments")
self.native_get_attachments()
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetAttachmentsByAttachmentPointAsync(System.Threading.CancellationToken)`.
pub async fn get_attachments_by_attachment_point(
@@ -3170,9 +3158,8 @@ impl AppearanceManager {
>,
crate::Error,
> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.GetAttachmentsByAttachmentPointAsync(System.Threading.CancellationToken)",
)
self.native_get_attachments_by_point(cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetAttachmentsByInventoryItem`.
pub fn get_attachments_by_inventory_item(
@@ -3184,9 +3171,7 @@ impl AppearanceManager {
>,
crate::Error,
> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.GetAttachmentsByInventoryItem",
)
self.native_get_attachments_by_item()
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetAttachmentsByItemId`.
pub fn get_attachments_by_item_id(
@@ -3198,9 +3183,7 @@ impl AppearanceManager {
>,
crate::Error,
> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.GetAttachmentsByItemId",
)
self.native_get_attachments_by_id()
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetColorFromParams(System.Collections.Generic.List{LibreMetaverse.AppearanceManager.ColorParamInfo})`.
pub fn get_color_from_params(
@@ -3215,9 +3198,8 @@ impl AppearanceManager {
&self,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<Option<libremetaverse::InventoryFolder>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.GetCurrentOutfitFolderAsync(System.Threading.CancellationToken)",
)
self.native_get_current_outfit_folder(cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetCurrentParamValues`.
pub fn get_current_param_values(
@@ -3240,25 +3222,22 @@ impl AppearanceManager {
),
crate::Error,
> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.GetFolderWearablesAsync(LibreMetaverse.UUID,System.Threading.CancellationToken)",
)
self.native_get_folder_wearables(folder, cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetWearableAssets(LibreMetaverse.WearableType)`.
pub fn get_wearable_assets(
&self,
type_: libremetaverse_types::WearableType,
) -> Result<Box<dyn Iterator<Item = libremetaverse_types::UUID>>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.GetWearableAssets(LibreMetaverse.WearableType)",
)
self.native_get_wearable_assets(type_)
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetWearables`.
pub fn get_wearables(
&self,
) -> Result<Box<dyn Iterator<Item = libremetaverse::AppearanceManagerWearableData>>, crate::Error>
{
libremetaverse_types::not_implemented("M:LibreMetaverse.AppearanceManager.GetWearables")
self.native_get_wearables()
}
/// C# member: `M:LibreMetaverse.AppearanceManager.GetWearablesByType`.
pub fn get_wearables_by_type(
@@ -3270,27 +3249,21 @@ impl AppearanceManager {
>,
crate::Error,
> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.GetWearablesByType",
)
self.native_get_wearables_by_type()
}
/// C# member: `M:LibreMetaverse.AppearanceManager.IsItemWorn(LibreMetaverse.InventoryItem)`.
pub fn is_item_worn_with_inventory_item(
&self,
item: libremetaverse::InventoryItem,
) -> Result<libremetaverse_types::WearableType, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.IsItemWorn(LibreMetaverse.InventoryItem)",
)
self.native_is_item_worn(item.base.uuid())
}
/// C# member: `M:LibreMetaverse.AppearanceManager.IsItemWorn(LibreMetaverse.UUID)`.
pub fn is_item_worn_with_uuid(
&self,
item_id: libremetaverse_types::UUID,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.IsItemWorn(LibreMetaverse.UUID)",
)
Ok(self.native_is_item_worn(item_id)? != libremetaverse_types::WearableType::Invalid)
}
/// C# member: `M:LibreMetaverse.AppearanceManager.MakeAppearancePacket`.
pub fn make_appearance_packet(
@@ -3322,27 +3295,21 @@ impl AppearanceManager {
&self,
wearable_item: libremetaverse::InventoryItem,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.RemoveFromOutfit(LibreMetaverse.InventoryItem)",
)
self.native_remove_from_outfit(vec![wearable_item])
}
/// C# member: `M:LibreMetaverse.AppearanceManager.RemoveFromOutfit(System.Collections.Generic.List{LibreMetaverse.InventoryItem})`.
pub fn remove_from_outfit_with_list(
&self,
wearable_items: Vec<libremetaverse::InventoryItem>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.RemoveFromOutfit(System.Collections.Generic.List{LibreMetaverse.InventoryItem})",
)
self.native_remove_from_outfit(wearable_items)
}
/// C# member: `M:LibreMetaverse.AppearanceManager.ReplaceOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem})`.
pub async fn replace_outfit_with_list(
&self,
wearable_items: Vec<libremetaverse::InventoryItem>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.ReplaceOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem})",
)
self.native_replace_outfit(wearable_items, false).await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.ReplaceOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean)`.
pub async fn replace_outfit_with_list_boolean(
@@ -3350,18 +3317,14 @@ impl AppearanceManager {
wearable_items: Vec<libremetaverse::InventoryItem>,
safe: bool,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.ReplaceOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean)",
)
self.native_replace_outfit(wearable_items, safe).await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.RequestAgentWornAsync(System.Threading.CancellationToken)`.
pub async fn request_agent_worn(
&self,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<Vec<libremetaverse::InventoryBase>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.RequestAgentWornAsync(System.Threading.CancellationToken)",
)
self.native_request_agent_worn(cancellation_token).await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.RequestCachedBakes`.
pub fn request_cached_bakes(&self) -> Result<(), crate::Error> {
@@ -3383,9 +3346,7 @@ impl AppearanceManager {
&self,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.SendOutfitToCurrentSimulatorAsync(System.Threading.CancellationToken)",
)
self.native_send_outfit(cancellation_token).await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.ServerBakingRegion`.
pub fn server_baking_region(&self) -> Result<bool, crate::Error> {
@@ -3398,9 +3359,7 @@ impl AppearanceManager {
&mut self,
cof_version: i32,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.UpdateLastReceivedCOFVersion(System.Int32)",
)
self.native_update_cof_version(cof_version)
}
/// C# member: `M:LibreMetaverse.AppearanceManager.WearOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryBase},System.Boolean)`.
pub async fn wear_outfit(
@@ -3408,45 +3367,37 @@ impl AppearanceManager {
wearables: Vec<libremetaverse::InventoryBase>,
replace_items: bool,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.WearOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryBase},System.Boolean)",
)
self.native_wear_outfit(wearables, replace_items).await
}
/// C# member: `M:LibreMetaverse.AppearanceManager.WearableTypeToAssetType(LibreMetaverse.WearableType)`.
pub fn wearable_type_to_asset_type(
type_: libremetaverse_types::WearableType,
) -> Result<libremetaverse_types::AssetType, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.WearableTypeToAssetType(LibreMetaverse.WearableType)",
)
Ok(crate::appearance_manager::wearable_type_to_asset_type(
type_,
))
}
/// C# member: `M:LibreMetaverse.AppearanceManager.isItemAttached(LibreMetaverse.InventoryItem)`.
pub fn is_item_attached_with_inventory_item(
&self,
item: libremetaverse::InventoryItem,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.isItemAttached(LibreMetaverse.InventoryItem)",
)
Ok(self.native_is_item_attached(item.base.uuid()))
}
/// C# member: `M:LibreMetaverse.AppearanceManager.isItemAttached(LibreMetaverse.UUID)`.
pub fn is_item_attached_with_uuid(
&self,
key: libremetaverse_types::UUID,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.AppearanceManager.isItemAttached(LibreMetaverse.UUID)",
)
Ok(self.native_is_item_attached(key))
}
/// C# member: `P:LibreMetaverse.AppearanceManager.LastUpdateReceivedCOFVersion`.
pub fn last_update_received_cof_version(&self) -> i32 {
libremetaverse_types::unimplemented_api!(
"P:LibreMetaverse.AppearanceManager.LastUpdateReceivedCOFVersion"
)
self.native_last_cof_version()
}
/// C# member: `P:LibreMetaverse.AppearanceManager.ManagerBusy`.
pub fn manager_busy(&self) -> bool {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.AppearanceManager.ManagerBusy")
self.native_manager_busy()
}
/// C# member: `P:LibreMetaverse.AppearanceManager.TextureProvider`.
pub fn texture_provider(&self) -> std::sync::Arc<dyn libremetaverse::IBakingTextureProvider> {
@@ -3507,6 +3458,7 @@ impl AppearanceManagerTextureData {
}
/// C# type: `T:LibreMetaverse.AppearanceManager.WearableData`.
#[derive(Clone, Debug)]
pub struct AppearanceManagerWearableData {
/// C# member: `F:LibreMetaverse.AppearanceManager.WearableData.Asset`.
pub asset: Option<libremetaverse::assets::AssetWearable>,
@@ -8786,11 +8738,14 @@ impl GridClient {
}
/// C# member: `P:LibreMetaverse.GridClient.Appearance`.
pub fn appearance(&self) -> libremetaverse::AppearanceManager {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.GridClient.Appearance")
/* native client-core implementation */
self.native_appearance()
.unwrap_or_else(|_| panic!("failed to construct AppearanceManager"))
}
/// Setter for C# member: `P:LibreMetaverse.GridClient.Appearance`.
pub fn set_appearance(&mut self, value: libremetaverse::AppearanceManager) {
libremetaverse_types::unimplemented_api!("P:LibreMetaverse.GridClient.Appearance")
/* native client-core implementation */
self.native_set_appearance(value)
}
/// C# member: `P:LibreMetaverse.GridClient.Assets`.
pub fn assets(&self) -> libremetaverse::AssetManager {
@@ -14722,9 +14677,13 @@ impl NameValue {
sendto_type: libremetaverse::NameValueSendtoType,
value: libremetaverse_types::compat::Object,
) -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.NameValue.#ctor(System.String,LibreMetaverse.NameValue.ValueType,LibreMetaverse.NameValue.ClassType,LibreMetaverse.NameValue.SendtoType,System.Object)",
)
Ok(crate::NameValue {
class_: class_type,
name,
sendto: sendto_type,
type_: value_type,
value: Some(value),
})
}
/// C# member: `M:LibreMetaverse.NameValue.Equals(LibreMetaverse.NameValue)`.
pub fn equals_with_name_value(&self, other: libremetaverse::NameValue) -> bool {
@@ -18572,7 +18531,7 @@ pub struct Primitive {
impl Primitive {
/// C# member: `M:LibreMetaverse.Primitive.#ctor`.
pub fn new_with_constructor() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented("M:LibreMetaverse.Primitive.#ctor")
Ok(crate::current_outfit::primitive_defaults())
}
/// C# member: `M:LibreMetaverse.Primitive.#ctor(LibreMetaverse.Primitive)`.
pub fn new_with_primitive(prim: libremetaverse::Primitive) -> Result<Self, crate::Error> {
@@ -23074,13 +23033,11 @@ pub mod animesh {
pub mod appearance {
/// C# type: `T:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy`.
pub struct CompositeCurrentOutfitPolicy;
pub use crate::current_outfit::CompositeCurrentOutfitPolicy;
impl CompositeCurrentOutfitPolicy {
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.#ctor`.
pub fn new() -> Result<Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.#ctor",
)
crate::current_outfit::CompositeCurrentOutfitPolicy::native_new()
}
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn add_policy(
@@ -23089,27 +23046,21 @@ pub mod appearance {
std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
>,
) -> Result<&Self, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)",
)
self.native_add_policy(policy_to_add)
}
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanAttach(LibreMetaverse.InventoryItem)`.
pub fn can_attach(
&self,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanAttach(LibreMetaverse.InventoryItem)",
)
self.native_can_attach(item)
}
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)`.
pub fn can_detach(
&self,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)",
)
self.native_can_detach(item)
}
/// C# member: `M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.RemovePolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn remove_policy(
@@ -23118,9 +23069,7 @@ pub mod appearance {
std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.RemovePolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)",
)
self.native_remove_policy(policy_to_remove)
}
/// 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(
@@ -23129,23 +23078,19 @@ pub mod appearance {
removed_items: Option<std::sync::Arc<Vec<libremetaverse::InventoryItem>>>,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CompositeCurrentOutfitPolicy.ReportItemChangeAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Threading.CancellationToken)",
)
self.native_report_item_change(added_items, removed_items, cancellation_token)
.await
}
}
impl libremetaverse::appearance::ICurrentOutfitPolicy for CompositeCurrentOutfitPolicy {}
/// C# type: `T:LibreMetaverse.Appearance.CurrentOutfitFolder`.
pub struct CurrentOutfitFolder;
pub use crate::current_outfit::CurrentOutfitFolder;
impl CurrentOutfitFolder {
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.#ctor(LibreMetaverse.GridClient)`.
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)",
)
crate::current_outfit::CurrentOutfitFolder::native_new(client)
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn add_policy(
@@ -23155,9 +23100,7 @@ pub mod appearance {
std::sync::Arc<dyn libremetaverse::appearance::ICurrentOutfitPolicy>,
crate::Error,
> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddPolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)",
)
self.native_add_policy(policy_to_add)
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddToOutfitAsync(LibreMetaverse.InventoryItem,System.Boolean,System.Threading.CancellationToken)`.
pub async fn add_to_outfit_with_inventory_item_boolean_cancellation_token(
@@ -23166,9 +23109,8 @@ pub mod appearance {
replace: bool,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddToOutfitAsync(LibreMetaverse.InventoryItem,System.Boolean,System.Threading.CancellationToken)",
)
self.native_add_to_outfit(vec![item], replace, cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddToOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean,System.Threading.CancellationToken)`.
pub async fn add_to_outfit_with_list_boolean_cancellation_token(
@@ -23177,9 +23119,8 @@ pub mod appearance {
replace: bool,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.AddToOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Boolean,System.Threading.CancellationToken)",
)
self.native_add_to_outfit(requested_items_to_add, replace, cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.AttachAsync(LibreMetaverse.InventoryItem,LibreMetaverse.AttachmentPoint,System.Boolean,System.Threading.CancellationToken)`.
pub async fn attach(
@@ -23189,9 +23130,8 @@ pub mod appearance {
replace: bool,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.AttachAsync(LibreMetaverse.InventoryItem,LibreMetaverse.AttachmentPoint,System.Boolean,System.Threading.CancellationToken)",
)
self.native_attach(item, point, replace, cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.CanAttachItemAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)`.
pub async fn can_attach_item(
@@ -23199,9 +23139,7 @@ pub mod appearance {
item: libremetaverse::InventoryItem,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.CanAttachItemAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)",
)
self.native_can_attach_item(item, cancellation_token).await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.CanDetachItemAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)`.
pub async fn can_detach_item(
@@ -23209,9 +23147,7 @@ pub mod appearance {
item: libremetaverse::InventoryItem,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.CanDetachItemAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)",
)
self.native_can_detach_item(item, cancellation_token).await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.DetachAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)`.
pub async fn detach(
@@ -23219,15 +23155,11 @@ pub mod appearance {
item: libremetaverse::InventoryItem,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.DetachAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)",
)
self.native_detach(item, cancellation_token).await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.Dispose`.
pub fn dispose(&self) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.Dispose",
)
self.native_dispose()
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.FetchParentAsync(LibreMetaverse.InventoryBase,System.Threading.CancellationToken)`.
pub async fn fetch_parent(
@@ -23235,26 +23167,21 @@ pub mod appearance {
item: libremetaverse::InventoryBase,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<Option<libremetaverse::InventoryBase>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.FetchParentAsync(LibreMetaverse.InventoryBase,System.Threading.CancellationToken)",
)
self.native_fetch_parent(item, cancellation_token).await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.GetAttachmentItemID(LibreMetaverse.Primitive)`.
pub fn get_attachment_item_id(
prim: libremetaverse::Primitive,
) -> Result<libremetaverse_types::UUID, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.GetAttachmentItemID(LibreMetaverse.Primitive)",
)
crate::current_outfit::CurrentOutfitFolder::native_get_attachment_item_id(prim)
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.GetCurrentOutfitLinksAsync(System.Threading.CancellationToken)`.
pub async fn get_current_outfit_links(
&self,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<Vec<libremetaverse::InventoryItem>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.GetCurrentOutfitLinksAsync(System.Threading.CancellationToken)",
)
self.native_get_current_outfit_links(cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.GetWornAtAsync(LibreMetaverse.WearableType,System.Threading.CancellationToken)`.
pub async fn get_worn_at(
@@ -23262,9 +23189,7 @@ pub mod appearance {
type_: libremetaverse_types::WearableType,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<Vec<libremetaverse::InventoryItem>, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.GetWornAtAsync(LibreMetaverse.WearableType,System.Threading.CancellationToken)",
)
self.native_get_worn_at(type_, cancellation_token).await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.IsObjectDescendentOfAsync(LibreMetaverse.InventoryBase,LibreMetaverse.UUID,System.Threading.CancellationToken)`.
pub async fn is_object_descendent_of(
@@ -23273,9 +23198,8 @@ pub mod appearance {
parent_id: libremetaverse_types::UUID,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.IsObjectDescendentOfAsync(LibreMetaverse.InventoryBase,LibreMetaverse.UUID,System.Threading.CancellationToken)",
)
self.native_is_object_descendent_of(item, parent_id, cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.RemoveFromOutfitAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)`.
pub async fn remove_from_outfit_with_inventory_item_cancellation_token(
@@ -23283,9 +23207,8 @@ pub mod appearance {
item: libremetaverse::InventoryItem,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.RemoveFromOutfitAsync(LibreMetaverse.InventoryItem,System.Threading.CancellationToken)",
)
self.native_remove_from_outfit(vec![item], cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.RemoveFromOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Threading.CancellationToken)`.
pub async fn remove_from_outfit_with_list_cancellation_token(
@@ -23293,18 +23216,15 @@ pub mod appearance {
requested_items_to_remove: Vec<libremetaverse::InventoryItem>,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<(), crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.RemoveFromOutfitAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Threading.CancellationToken)",
)
self.native_remove_from_outfit(requested_items_to_remove, cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.RemovePolicy(LibreMetaverse.Appearance.ICurrentOutfitPolicy)`.
pub fn remove_policy(
&self,
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)",
)
self.native_remove_policy(policy_to_remove)
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.ReplaceOutfitAsync(LibreMetaverse.UUID,System.Threading.CancellationToken)`.
pub async fn replace_outfit(
@@ -23312,36 +23232,27 @@ pub mod appearance {
new_outfit_folder_id: libremetaverse_types::UUID,
cancellation_token: Option<libremetaverse_types::compat::CancellationToken>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.CurrentOutfitFolder.ReplaceOutfitAsync(LibreMetaverse.UUID,System.Threading.CancellationToken)",
)
self.native_replace_outfit(new_outfit_folder_id, cancellation_token)
.await
}
/// C# member: `M:LibreMetaverse.Appearance.CurrentOutfitFolder.ResolveInventoryLink(LibreMetaverse.InventoryItem)`.
pub fn resolve_inventory_link(
&self,
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)",
)
self.native_resolve_inventory_link(item_link)
}
/// C# member: `P:LibreMetaverse.Appearance.CurrentOutfitFolder.COF`.
pub fn cof(&self) -> Option<libremetaverse::InventoryFolder> {
libremetaverse_types::unimplemented_api!(
"P:LibreMetaverse.Appearance.CurrentOutfitFolder.COF"
)
self.native_cof()
}
/// Setter for C# member: `P:LibreMetaverse.Appearance.CurrentOutfitFolder.COF`.
pub fn set_cof(&mut self, value: Option<libremetaverse::InventoryFolder>) {
libremetaverse_types::unimplemented_api!(
"P:LibreMetaverse.Appearance.CurrentOutfitFolder.COF"
)
self.native_set_cof(value)
}
/// C# member: `P:LibreMetaverse.Appearance.CurrentOutfitFolder.MaxClothingLayers`.
pub fn max_clothing_layers(&self) -> i32 {
libremetaverse_types::unimplemented_api!(
"P:LibreMetaverse.Appearance.CurrentOutfitFolder.MaxClothingLayers"
)
crate::current_outfit::MAX_CLOTHING_LAYERS
}
}
@@ -23352,18 +23263,14 @@ pub mod appearance {
&self,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.CanAttach(LibreMetaverse.InventoryItem)",
)
crate::current_outfit::default_policy_decision(item)
}
/// C# member: `M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)`.
fn can_detach(
&self,
item: Option<std::sync::Arc<libremetaverse::InventoryItem>>,
) -> Result<bool, crate::Error> {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.CanDetach(LibreMetaverse.InventoryItem)",
)
crate::current_outfit::default_policy_decision(item)
}
/// 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(
@@ -23374,11 +23281,11 @@ pub mod appearance {
) -> std::pin::Pin<
Box<dyn std::future::Future<Output = Result<(), crate::Error>> + Send + '_>,
> {
Box::pin(async {
libremetaverse_types::not_implemented(
"M:LibreMetaverse.Appearance.ICurrentOutfitPolicy.ReportItemChangeAsync(System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Collections.Generic.List{LibreMetaverse.InventoryItem},System.Threading.CancellationToken)",
)
})
crate::current_outfit::default_policy_report(
added_items,
removed_items,
cancellation_token,
)
}
}