using System; using System.Collections.Generic; namespace Substrate.Data { /// <summary> /// Provides a common interface for managing additional data resources in a world. /// </summary> public abstract class DataManager { /// <summary> /// Gets or sets the id of the next map to be created. /// </summary> public virtual int CurrentMapId { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } /// <summary> /// Gets an <see cref="IMapManager"/> for managing <see cref="Map"/> data resources. /// </summary> public IMapManager Maps { get { return GetMapManager(); } } /// <summary> /// Gets an <see cref="IMapManager"/> for managing <see cref="Map"/> data resources. /// </summary> /// <returns>An <see cref="IMapManager"/> instance appropriate for the concrete <see cref="DataManager"/> instance.</returns> protected virtual IMapManager GetMapManager () { return null; } /// <summary> /// Saves any metadata required by the world for managing data resources. /// </summary> /// <returns><c>true</c> on success, or <c>false</c> if data could not be saved.</returns> public virtual bool Save () { return true; } } }