view API/EventListeningWarFoundryLoader.cs @ 122:aa37b31976e6

Re #27: Unit requirements * Restructure "check default" tests so that we actually check the default (test before and after) * Add test to make sure requirement checks on each request * Add test to make sure that adding more prohibited units than the limit causes a failure
author IBBoard <dev@ibboard.co.uk>
date Sat, 09 Apr 2011 10:43:01 +0000
parents 3c2c108a2f08
children 0f144576e5eb
line wrap: on
line source

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;
		}
		
		public override void UnregisterFactory (INativeWarFoundryFactory factory)
		{
			base.UnregisterFactory(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.GameSystem.ID + 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();
		}
	}
}