private Dictionary <string, int> loadDevelopmet(IkadnBaseObject rawData, ObjectDeindexer deindexer) { var queue = new Dictionary <string, int>(); foreach (var topic in rawData.To <IEnumerable <string> >()) { queue.Add(topic, queue.Count); } return(queue); }
private Dictionary <Design, Design> loadRefitOrders(IkadnBaseObject rawData, ObjectDeindexer deindexer) { var orders = new Dictionary <Design, Design>(); foreach (var orderData in rawData.To <IEnumerable <IkonComposite> >()) { orders.Add( deindexer.Get <Design>(orderData[FromDesignKey].To <int>()), deindexer.Get <Design>(orderData[ToDesignKey].To <int>()) ); } return(orders); }
public static IConstructionProject Load(IkadnBaseObject rawData, LoadSession session) { if (rawData.Tag.Equals(StaticProject.Tag)) { return(session.Load <StaticProject>(rawData)); } else if (rawData.Tag.Equals(ShipProject.Tag)) { return(session.Load <ShipProject>(rawData)); } else { throw new KeyNotFoundException("Unknown construction project type: " + rawData.Tag); } }
//TODO(later) make separate collections for colony and stellaris construction orders private Dictionary <AConstructionSite, ConstructionOrders> loadConstruction(IkadnBaseObject rawData, ObjectDeindexer deindexer) { var queue = new Dictionary <AConstructionSite, ConstructionOrders>(); foreach (var plan in rawData.To <IEnumerable <IkonComposite> >()) { AConstructionSite site = plan.Tag.Equals(StellarisConstructionTag) ? (AConstructionSite)deindexer.Get <StellarisAdmin>(plan[LocationKey].To <int>()) : (AConstructionSite)deindexer.Get <Colony>(plan[LocationKey].To <int>()); queue.Add(site, ConstructionOrders.Load(plan[OrdersKey].To <IkonComposite>(), deindexer)); } return(queue); }
public static AMission Load(IkadnBaseObject rawData, ObjectDeindexer deindexer) { AMission mission = null; if (rawData.Tag.Equals(MoveMission.MissionTag)) { mission = MoveMission.Load(rawData, deindexer); } else { throw new KeyNotFoundException("Unknown order type: " + rawData.Tag); } return(mission); }
private Dictionary <Vector2D, HashSet <Fleet> > loadShipOrders(IkadnBaseObject rawData, ObjectDeindexer deindexer) { var orders = new Dictionary <Vector2D, HashSet <Fleet> >(); foreach (var orderData in rawData.To <IEnumerable <IkonComposite> >()) { var rawPosition = orderData[Position].To <double[]>(); var fleets = new HashSet <Fleet>(); foreach (var fleetData in orderData[Fleets].To <IEnumerable <IkonComposite> >()) { fleets.Add(Fleet.Load(fleetData, deindexer)); } orders.Add(new Vector2D(rawPosition[0], rawPosition[1]), fleets); } return(orders); }
private Dictionary <Planet, ColonizationPlan> loadColonizationOrders(IkadnBaseObject rawData, ObjectDeindexer deindexer) { var orders = new Dictionary <Planet, ColonizationPlan>(); foreach (var orderData in rawData.To <IEnumerable <IkonComposite> >()) { var destination = deindexer.Get <Planet>(orderData[ColonizationDestinationTag].To <int>()); var plan = new ColonizationPlan(destination); foreach (var sourceIndex in orderData[ColonizationSourcesTag].To <IEnumerable <int> >()) { plan.Sources.Add(deindexer.Get <StarData>(sourceIndex)); } orders.Add(destination, plan); } return(orders); }
private static IOffscreenPlayer loadControl(IkadnBaseObject rawData) { var dataMap = rawData.To <IkonComposite>(); if (dataMap.Tag.Equals(PlayerType.NoControllerTag)) { return(null); } else if (dataMap.Tag.Equals(PlayerType.AiControllerTag)) { string factoryId = dataMap[PlayerType.FactoryIdKey].To <string>(); //TODO(later): what if no factory was found? return(PlayerAssets.AIDefinitions.First(x => x.Id == factoryId).Load(dataMap)); } else if (dataMap.Tag.Equals(PlayerType.OrganelleControllerTag)) { return(new OrganellePlayerFactory().Load(dataMap)); } //TODO(later): Invalid controller data return(null); }
public static AMission Load(IkadnBaseObject rawData, LoadSession session) { if (rawData.Tag.Equals(MoveMission.MissionTag)) { return(session.Load <MoveMission>(rawData)); } else if (rawData.Tag.Equals(DisembarkMission.MissionTag)) { return(session.Load <DisembarkMission>(rawData)); } else if (rawData.Tag.Equals(SkipTurnMission.MissionTag)) { return(new SkipTurnMission()); } else if (rawData.Tag.Equals(LoadMission.MissionTag)) { return(new LoadMission()); } else { throw new KeyNotFoundException("Unknown order type: " + rawData.Tag); } }
private static IStarName loadName(IkadnBaseObject rawData, LoadSession session) { return(rawData.Tag.Equals(ConstellationStarName.SaveTag) ? (IStarName)session.Load <ConstellationStarName>(rawData) : (IStarName)session.Load <ProperStarName>(rawData)); }
public static IStarName loadName(IkadnBaseObject rawData) { return(rawData.Tag.Equals(ConstellationStarName.SaveTag) ? ConstellationStarName.Load(rawData.To <IkonComposite>()) : ProperStarName.Load(rawData.To <IkonComposite>())); }