public void reloadCommodities(Data data) { List <string> allCommodities = new List <string>(); if (readerCommodityData.rootSection != null) { foreach (string commodityGroup in readerCommodityData.rootSection.subsections.Keys) { CmdrsLogDataReader.Section groupSection = readerCommodityData.rootSection.subsections[commodityGroup]; allCommodities.AddRange(groupSection.textContent); data.commodities[commodityGroup] = groupSection.textContent.ToArray(); } } data.allCommodities = allCommodities.ToArray(); }
public void reloadStations(Data data) { //TODO: Respect saveVersion! data.systems.Clear(); /* * Systems */ foreach (string system in readerSystemData.rootSection.subsections.Keys) { CmdrsLogDataReader.Section systemSection = readerSystemData.rootSection.subsections[system]; SystemData sysData = new SystemData(system); data.systems[system] = sysData; /* * Stations */ foreach (string station in systemSection.subsections.Keys) { CmdrsLogDataReader.Section stationSection = systemSection.subsections[station]; StationData stationData = new StationData(station); sysData.stations[station] = stationData; stationSection.dictionary.TryGetValue("economy", out stationData.economy); stationSection.dictionary.TryGetValue("government", out stationData.government); stationSection.dictionary.TryGetValue("faction", out stationData.faction); //TODO: Respect hidden //TODO: Respect blackmarket? //TODO: DAU-Safe code (make wrapper inside Section class!) CmdrsLogDataReader.Section commoditiesSection = stationSection.subsections["Commodities"]; //TODO: Load Notes? /* * Commodities */ foreach (string commodity in commoditiesSection.subsections.Keys) { CmdrsLogDataReader.Section commoditySection = commoditiesSection.subsections[commodity]; CommodityPrice cp = new CommodityPrice(commodity); stationData.commodityData[commodity] = cp; string status = null; string modTime = null; string price = null; string quantity = null; commoditySection.dictionary.TryGetValue("status", out status); commoditySection.dictionary.TryGetValue("modTime", out modTime); commoditySection.dictionary.TryGetValue("price", out price); commoditySection.dictionary.TryGetValue("quantity", out quantity); int statusAsInt = 8; int priceAsInt = 0; //TODO: respect modTime? int.TryParse(price, out priceAsInt); int.TryParse(quantity, out cp.quantity); int.TryParse(status, out statusAsInt); cp.demandType = parseStatusCmdrsLogV1(statusAsInt); switch (cp.demandType) { case DemandType.HighDemand: case DemandType.MediumDemand: case DemandType.LowDemand: cp.priceBuy = priceAsInt; break; case DemandType.HighSupply: case DemandType.MediumSupply: case DemandType.LowSupply: cp.priceSell = priceAsInt; break; } } } } }