using Microsoft.Xna.Framework;
using RecrownedAthenaeum.Camera;
using RecrownedAthenaeum.Render;
using RecrownedAthenaeum.ScreenSystem;
using System;
namespace RecrownedAthenaeum
{
///
/// All variables here should be for RecrownedAthenaeum to use when needed and thus eliminates unessecary passing.
///
public static class Configuration
{
private static GraphicsDeviceManager graphicsDeviceManager;
///
/// The graphics device that will be used by default.
///
public static GraphicsDeviceManager GraphicsDeviceManager { set { graphicsDeviceManager = value; } get { if (graphicsDeviceManager == null) throw new InvalidOperationException("Graphics device manager property requested as substitute but configuration does not have one."); return graphicsDeviceManager; } }
private static Camera2D camera2D;
///
/// 2D camera to be used by default.
///
public static Camera2D Camera2D { set { camera2D = value; } get { if (camera2D == null) throw new InvalidOperationException("2D camera property requested as substitute but configuration does not have one."); return camera2D; } }
private static SpriteBatchSettings? beginBatchFunction;
///
/// The begin sprite batch to use for custom begins and consistency.
///
public static SpriteBatchSettings? spriteBatchSettings { set { beginBatchFunction = value.Value; } get { if (!beginBatchFunction.HasValue) throw new InvalidOperationException("No default begin batch has been set yet has been requested."); return beginBatchFunction; } }
}
}