public MovementCostFactory() { MovementCosts = new List<MovementCost>(); MovementTypeFactory = new MovementTypeFactory(); TerrainConditionFactory = new TerrainConditionFactory(); TerrainTypeFactory = new TerrainTypeFactory(); Uri uri = new Uri(Constants.MovementCostDataPath, UriKind.Relative); XElement applicationXml; StreamResourceInfo xmlStream = Application.GetResourceStream(uri); applicationXml = XElement.Load(xmlStream.Stream); var data = from t in applicationXml.Descendants("MovementCost") select t; MovementCost movementCost = null; foreach (var d in data) { movementCost = new MovementCost(); movementCost.MovementCostId = (Int32)d.Element("MovementCostId"); movementCost.MovementType = MovementTypeFactory.GetMovementType((Int32)d.Element("MovementTypeId")); movementCost.TerrainCondition = TerrainConditionFactory.GetTerrainCondition((Int32)d.Element("TerrainConditionId")); movementCost.TerrainType = TerrainTypeFactory.GetTerrainType((Int32)d.Element("TerrainTypeId")); movementCost.MovementPoints = (Int32)d.Element("MovementPoints"); MovementCosts.Add(movementCost); } }
public TerrainFactory() { Terrains = new List<Terrain>(); TerrainTypeFactory = new TerrainTypeFactory(); PopulateTerrainData(); }