Example #1
0
 /// <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);
        }