Clone() публичный Метод

public Clone ( ) : FlightPlan
Результат FlightPlan
Пример #1
0
        public void SavePlan(FlightPlan plan)
        {
            if (plan.planet == null)
            {
                Deb.Err("SavePlan: plan has no planet");
                return;
            }

            if (plan.name == currentName)
            {
                Deb.Log("SavePlan: same name, overwrite current");
                plan.description = currentDesc;
            }
            else
            {
                current = plan.Clone();
                current.name = currentName;
                current.description = currentDesc;
                plan = current;
            }

            flightPlan = current;

            List<FlightPlan> plans_for_planet = null;

            if (!flightPlansDict.TryGetValue(planet.name, out plans_for_planet))
            {
                Deb.Log("SavePlan: creating new plan list for planet {0}", planet.name);
                plans_for_planet = new List<FlightPlan>();
                flightPlansDict[planet.name] = plans_for_planet;
            }

            bool plan_present = false;

            foreach (var pplan in plans_for_planet)
            {
                if (System.Object.ReferenceEquals(plan, pplan))
                {
                    plan_present = true;
                    break;
                }
            }

            if (!plan_present)
            {
                Deb.Log("SavePlan: plan not present, create one in list");
                plans_for_planet.Add(plan);
            }

            ConfigNode rootNode = new ConfigNode();

            ConfigNode node = rootNode.AddNode(flightPlansNodeName);

            // plan_list will be key/value pair
            foreach (var pair in flightPlansDict)
            {
                ConfigNode listNode = node.AddNode(pair.Key);

                foreach (var aplan in pair.Value)
                {
                    listNode.AddNode(aplan.ToConfigNode());
                }
            }

            rootNode.Save(GetFlightPlanURI());
        }
Пример #2
0
        public void ApplyPlan(FlightPlan plan)
        {
            flightPlan = plan.Clone();
            current = plan;
            currentName = String.Copy(current.name);
            currentDesc = String.Copy(current.description);

            flightPlan.Activate(this, vessel, vesselData);
        }