public override void OnLoad(ConfigNode gameNode) { base.OnLoad(gameNode); this.RegisteredDockingPorts.Clear(); this.OrderedMissions.Clear(); try { ConfigNode registeredLocations = gameNode.GetNode("REGISTEREDLOCATIONS"); if (registeredLocations != null) { foreach (ConfigNode dockingPortConfig in registeredLocations.GetNodes("DOCKINGPORT")) { RegisteredDockingPort dockingPort = ConfigNode.CreateObjectFromConfig <RegisteredDockingPort>(dockingPortConfig); this.RegisteredDockingPorts.Add(dockingPort); } } ConfigNode orderedMissions = gameNode.GetNode("ORDEREDMISSIONS"); if (orderedMissions != null) { foreach (ConfigNode orderedMissionConfig in orderedMissions.GetNodes("ORDEREDMISSION")) { OrderedMission orderedMission = OrderedMission.LoadNode(orderedMissionConfig); this.OrderedMissions.Add(orderedMission); } } } catch { LoggerRmm.Error("RMM: loading from savefile failed"); } }
public void SetOrderedMission(string orderId, string missionId, int type, Dictionary <string, object> orderValues) { // search for existing order OrderedMission existingOrderedMission = null; if (!String.IsNullOrEmpty(orderId)) { foreach (OrderedMission orderdMission in OrderedMissions) { if (orderdMission.OrderId == orderId) { existingOrderedMission = orderdMission; break; } } } // edit port if (existingOrderedMission != null) { if (String.IsNullOrEmpty(missionId) && orderValues == null) { // unorder OrderedMissions.Remove(existingOrderedMission); } else { // edit order existingOrderedMission.MissionId = missionId; existingOrderedMission.Type = type; existingOrderedMission.WriteValues(orderValues); } return; } // new order if (!String.IsNullOrEmpty(missionId) && orderValues != null) { // register new OrderedMission newOrderedMission = new OrderedMission(); newOrderedMission.OrderId = RmmUtil.Rand.Next(1, 999999999).ToString(); newOrderedMission.MissionId = missionId; newOrderedMission.Type = type; newOrderedMission.WriteValues(orderValues); OrderedMissions.Add(newOrderedMission); } }