/// <summary>Initialise the game.</summary> /// <param name="engine"></param> /// <param name="guid">The <see cref="Guid"/> that uniquely identifies the <see cref="Game"/> or <c>null</c> to use the <see cref="Guid"/> of this <see cref="Type"/>. If a given <see cref="Game"/> class supports multiple games, the <see cref="Guid"/> must be unique.</param> public Game(Engine engine, Guid? guid) : this((AlexandriaPlugin)engine.Plugin, engine, guid) { }
/// <summary>Initialise the game.</summary> /// <param name="plugin"></param> /// <param name="engine"></param> /// <param name="guid">The <see cref="Guid"/> that uniquely identifies the <see cref="Game"/> or <c>null</c> to use the <see cref="Guid"/> of this <see cref="Type"/>. If a given <see cref="Game"/> class supports multiple games, the <see cref="Guid"/> must be unique.</param> Game(AlexandriaPlugin plugin, Engine engine, Guid? guid) : base(plugin) { this.engine = engine; Guid = guid.GetValueOrDefault(GetType().GUID); }
/// <summary>Add an engine to this plugin.</summary> /// <param name="engine">The engine to add.</param> /// <exception cref="ArgumentNullException"><paramref name="engine"/> is <c>null</c>.</exception> /// <exception cref="ArgumentException"><paramref name="engine"/> is not part of this <see cref="AlexandriaPlugin"/>.</exception> /// <exception cref="ArgumentException"><paramref name="engine"/> is already in this <see cref="AlexandriaPlugin"/>.</exception> protected void AddEngine(Engine engine) { if (engine == null) throw new ArgumentNullException("engine"); if (engine.Plugin != this) throw new ArgumentException(engine.Name + " is not part of this " + Name + "."); if (EnginesMutable.Contains(engine)) throw new ArgumentException(engine.Name + " is already added to this " + Name + "."); EnginesMutable.Add(engine); }