コード例 #1
0
ファイル: Landmark.cs プロジェクト: TsengSR/Radegast
 public Landmark(RadegastInstance instance, InventoryLandmark landmark)
 {
     this.landmark = landmark;
     Init(instance);
     client.Assets.RequestAsset(landmark.AssetUUID, landmark.AssetType, true, Assets_OnAssetReceived);
 }
コード例 #2
0
 internal InvLandmark(PluginControl pc, InventoryLandmark a)
     : base(pc)
 {
     asset = a;
 }
コード例 #3
0
        public override void Execute(string name, string[] cmdArgs, ConsoleWriteLine WriteLine)
        {
            wl = WriteLine;
            if (cmdArgs.Length == 0)
            {
                PrintUsage(); return;
            }

            if (cmdArgs[0] == "help")
            {
                PrintFullUsage();
                return;
            }

            InventoryFolder folder = (InventoryFolder)Inv.GetContents(Inv.RootFolder).Find(b => b.Name == FolderName && b is InventoryFolder);

            if (folder == null)
            {
                Client.Inventory.CreateFolder(Inv.RootFolder.UUID, FolderName);
                WriteLine(@"Could not find ""{0}"" folder in the inventory, creating one.", FolderName);
                return;
            }

            List <InventoryLandmark> landmarks = new List <InventoryLandmark>();

            Inv.GetContents(folder)
            .FindAll(b => b is InventoryLandmark)
            .ForEach(l => { landmarks.Add((InventoryLandmark)l); });

            if (landmarks.Count == 0)
            {
                WriteLine(@"""{0}"" folder is empty, nothing to do.", FolderName);
                return;
            }

            string cmd = string.Join(" ", cmdArgs);

            landmarks.Sort(new LMSorter());

            if (cmd == "list")
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("Landmarks:");
                for (int i = 0; i < landmarks.Count; i++)
                {
                    sb.AppendLine(string.Format("{0}. {1}", i + 1, landmarks[i].Name));
                }
                WriteLine(sb.ToString());
                return;
            }

            int lmnr;

            if (int.TryParse(cmd, out lmnr))
            {
                if (lmnr >= 1 && lmnr <= landmarks.Count)
                {
                    WriteLine("Teleporting to {0}", landmarks[lmnr - 1].Name);
                    Client.Self.RequestTeleport(landmarks[lmnr - 1].AssetUUID);
                }
                else
                {
                    WriteLine("Valid landmark number is between 1 and {0}", landmarks.Count);
                }
                return;
            }

            InventoryLandmark lm = landmarks.Find(l => l.Name.ToLower().StartsWith(cmd.ToLower()));

            if (lm == null)
            {
                WriteLine("Could not find landmark {0}, try {1}tp list", cmd, CommandsManager.CmdPrefix);
            }
            else
            {
                WriteLine("Teleporting to {0}", lm.Name);
                Client.Self.RequestTeleport(lm.AssetUUID);
            }
        }