using System;
namespace Framework.Services {
/// In what scope a service will live
public enum Scope {
/// The instance remains around until the scene changes
///
/// Useful for things that should be reset when the scene changes, such
/// as enemy coordinators, scene event managers, crowd directors, etc.
///
Scene = 0,
/// The instance remains for one playthrough
///
/// This would be used for components that need to remain available when
/// moving between scenes, but get destroyed when quitting to the main
/// menu. A typical case would be a component that stores the inventory
/// of the player.
///
Session = 1,
/// One instance that exists for as long as the game runs
///
/// For game-wide services that are kept around regardless of what the player
/// does. Components storing the game's key bindings, achievements and such
/// would be ideal candidates for this.
///
Global = 2
}
} // namespace Framework.Services