public static void UpgradeWorld(string directoryName)
        {
            WorldInfo worldInfo = WorldsManager.GetWorldInfo(directoryName);

            if (worldInfo == null)
            {
                object[] objArray1 = new object[] { directoryName };
                throw new InvalidOperationException(string.Format("Cannot determine version of world at \"{0}\"", (object[])objArray1));
            }
            if (worldInfo.SerializationVersion != SerializationVersion)
            {
                object[] objArray2 = new object[] { SerializationVersion };
                ProgressManager.UpdateProgress(string.Format("Upgrading World To {0}", (object[])objArray2), 0f);
                List <VersionConverter> list = FindTransform(worldInfo.SerializationVersion, SerializationVersion, (IEnumerable <VersionConverter>)m_versionConverters, 0);
                if (list == null)
                {
                    object[] objArray3 = new object[] { worldInfo.SerializationVersion, SerializationVersion };
                    throw new InvalidOperationException(string.Format("Cannot find conversion path from version \"{0}\" to version \"{1}\"", (object[])objArray3));
                }
                foreach (VersionConverter converter in list)
                {
                    object[] objArray4 = new object[] { converter.SourceVersion, converter.TargetVersion };
                    Log.Information(string.Format("Upgrading world version \"{0}\" to \"{1}\".", (object[])objArray4));
                    converter.ConvertWorld(directoryName);
                }
                WorldInfo info2 = WorldsManager.GetWorldInfo(directoryName);
                if (info2.SerializationVersion != SerializationVersion)
                {
                    object[] objArray5 = new object[] { SerializationVersion, info2.SerializationVersion };
                    throw new InvalidOperationException(string.Format("Upgrade produced invalid project version. Expected \"{0}\", found \"{1}\".", (object[])objArray5));
                }
                AnalyticsParameter[] parameters = new AnalyticsParameter[] { new AnalyticsParameter("SourceVersion", worldInfo.SerializationVersion), new AnalyticsParameter("TargetVersion", SerializationVersion) };
                AnalyticsManager.LogEvent("[VersionConverter] Upgrade world", parameters);
            }
        }
 public static void Initialize()
 {
     LastLaunchedVersion = SettingsManager.LastLaunchedVersion;
     SettingsManager.LastLaunchedVersion = Version;
     if (Version != LastLaunchedVersion)
     {
         AnalyticsParameter[] parameters = new AnalyticsParameter[] { new AnalyticsParameter("LastVersion", LastLaunchedVersion), new AnalyticsParameter("CurrentVersion", Version) };
         AnalyticsManager.LogEvent("[VersionsManager] Upgrade game", parameters);
     }
 }