private Sprite GetMarkerSprite(string markerOverride, MapMarkerState state) { if (string.IsNullOrEmpty(markerOverride)) { switch (state) { case MapMarkerState.Known: return(KnownIcon); case MapMarkerState.Visited: return(VisitedIcon); } return(null); } Sprite loadedSprite = CoreUtils.LoadResource <Sprite>(string.Format("UI/MapMarkers/{0}/{1}", markerOverride, state.ToString().ToLowerInvariant())); if (loadedSprite == null) { switch (state) { case MapMarkerState.Known: return(KnownIcon); case MapMarkerState.Visited: return(VisitedIcon); } return(null); } else { return(loadedSprite); } }
private void DrawMarkers(Cartographer c) { if (c == null || c.Markers == null || c.Markers.Length < 1) { return; } Dictionary <string, MapMarkerState> markersData = GameState.Instance.MapMarkers; foreach (EditorMapMarker emm in c.Markers) { if (string.IsNullOrEmpty(emm.Id) && !emm.ForceShow) { continue; } MapMarkerState state = emm.ForceShow ? MapMarkerState.Known : markersData.GetOrDefault(emm.Id, MapMarkerState.Unknown); if (state != MapMarkerState.Unknown) { DrawIcon(emm.WorldPoint, GetMarkerSprite(emm.IconOverride, state), c, emm.NiceName); } } }