public Landmark(RadegastInstance instance, InventoryLandmark landmark) { this.landmark = landmark; Init(instance); client.Assets.RequestAsset(landmark.AssetUUID, landmark.AssetType, true, Assets_OnAssetReceived); }
internal InvLandmark(PluginControl pc, InventoryLandmark a) : base(pc) { asset = a; }
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); } }