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
}
};
}
}
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
}
};
}
}