XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEEDToolBox

【WinUI】XFE精英危险工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
using XFEEDToolBox.Core.Navigation;

namespace XFEEDToolBox.Core.Rendering;

/// <summary>Original LocationTypeIcons frame labels and feature symbols from the game's UI.</summary>
public enum GameUiIcon
{
    System,Star,Planet,Belt,Station,POIGeneric,POICombat,Outpost,Settlement,Port,CurrentLocation,Ring,Engineer,POIMission,
    AsteroidBase,Megaship,PlotRoute,Mission,Bernal,Orbis,Coriolis,NavBeacon,TouristBeacon,ConflictZone,Resource,Codex,
    POIMegaship,Installation,LandablePlanet,StarterZone,FederationCapital,EmpireCapital,FleetCarrier,DryDock,
    POIOnFoot,AtmospherePlanet,LandableAtmospherePlanet,SettlementAgricultural,SettlementIndustrial,SettlementMining,
    SettlementResearch,SettlementTourist,SettlementMilitary,DecommissionedCarrier,JumpingCarrier,SettlementOdyssey,
    SettlementConflictZone,ThargoidSystem,SquadronCarrier,DecommissionedSquadronCarrier,Dodec,
    FeatureSummary,FeatureMaterials,FeatureEngineer,FeatureOutfitting,FeatureRoute,FeatureGalaxyMap,FeatureSystemMap,
    FeaturePlanetMap,FeatureFilter,FeatureCommodity,OutfittingUtility,OutfittingOptional,OutfittingHardpoint,OutfittingCore,SelectedDestination
}

/// <summary>One resource entry point for game concepts. UI chrome does not define substitute game glyphs.</summary>
public static class GameUiIcons
{
    public static string Asset(GameUiIcon icon)
        =>"ms-appx:///Assets/GameIcons/"+(Enum.IsDefined(icon)?icon:GameUiIcon.POIGeneric)+".svg";

    public static GameUiIcon ForLocation(SystemLocation location)
    {
        // Native catalogue kinds and the Scaleform LocationType enum are different
        // domains. Never use a native kind as an index into the exported timeline.
        if(location.NativeKind==23||location.Name.Equals("$MULTIPLAYER_SCENARIO42_TITLE;",StringComparison.OrdinalIgnoreCase)
            ||location.Name.Equals("$NavBeacon_Name;",StringComparison.OrdinalIgnoreCase)||location.DisplayName=="导航信标")return GameUiIcon.NavBeacon;
        return location.NativeKind switch
        {
            14=>GameUiIcon.FleetCarrier,15=>GameUiIcon.SquadronCarrier,26=>GameUiIcon.POIMegaship,
            11=>GameUiIcon.Megaship,30 or 31 or 32 or 33 or 35 or 36 or 38=>GameUiIcon.Settlement,
            _=>location.Category switch
            {
                SystemLocationCategory.Star=>GameUiIcon.Star,SystemLocationCategory.Asteroid=>GameUiIcon.Belt,
                SystemLocationCategory.Planet=>GameUiIcon.Planet,SystemLocationCategory.LandablePlanet=>GameUiIcon.LandablePlanet,
                SystemLocationCategory.Settlement=>GameUiIcon.Settlement,SystemLocationCategory.Station=>GameUiIcon.Station,
                SystemLocationCategory.Carrier=>GameUiIcon.FleetCarrier,_=>GameUiIcon.POIGeneric
            }
        };
    }
}