示例#1
0
        /// <summary>
        /// Handles any addition or update to gesture items in the inventory.
        /// </summary>
        /// <param name="gesture">Gesture that was added or updated.</param>
        private void UpdateInventoryGesture(InventoryGesture gesture)
        {
            var client = RadegastInstance.GlobalInstance.Client;

            client.Assets.RequestAsset(gesture.AssetUUID, AssetType.Gesture, false, (_, asset) =>
            {
                if (!(asset is AssetGesture assetGesture))
                {
                    return;
                }

                if (!assetGesture.Decode())
                {
                    return;
                }

                if (!Gestures.ContainsKey(gesture.UUID))
                {
                    Gestures.Add(gesture.UUID, new GestureTrigger());
                }

                if (Gestures.TryGetValue(gesture.UUID, out var existingGestureTrigger))
                {
                    existingGestureTrigger.TriggerLower = assetGesture.Trigger.ToLower();
                    existingGestureTrigger.Replacement  = assetGesture.ReplaceWith;
                    existingGestureTrigger.AssetID      = assetGesture.AssetID;
                }
            });