SEModAPIInternal.API.Common.FactionsManager.RefreshFactions C# (CSharp) Method

RefreshFactions() protected method

protected RefreshFactions ( ) : void
return void
        protected void RefreshFactions( )
        {
            List<MyObjectBuilder_Faction> factionList = GetSubTypeEntity( ).Factions;

            //Cleanup missing factions
            List<Faction> factionsToRemove = new List<Faction>( );
            foreach ( Faction faction in m_factions.Values )
            {
                bool foundMatch = false;
                foreach ( MyObjectBuilder_Faction entry in factionList )
                {
                    if ( entry.FactionId == faction.Id )
                    {
                        foundMatch = true;
                        break;
                    }
                }
                if ( foundMatch )
                    continue;

                factionsToRemove.Add( faction );
            }
            foreach ( Faction faction in factionsToRemove )
            {
                m_factions.Remove( faction.Id );
            }

            //Add new factions
            foreach ( MyObjectBuilder_Faction faction in factionList )
            {
                if ( m_factions.ContainsKey( faction.FactionId ) )
                    continue;

                Faction newFaction = new Faction( faction );
                m_factions.Add( newFaction.Id, newFaction );
            }
        }