/// <summary> /// Adds an addon type to this building type. /// </summary> /// <param name="addonType">The addon type to add.</param> public void AddAddonType(AddonType addonType) { if (this.Metadata.IsFinalized) { throw new InvalidOperationException("Already finalized!"); } if (addonType == null) { throw new ArgumentNullException("addonType"); } this.addonTypes.Add(addonType.Name, addonType); }
/// <summary> /// Adds an addon type definition to the metadata. /// </summary> /// <param name="addonType">The addon type definition to add.</param> public void AddAddonType(AddonType addonType) { if (this.isFinalized) { throw new InvalidOperationException("ScenarioMetadata object already finalized!"); } if (addonType == null) { throw new ArgumentNullException("addonType"); } if (this.buildingTypes.ContainsKey(addonType.Name) || this.unitTypes.ContainsKey(addonType.Name) || this.addonTypes.ContainsKey(addonType.Name) || this.upgradeTypes.ContainsKey(addonType.Name) || this.missileTypes.ContainsKey(addonType.Name) || this.customTypes.ContainsKey(addonType.Name)) { throw new InvalidOperationException(string.Format("ScenarioMetadata element with name '{0}' already defined!", addonType.Name)); } this.addonTypes.Add(addonType.Name, addonType); addonType.SetID(this.allTypes.Count); this.allTypes.Add(addonType); }