Mercurial > repos > IBBoard.WarFoundry.API
view api/Objects/StagedLoadingGameSystem.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
// StagedLoadingGameSystem.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 IBBoard.WarFoundry.API.Factories; namespace IBBoard.WarFoundry.API.Objects { public class StagedLoadingGameSystem : GameSystem, IWarFoundryStagedLoadObject { private AbstractNativeWarFoundryFactory creatingFactory; public StagedLoadingGameSystem(string systemID, string systemName, AbstractNativeWarFoundryFactory factory) : base(systemID, systemName) { creatingFactory = factory; } public AbstractNativeWarFoundryFactory Factory { get { return creatingFactory; } } public void EnsureFullyLoaded () { if (!IsFullyLoaded) { Factory.CompleteLoading(this); } } public bool IsFullyLoaded { get { return RawSystemCategories != null && base.StandardSystemStatsID != null && base.SystemStats != null; } } protected override Category[] SystemCategories { get { EnsureFullyLoaded(); return base.SystemCategories; } set { base.SystemCategories = value; } } } }