private void Append(StringBuilder builder, UserSettings.ByteSettingName setName) { builder.Append(setName); builder.Append('='); builder.Append(UserSettings.GetSetting(setName)); builder.AppendLine(); }
private bool CanDisplay(LastSeen seen, out UserSettings.ByteSettingName settingName) { switch (seen.Type) { case LastSeen.EntityType.Character: case LastSeen.EntityType.Grid: switch (myPlayer.IdentityId.getRelationsTo(seen.Entity)) { case ExtensionsRelations.Relations.Enemy: case ExtensionsRelations.Relations.NoOwner: settingName = UserSettings.ByteSettingName.EnemiesOnHUD; return(true); case ExtensionsRelations.Relations.Neutral: settingName = UserSettings.ByteSettingName.NeutralOnHUD; return(true); case ExtensionsRelations.Relations.Faction: settingName = UserSettings.ByteSettingName.FactionOnHUD; return(true); case ExtensionsRelations.Relations.Owner: settingName = UserSettings.ByteSettingName.OwnerOnHUD; return(true); default: settingName = UserSettings.ByteSettingName.EnemiesOnHUD; return(false); } case LastSeen.EntityType.Missile: settingName = UserSettings.ByteSettingName.MissileOnHUD; return(true); default: settingName = UserSettings.ByteSettingName.EnemiesOnHUD; return(false); } }
private void UpdateGPS(UserSettings.ByteSettingName setting, GpsData relateData) { relateData.distanceSeen.Sort(); int index; for (index = 0; index < relateData.distanceSeen.Count && index < relateData.entities.Count; index++) { Log.DebugLog("index(" + index + ") >= relateData.distanceSeen.Count(" + relateData.distanceSeen.Count + ")", Logger.severity.FATAL, condition: index >= relateData.distanceSeen.Count); LastSeen seen = relateData.distanceSeen[index].Seen; // we do not display if it is broadcasting so there is no reason to use LastSeen.HostileName() string name; MyRelationsBetweenPlayerAndBlock seRelate; switch (setting) { case UserSettings.ByteSettingName.FactionOnHUD: name = seen.Entity.DisplayName; seRelate = MyRelationsBetweenPlayerAndBlock.FactionShare; break; case UserSettings.ByteSettingName.OwnerOnHUD: name = seen.Entity.DisplayName; seRelate = MyRelationsBetweenPlayerAndBlock.Owner; break; case UserSettings.ByteSettingName.MissileOnHUD: name = "Missile " + index; seRelate = MyRelationsBetweenPlayerAndBlock.Enemies; break; case UserSettings.ByteSettingName.NeutralOnHUD: name = "Neutral " + index; seRelate = MyRelationsBetweenPlayerAndBlock.Neutral; break; case UserSettings.ByteSettingName.EnemiesOnHUD: name = "Enemy " + index; seRelate = MyRelationsBetweenPlayerAndBlock.Enemies; break; default: Log.AlwaysLog("case not implemented: " + setting, Logger.severity.ERROR); continue; } MyEntity entity = relateData.entities[index]; if (entity != null) { if (entity != seen.Entity) { Log.DebugLog("removing marker: " + entity.nameWithId()); MyHud.LocationMarkers.UnregisterMarker(entity); } else if (MyHud.LocationMarkers.MarkerEntities.ContainsKey(entity)) { continue; } } entity = (MyEntity)seen.Entity; relateData.entities[index] = entity; Log.DebugLog("adding marker: " + entity.nameWithId()); MyHud.LocationMarkers.RegisterMarker(entity, new MyHudEntityParams() { FlagsEnum = MyHudIndicatorFlagsEnum.SHOW_ALL, Text = new StringBuilder(name), OffsetText = true, TargetMode = seRelate }); } // remove remaining while (index < relateData.entities.Count) { MyEntity entity = relateData.entities[index]; if (entity != null) { Log.DebugLog("removing marker: " + entity.nameWithId()); MyHud.LocationMarkers.UnregisterMarker(entity); relateData.entities[index] = null; } index++; } }