Client LuaCsForBarotrauma
BarotraumaClient/ClientSource/Characters/AI/Objectives/AIObjective.cs
1 using Microsoft.Xna.Framework;
2 
3 namespace Barotrauma
4 {
5  abstract partial class AIObjective
6  {
7  public static Color ObjectiveIconColor => Color.LightGray;
8 
9  public static Sprite GetSprite(Identifier identifier, Identifier option, Entity targetEntity)
10  {
11  if (identifier == Identifier.Empty)
12  {
13  return null;
14  }
15  if (OrderPrefab.Prefabs.ContainsKey(identifier))
16  {
17  OrderPrefab orderPrefab = OrderPrefab.Prefabs[identifier];
18  if (option != Identifier.Empty && orderPrefab.OptionSprites.TryGetValue(option, out var optionSprite))
19  {
20  return optionSprite;
21  }
22  if (targetEntity is Item targetItem && targetItem.Prefab.MinimapIcon != null)
23  {
24  return targetItem.Prefab.MinimapIcon;
25  }
26  return orderPrefab.SymbolSprite;
27  }
28  return GUIStyle.GetComponentStyle($"{identifier}objectiveicon")?.GetDefaultSprite();
29  }
30 
31  public Sprite GetSprite()
32  {
33  return GetSprite(Identifier, Option, (this as AIObjectiveOperateItem)?.OperateTarget);
34  }
35  }
36 }
static Sprite GetSprite(Identifier identifier, Identifier option, Entity targetEntity)
readonly Sprite SymbolSprite
Definition: Order.cs:55
readonly ImmutableDictionary< Identifier, Sprite > OptionSprites
Definition: Order.cs:111
static readonly PrefabCollection< OrderPrefab > Prefabs
Definition: Order.cs:41