/// <summary> /// Initializes a new instance of the <see cref="Level"/> class. /// </summary> /// <param name="name">The name of the level</param> /// <param name="controls">The controls scheme</param> /// <param name="viewport">The viewport for the cameras</param> public Level(String filepath, IControlScheme controls, Viewport viewport) { Filepath = filepath; _mControls = controls; MCam = new Camera(viewport); _mBounds = viewport.Bounds; _mScreenRect = viewport.TitleSafeArea; _mRails = new List<EntityInfo>(); _mObjects = new List<GameObject>(); _mCollected = new List<GameObject>(); _mRemoveCollected = new List<GameObject>(); _mActiveAnimations = new Dictionary<Vector2, AnimatedSprite>(); _mTrigger = new List<Trigger>(); _mPhysicsEnvironment = new PhysicsEnvironment(); _mTimerStar = _mDeathStar = _mTimerStar = 0; _bw = new BackgroundWorker { WorkerReportsProgress = false, WorkerSupportsCancellation = false }; _bw.DoWork += UpdateParticles; }