/// <summary> /// Setup constructor /// </summary> /// <param name="projectType">Project type that created this project</param> /// <param name="name">Project name</param> /// <param name="modelFactory">Factory used for creating environment models from templates</param> /// <param name="renderFactory">Factory used for creating environment renderers from models</param> /// <param name="template">ProjectType to use</param> /// <param name="planet">Planet to use</param> protected PlanetProject( ProjectType projectType, string name, IPlanetEnvironmentModelFactory modelFactory, IPlanetEnvironmentRendererFactory renderFactory, IPlanetModelTemplate template, IPlanet planet ) : base(projectType, name, null, null) { Arguments.CheckNotNull( template, "template" ); Arguments.CheckNotNull( modelFactory, "modelFactory" ); Arguments.CheckNotNull( renderFactory, "renderFactory" ); Arguments.CheckNotNull( planet, "planet" ); new PlanetTemplateWatcher( template, planet, modelFactory, renderFactory ); m_Planet = planet; m_PlanetTemplate = template; template.CreateModelInstance( planet.Model, modelFactory, InstanceContext ); }
/// <summary> /// Removes the specified project type /// </summary> /// <param name="template">ProjectType to remove</param> public void RemoveTemplate( ProjectType template ) { Arguments.CheckNotNull( template, "template" ); m_Templates.Remove( template ); }
/// <summary> /// Adds a new template to the group /// </summary> /// <param name="template">ProjectType to add</param> /// <exception cref="ArgumentNullException">Thrown if template is null</exception> public void AddTemplate( ProjectType template ) { Arguments.CheckNotNull( template, "template" ); m_Templates.Add( template ); }