Initial HSMappy release (fork of Mappy)

Made-with: Cursor
This commit is contained in:
2026-02-26 03:54:51 -05:00
commit 9659f7a7d1
72 changed files with 6625 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using Dalamud.Interface.Utility;
using KamiLib.Window;
using Lumina.Excel.Sheets;
using Mappy.Classes.SelectionWindowComponents;
using Aetheryte = Lumina.Excel.Sheets.Aetheryte;
namespace Mappy.Windows;
public class MapSelectionWindow : SelectionWindowBase<DrawableOption>
{
protected override bool AllowMultiSelect => false;
protected override float SelectionHeight => 75.0f * ImGuiHelpers.GlobalScale;
public MapSelectionWindow() : base(new Vector2(500.0f, 800.0f), alternativeName: "Map Selection Window")
{
var maps = Service.DataManager.GetExcelSheet<Map>()
.Where(map => map is { PlaceName.RowId: not 0, TerritoryType.ValueNullable.LoadingImage.RowId: not 0, })
.Where(map => map is not { PriorityUI: 0, PriorityCategoryUI: 0 })
.Select(map => new MapDrawableOption { Map = map, })
.OfType<DrawableOption>()
.ToList();
var poi = Service.DataManager.GetSubrowExcelSheet<MapMarker>()
.SelectMany(subRowCollection => subRowCollection)
.Where(marker => marker is { PlaceNameSubtext.RowId: not 0, Icon: 60442, })
.Select(marker => new PoiDrawableOption { MapMarker = marker, })
.OfType<DrawableOption>()
.ToList();
var aetherytes = Service.DataManager.GetExcelSheet<Aetheryte>()
.Where(aetheryte => aetheryte is not { PlaceName.RowId: 0, AethernetName.RowId: 0, AethernetGroup: 0, Map.RowId: 0, })
.Select(aetheryte => new AetheryteDrawableOption { Aetheryte = aetheryte, })
.OfType<DrawableOption>()
.ToList();
SelectionOptions = maps
.Concat(poi)
.Concat(aetherytes)
.ToList();
SelectionOptions.RemoveAll(option => option.Map.RowId is 0);
}
protected override void DrawSelection(DrawableOption option)
{
option.Draw();
}
protected override IEnumerable<string> GetFilterStrings(DrawableOption option) => option.GetFilterStrings();
protected override string GetElementKey(DrawableOption element) => $"{element.Map.RowId}{element.MarkerLocation}{element.ExtraLineShort}{element.ExtraLineLong}";
}