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); }