예제 #1
0
        public Aetheryte?GetClosestAetheryte()
        {
            var ret = GetValidAetheryte();

            if (ret == null && (Nodes?.Territory?.Aetherytes.Count ?? 0) > 0)
            {
                return(Nodes !.Territory !.Aetherytes.First());
            }

            return(ret);
        }
예제 #2
0
 public override void ReTree()
 {
     ImGui.PushID(this.UUID);
     if (ImGui.TreeNode(this.UUID, this.Title))
     {
         ImGui.InputText("Title", ref this.Title, 0xF);
         if (
             ImGui.BeginCombo(
                 "Teleport", Dalamud.PluginInterface.Sanitizer.Sanitize(Aetherytes.GetRow(this.TelepoID).PlaceName.Value?.Name.ToString())
                 )
             )
         {
             foreach (var itm in Dalamud.AetheryteList
                      .OrderBy(x => Aetherytes.GetRow(x.AetheryteData.GameData.RowId).Territory.Value.PlaceNameRegion.Row)
                      .ThenBy(x => Aetherytes.GetRow(x.AetheryteData.GameData.RowId).PlaceName.Row)
                      )
             {
                 if (
                     ImGui.Selectable(
                         Dalamud.PluginInterface.Sanitizer.Sanitize(Aetherytes.GetRow(itm.AetheryteData.GameData.RowId).PlaceName.Value?.Name.ToString())
                         )
                     )
                 {
                     this.TelepoID    = itm.AetheryteId;
                     this.TelepoSubID = itm.SubIndex;
                     this.IsHouse     = itm.IsSharedHouse || itm.IsAppartment || itm.Ward != 0 || itm.Plot != 0;
                 }
                 if (itm.AetheryteId == this.TelepoID && itm.SubIndex == this.TelepoSubID)
                 {
                     ImGui.SetItemDefaultFocus();
                 }
             }
             ImGui.EndCombo();
         }
     }
     ImGui.PopID();
 }