static ResourceManager()
 {
     Ship_Game.ResourceManager.TextureDict = new Dictionary<string, Texture2D>();
     Ship_Game.ResourceManager.weapon_serializer = new XmlSerializer(typeof(Weapon));
     Ship_Game.ResourceManager.serializer_shipdata = new XmlSerializer(typeof(ShipData));
     Ship_Game.ResourceManager.ShipsDict = new Dictionary<string, Ship>();
     Ship_Game.ResourceManager.RoidsModels = new Dictionary<int, Model>();
     Ship_Game.ResourceManager.JunkModels = new Dictionary<int, Model>();
     Ship_Game.ResourceManager.TechTree = new Dictionary<string, Technology>(StringComparer.InvariantCultureIgnoreCase);
     Ship_Game.ResourceManager.Encounters = new List<Encounter>();
     Ship_Game.ResourceManager.BuildingsDict = new Dictionary<string, Building>();
     Ship_Game.ResourceManager.GoodsDict = new Dictionary<string, Good>();
     Ship_Game.ResourceManager.WeaponsDict = new Dictionary<string, Weapon>();
     Ship_Game.ResourceManager.ShipModulesDict = new Dictionary<string, ShipModule>();
     Ship_Game.ResourceManager.ToolTips = new Dictionary<int, ToolTip>();
     Ship_Game.ResourceManager.ProjTextDict = new Dictionary<string, Texture2D>();
     Ship_Game.ResourceManager.ProjectileMeshDict = new Dictionary<string, ModelMesh>();
     Ship_Game.ResourceManager.ProjectileModelDict = new Dictionary<string, Model>();
     Ship_Game.ResourceManager.Initialized = false;
     Ship_Game.ResourceManager.WhichModPath = "";
     Ship_Game.ResourceManager.RandomItemsList = new List<RandomItem>();
     Ship_Game.ResourceManager.TroopsDict = new Dictionary<string, Troop>();
     Ship_Game.ResourceManager.DDDict = new Dictionary<string, DiplomacyDialog>();
     Ship_Game.ResourceManager.LanguageDict = new Dictionary<string, LocalizationFile>();
     Ship_Game.ResourceManager.LanguageFile = new LocalizationFile();
     Ship_Game.ResourceManager.ArtifactsDict = new Dictionary<string, Artifact>();
     Ship_Game.ResourceManager.EventsDict = new Dictionary<string, ExplorationEvent>();
     Ship_Game.ResourceManager.BigNebulas = new List<Texture2D>();
     Ship_Game.ResourceManager.MedNebulas = new List<Texture2D>();
     Ship_Game.ResourceManager.SmallNebulas = new List<Texture2D>();
     Ship_Game.ResourceManager.SmallStars = new List<Texture2D>();
     Ship_Game.ResourceManager.MediumStars = new List<Texture2D>();
     Ship_Game.ResourceManager.LargeStars = new List<Texture2D>();
     Ship_Game.ResourceManager.rt = new RacialTraits();
     Ship_Game.ResourceManager.Empires = new List<EmpireData>();
     Ship_Game.ResourceManager.HeaderSerializer = new XmlSerializer(typeof(HeaderData));
     Ship_Game.ResourceManager.ModSerializer = new XmlSerializer(typeof(ModInformation));
     Ship_Game.ResourceManager.ModelDict = new Dictionary<string, Model>();
     Ship_Game.ResourceManager.EconSerializer = new XmlSerializer(typeof(EconomicResearchStrategy));
     Ship_Game.ResourceManager.HullsDict = new Dictionary<string, ShipData>(StringComparer.InvariantCultureIgnoreCase);
     Ship_Game.ResourceManager.FlagTextures = new List<KeyValuePair<string, Texture2D>>();
     //Added by McShooterz
     Ship_Game.ResourceManager.HostileFleets = new HostileFleets();
     Ship_Game.ResourceManager.ShipNames = new ShipNames();
     Ship_Game.ResourceManager.SoundEffectDict = new Dictionary<string, SoundEffect>();
     Ship_Game.ResourceManager.AgentMissionData = new AgentMissionData();
     Ship_Game.ResourceManager.MainMenuShipList = new MainMenuShipList();
     Ship_Game.ResourceManager.ShipRoles = new Dictionary<string, ShipRole>();
     Ship_Game.ResourceManager.HullBonuses = new Dictionary<string, HullBonus>();
     Ship_Game.ResourceManager.PlanetaryEdicts = new Dictionary<string, PlanetEdict>();
     Ship_Game.ResourceManager.OffSet = 0;
 }
 public RaceDesignScreen(GraphicsDevice device, MainMenuScreen mmscreen)
 {
     this.mmscreen = mmscreen;
     base.IsPopup = true;
     this.rt = ResourceManager.GetRaceTraits();
     base.TransitionOnTime = TimeSpan.FromSeconds(1);
     base.TransitionOffTime = TimeSpan.FromSeconds(0.25);
     foreach (RacialTrait t in this.rt.TraitList)
     {
         TraitEntry te = new TraitEntry()
         {
             trait = t
         };
         AllTraits.Add(te);
     }
     GlobalStats.Statreset();
 }
        public static RacialTraits GetRaceTraits()
        {
            //Added by McShooterz: mod folder support for RacialTraits folder
            FileInfo[] textList = Ship_Game.ResourceManager.GetFilesFromDirectory(Directory.Exists(string.Concat(Ship_Game.ResourceManager.WhichModPath, "/RacialTraits")) ? string.Concat(Ship_Game.ResourceManager.WhichModPath, "/RacialTraits") : "Content/RacialTraits");
            XmlSerializer serializer1 = new XmlSerializer(typeof(RacialTraits));
            FileInfo[] fileInfoArray = textList;
            for (int i = 0; i < (int)fileInfoArray.Length; i++)
            {
                FileStream stream = fileInfoArray[i].OpenRead();
                RacialTraits data = null;
                try
                {
                     data = (RacialTraits)serializer1.Deserialize(stream);
                }
                catch (Exception e)
                {
                    ReportLoadingError(fileInfoArray[i], "GetRaceTraits", e);
                }
                //stream.Close();
                stream.Dispose();
                if (data == null)
                    continue;

                foreach(RacialTrait trait in data.TraitList)
                {
                    if (Localizer.LocalizerDict.ContainsKey(trait.TraitName + OffSet))
                    {
                        trait.TraitName += OffSet;
                        Localizer.used[trait.TraitName] = true;
                    }
                    if (Localizer.LocalizerDict.ContainsKey(trait.Description + OffSet))
                    {
                        trait.Description += OffSet;
                        Localizer.used[trait.Description] = true;
                    }
                }
                Ship_Game.ResourceManager.rt = data;
            }
            textList = null;
            return Ship_Game.ResourceManager.rt;
        }