Esempio n. 1
0
 private void Append(StringBuilder builder, UserSettings.ByteSettingName setName)
 {
     builder.Append(setName);
     builder.Append('=');
     builder.Append(UserSettings.GetSetting(setName));
     builder.AppendLine();
 }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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++;
            }
        }