Mercurial > repos > IBBoard.WarFoundry.API.Tests
diff API/EventListeningWarFoundryLoader.cs @ 89:90dee8d781ee
Re #253: Allow multiple data files in a single zip
* Add and use loader that just listens to events to capture new objects and does nothing else
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 27 Feb 2011 19:44:08 +0000 |
parents | |
children | 5d19fee8e9dc |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/API/EventListeningWarFoundryLoader.cs Sun Feb 27 19:44:08 2011 +0000 @@ -0,0 +1,87 @@ +using System; +using IBBoard.WarFoundry.API.Factories; +using System.Collections.Generic; +using IBBoard.WarFoundry.API.Objects; + +namespace IBBoard.WarFoundry.API +{ + public class EventListeningWarFoundryLoader : AbstractWarFoundryLoader + { + private IDictionary<string, GameSystem> gameSystems; + private IDictionary<string, Race> races; + private IDictionary<string, Army> armies; + + public EventListeningWarFoundryLoader() + { + gameSystems = new Dictionary<string, GameSystem>(); + races = new Dictionary<string, Race>(); + armies = new Dictionary<string, Army>(); + } + + public override void RegisterFactory (INativeWarFoundryFactory factory) + { + base.RegisterFactory (factory); + factory.GameSystemLoaded+= DoStoreGameSystem; + factory.RaceLoaded+= DoStoreRace; + } + + protected override GameSystem GetExistingSystemForSystem (GameSystem system) + { + throw new System.NotImplementedException(); + } + + + protected override void DoStoreGameSystem (GameSystem system) + { + gameSystems.Add(system.ID, system); + } + + + protected override void DoStoreRace (Race race) + { + races.Add(race.ID, race); + } + + + public override GameSystem[] GetGameSystems () + { + throw new System.NotImplementedException(); + } + + + public override GameSystem GetGameSystem (string systemID) + { + return DictionaryUtils.GetValue(gameSystems, systemID); + } + + + protected override void RemoveGameSystem (GameSystem system) + { + throw new System.NotImplementedException(); + } + + + public override Race[] GetRaces (GameSystem system) + { + throw new System.NotImplementedException(); + } + + + public override Race GetRace (GameSystem system, string raceID) + { + return GetRace(system, raceID, ""); + } + + + public override Race GetRace (GameSystem system, string raceID, string raceSubID) + { + return DictionaryUtils.GetValue(races, raceID); + } + + + protected override void RemoveRace (Race race) + { + throw new System.NotImplementedException(); + } + } +}