Пример #1
0
        void Assets_OnAssetReceived(AssetDownload transfer, Asset asset)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new MethodInvoker(delegate() { Assets_OnAssetReceived(transfer, asset); }));
                return;
            }

            if (!transfer.Success)
            {
                tlblStatus.Text = "Download failed";
                return;
            }

            tlblStatus.Text  = "OK";
            tbtnPlay.Enabled = true;

            gestureAsset = (AssetGesture)asset;
            if (gestureAsset.Decode())
            {
                for (int i = 0; i < gestureAsset.Sequence.Count; i++)
                {
                    rtbInfo.AppendText(gestureAsset.Sequence[i].ToString().Trim() + Environment.NewLine);
                }
            }
        }
Пример #2
0
        protected override string GuessAssetName()
        {
            if (Item != null)
            {
                return(Item.Name);
            }
            String s = "";

            if (_ServerAsset == null)
            {
                return(null);
            }
            Decode(ServerAsset);
            AssetGesture gestureAsset = GetGesture();

            for (int i = 0; i < gestureAsset.Sequence.Count; i++)
            {
                s += (gestureAsset.Sequence[i].ToString().Trim() + Environment.NewLine);
            }
            if (!string.IsNullOrEmpty(s))
            {
                return(s);
            }
            AssetGesture S = (AssetGesture)ServerAsset;

            AssetData = S.AssetData;
            return(UnknownName);
        }
Пример #3
0
        private void tbtnReupload_Click(object sender, EventArgs e)
        {
            AssetGesture  gestureAsset = GetGesture();
            GridClient    client       = WorldObjects.GridMaster.client;
            InventoryItem gesture      = Item;

            UpdateStatus("Creating new item...");

            client.Inventory.RequestCreateItem(gesture.ParentUUID, "Copy of " + gesture.Name, gesture.Description, AssetType.Gesture, UUID.Random(), InventoryType.Gesture, PermissionMask.All,
                                               delegate(bool success, InventoryItem item)
            {
                if (success)
                {
                    UpdateStatus("Uploading data...");

                    client.Inventory.RequestUploadGestureAsset(gestureAsset.AssetData, item.UUID,
                                                               delegate(bool assetSuccess, string status, UUID itemID, UUID assetID)
                    {
                        if (assetSuccess)
                        {
                            gesture.AssetUUID = assetID;
                            UpdateStatus("OK");
                        }
                        else
                        {
                            UpdateStatus("Asset failed");
                        }
                    }
                                                               );
                }
                else
                {
                    UpdateStatus("Inv. failed");
                }
            }
                                               );
        }
Пример #4
0
        protected override List <SimAsset> GetParts()
        {
            AssetGesture gestureAsset = GetGesture();

            //            StringBuilder sb = new StringBuilder();
            //sb.Append("2\n");
            if (gestureAsset == null)
            {
                return(null);
            }
            Name = gestureAsset.Trigger;
            //sb.Append(TriggerKey + "\n");
            //sb.Append(TriggerKeyMask + "\n");
            //sb.Append(Trigger + "\n");
            Name = gestureAsset.ReplaceWith;//sb.Append(ReplaceWith + "\n");

            List <GestureStep> Sequence = gestureAsset.Sequence;
            int count = 0;

            if (Sequence != null)
            {
                count = Sequence.Count;
            }
            List <SimAsset> parts = new List <SimAsset>(count);

            //sb.Append(count + "\n");
            _Length = 0;
            for (int i = 0; i < count; i++)
            {
                GestureStep step = Sequence[i];
                // sb.Append((int)step.GestureStepType + "\n");
                SimAsset asset;

                switch (step.GestureStepType)
                {
                case GestureStepType.EOF:
                    goto Finish;

                case GestureStepType.Animation:
                    GestureStepAnimation animstep = (GestureStepAnimation)step;
                    asset      = SimAssetStore.FindOrCreateAsset(animstep.ID, AssetType.Animation);
                    asset.Name = animstep.Name;
                    if (animstep.AnimationStart)
                    {
                        parts.Add(asset);
                        //                            sb.Append("0\n");
                        _Length += asset.Length;
                    }
                    else
                    {
                        //             sb.Append("1\n");
                    }
                    break;

                case GestureStepType.Sound:
                    GestureStepSound soundstep = (GestureStepSound)step;
                    asset      = SimAssetStore.FindOrCreateAsset(soundstep.ID, AssetType.Sound);
                    asset.Name = soundstep.Name;
                    parts.Add(asset);
                    _Length += asset.Length;
                    break;

                case GestureStepType.Chat:
                    GestureStepChat chatstep = (GestureStepChat)step;
                    Name = chatstep.Text;
                    //sb.Append(chatstep.Text + "\n");
                    //sb.Append("0\n");
                    _Length += 10;
                    break;

                case GestureStepType.Wait:
                    GestureStepWait waitstep = (GestureStepWait)step;
                    //sb.AppendFormat("{0:0.000000}\n", waitstep.WaitTime);
                    int waitflags = 0;

                    if (waitstep.WaitForTime)
                    {
                        waitflags |= 0x01;
                        _Length   += waitstep.WaitTime;
                    }
                    if (waitstep.WaitForAnimation)
                    {
                        waitflags |= 0x02;
                        _Length   += 10;
                    }
                    //sb.Append(waitflags + "\n");
                    break;
                }
            }
Finish:

            if (parts.Count == 1)
            {
                SimAsset A = parts[0];
                if (A is SimAnimation)
                {
                    AnimationGestures[A.AssetID] = this;
                    if (A.Item == null)
                    {
                        A.Item = Item;
                    }
                }
            }
            return(parts);
        }
Пример #5
0
        public static Asset CreateAssetWrapper(AssetType type, UUID uuid, byte[] data)
        {
            Asset asset;

            switch (type)
            {
            case AssetType.Animation:
                asset = new AssetAnimation(uuid, data);
                break;

            case AssetType.Gesture:
                asset = new AssetGesture(uuid, data);
                break;

            case AssetType.Landmark:
                asset = new AssetLandmark(uuid, data);
                break;

            case AssetType.Bodypart:
                asset = new AssetBodypart(uuid, data);
                break;

            case AssetType.Clothing:
                asset = new AssetClothing(uuid, data);
                break;

            case AssetType.LSLBytecode:
                asset = new AssetScriptBinary(uuid, data);
                break;

            case AssetType.LSLText:
                asset = new AssetScriptText(uuid, data);
                break;

            case AssetType.Notecard:
                asset = new AssetNotecard(uuid, data);
                break;

            case AssetType.Sound:
                asset = new AssetSound(uuid, data);
                break;

            case AssetType.Texture:
                asset = new AssetTexture(uuid, data);
                break;

#if COGBOT_LIBOMV
            case AssetType.CallingCard:
                asset = new AssetCallingCard(uuid, data);
                break;
#endif
            default:
#if COGBOT_LIBOMV
                asset = new AssetMutable(type, uuid, data);
                Logger.Log("[OarFile] Not Implemented asset type " + type, Helpers.LogLevel.Error);
#else
                throw new NotImplementedException("Unimplemented asset type: " + type);
#endif
                break;
            }
            return(asset);
        }