private mg_jr_Level LoadLevelAfterExisting(mg_jr_LevelDefinition _pattern)
        {
            _pattern.UseDeffinition();
            GameObject  gameObject   = new GameObject(string.Concat("mg_jr_Level_", _pattern.EnvironmentType, "_", _pattern.Difficulty));
            mg_jr_Level mg_jr_Level2 = gameObject.AddComponent <mg_jr_Level>();

            mg_jr_Level2.LevelDefinition = _pattern;
            EnvironmentVariant variant = m_environmentManager.CurrentEnvironment.Variant;

            foreach (mg_jr_LevelDefinition.ObjectSpawnDefinition objectSpawnDefinition in _pattern.ObjectSpawnDefinitions)
            {
                GameObject pooledResource = m_resources.GetPooledResource(objectSpawnDefinition.XmlResourceName, variant);
                pooledResource.transform.parent   = gameObject.transform;
                pooledResource.transform.position = objectSpawnDefinition.PositionInLevel;
                pooledResource.name = pooledResource.name + "_" + objectSpawnDefinition.Name;
            }
            Vector3 position;

            if (m_activeLevels.Count == 0)
            {
                float num = _pattern.Size.y * 0.5f - Camera.main.orthographicSize;
                position = new Vector3(Camera.main.RightEdgeInWorld(), Camera.main.TopEdgeInWorld() + num, 0f);
            }
            else
            {
                mg_jr_Level value = m_activeLevels.Last.Value;
                position = value.TopRightCornerInWorld();
            }
            gameObject.transform.position = position;
            gameObject.transform.parent   = base.transform;
            m_activeLevels.AddLast(mg_jr_Level2);
            return(mg_jr_Level2);
        }