Mercurial > repos > snowblizz-super-API-ideas
view api/Objects/StagedLoadingRace.cs @ 0:520818033bb6
Initial commit of WarFoundry code
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Fri, 19 Dec 2008 15:57:51 +0000 |
parents | |
children |
line wrap: on
line source
// StagedLoadingRace.cs // // Copyright (C) 2008 IBBoard // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // using System; using System.Collections.Generic; using IBBoard.WarFoundry.API.Factories; namespace IBBoard.WarFoundry.API.Objects { /// <summary> /// Summary description for StagedLoadingRace. /// </summary> public class StagedLoadingRace : Race, IWarFoundryStagedLoadObject { private AbstractNativeWarFoundryFactory creatingFactory; public StagedLoadingRace(string raceID, string raceName, string gameSystemID, AbstractNativeWarFoundryFactory factory) : this(raceID, "", raceName, gameSystemID, factory) { } public StagedLoadingRace(string raceID, string raceSubID, string raceName, string gameSystemID, AbstractNativeWarFoundryFactory factory) : base(raceID, raceName, gameSystemID) { creatingFactory = factory; } public AbstractNativeWarFoundryFactory Factory { get { return creatingFactory; } } public void EnsureFullyLoaded () { if (!IsFullyLoaded) { Factory.CompleteLoading(this); } } public bool IsFullyLoaded { get { return RaceRawOverrideCategories != null && RaceRawUnitTypes != null && RaceRawEquipment != null && RaceRawAbilities != null; } } protected override Category[] RaceOverrideCategories { get { EnsureFullyLoaded(); return base.RaceOverrideCategories; } } protected override Dictionary<string, Ability> RaceAbilities { get { EnsureFullyLoaded(); return base.RaceAbilities; } set { base.RaceAbilities = value; } } protected override Dictionary<string, EquipmentItem> RaceEquipment { get { EnsureFullyLoaded(); return base.RaceEquipment; } set { base.RaceEquipment = value; } } protected override Dictionary<string, UnitType> RaceUnitTypes { get { EnsureFullyLoaded(); return base.RaceUnitTypes; } set { base.RaceUnitTypes = value; } } /*public void CompleteLoading(List<Category> categoriesList, Dictionary<string,UnitType> unitTypesList, Dictionary<string,EquipmentItem> equipmentList, Dictionary<string, Ability> abilityList) { logger.Debug("Preparing dictionaries"); if (categoriesList != null && categoriesList.Count > 0) { cats = categoriesList.ToArray(); } logger.Debug("Loading equipment"); equipment = new Dictionary<string,EquipmentItem>(); foreach (string equipID in equipmentList.Keys) { equipment.Add(equipID, equipmentList[equipID]); } logger.Debug("Loading abilities"); abilities = new Dictionary<string,Ability>(); foreach (string abilityID in abilityList.Keys) { abilities.Add(abilityID, abilityList[abilityID]); } logger.Debug("Loading units"); unitTypes = new Dictionary<string,UnitType>(); foreach (string unitID in unitTypesList.Keys) { unitTypes.Add(unitID, unitTypesList[unitID]); } base.CompleteLoading(); }*/ } }