Exemple #1
0
        private void RebuildServoGroupsEditor(ShipConstruct ship = null)
        {
            if (ship == null)
            {
                ship = EditorLogic.fetch.ship;
            }

            ServoGroups = null;

            var groups   = new List <ControlGroup>();
            var groupMap = new Dictionary <string, int>();

            foreach (Part p in ship.Parts)
            {
                foreach (var servo in p.ToServos())
                {
                    if (!groupMap.ContainsKey(servo.Group.Name))
                    {
                        groups.Add(new ControlGroup(servo));
                        groupMap[servo.Group.Name] = groups.Count - 1;
                    }
                    else
                    {
                        ControlGroup g = groups[groupMap[servo.Group.Name]];
                        g.AddControl(servo);
                    }
                }
            }

            if (groups.Count > 0)
            {
                ServoGroups = groups;
            }
        }
Exemple #2
0
        private void OnEditorShipModified(ShipConstruct ship)
        {
            ServoGroups = null;

            var groups   = new List <ControlGroup>();
            var groupMap = new Dictionary <string, int>();

            foreach (Part p in ship.Parts)
            {
                foreach (var servo in p.ToServos())
                {
                    if (!groupMap.ContainsKey(servo.Group.Name))
                    {
                        groups.Add(new ControlGroup(servo));
                        groupMap[servo.Group.Name] = groups.Count - 1;
                    }
                    else
                    {
                        ControlGroup g = groups[groupMap[servo.Group.Name]];
                        g.AddControl(servo);
                    }
                }
            }

            if (groups.Count > 0)
            {
                ServoGroups = groups;
            }

            partCounter = EditorLogic.fetch.ship.parts.Count == 1 ? 0 : EditorLogic.fetch.ship.parts.Count;
            Logger.Log("[ServoController] OnEditorShipModified finished successfully", Logger.Level.Debug);
        }
Exemple #3
0
        private void OnVesselChange(Vessel v)
        {
            Logger.Log(string.Format("[ServoController] vessel {0}", v.name));
            ServoGroups = null;

            var groups   = new List <ControlGroup>();
            var groupMap = new Dictionary <string, int>();

            foreach (var servo in v.ToServos())
            {
                if (!groupMap.ContainsKey(servo.Group.Name))
                {
                    groups.Add(new ControlGroup(servo));
                    groupMap[servo.Group.Name] = groups.Count - 1;
                }
                else
                {
                    ControlGroup g = groups[groupMap[servo.Group.Name]];
                    g.AddControl(servo);
                }
            }

            Logger.Log(string.Format("[ServoController] {0} groups", groups.Count));

            if (groups.Count > 0)
            {
                ServoGroups = groups;
            }

            foreach (var servo in v.ToServos())
            {
                servo.RawServo.SetupJoints();
            }
            Logger.Log("[ServoController] OnVesselChange finished successfully", Logger.Level.Debug);
        }
Exemple #4
0
        static void Main(string[] args)
        {
            ControlGroup html = new ControlGroup("html");
            ControlGroup body = new ControlGroup("body");
            ControlGroup div  = new ControlGroup("div");

            html.AddControl(body);
            body.AddControl(div);

            div.AddControl(new Control("input", "text", "username"));
            div.AddControl(new Control("br"));

            StringBuilder sb = html.parseHtml();

            WriteCode(sb);
            CreateHtmlFile(sb);
            Console.Read();
        }
Exemple #5
0
        public static void AddServo(IServo servo)
        {
            if (!Instance)
            {
                return;
            }

            if (Instance.ServoGroups == null)
            {
                Instance.ServoGroups = new List <ControlGroup>();
            }

            if (Gui.ControlsGUI.IRGUI)
            {
                Gui.ControlsGUI.IRGUI.enabled = true;
            }

            ControlGroup controlGroup = null;

            if (!string.IsNullOrEmpty(servo.Group.Name))
            {
                foreach (ControlGroup cg in Instance.ServoGroups)
                {
                    if (servo.Group.Name == cg.Name)
                    {
                        controlGroup = cg;
                        break;
                    }
                }
                if (controlGroup == null)
                {
                    var newGroup = new ControlGroup(servo);
                    Instance.ServoGroups.Add(newGroup);
                    Logger.Log("[ServoController] AddServo adding new ControlGroup", Logger.Level.Debug);
                    return;
                }
            }
            if (controlGroup == null)
            {
                if (Instance.ServoGroups.Count < 1)
                {
                    Instance.ServoGroups.Add(new ControlGroup());
                }
                controlGroup = Instance.ServoGroups[Instance.ServoGroups.Count - 1];
            }

            controlGroup.AddControl(servo);

            Logger.Log("[ServoController] AddServo finished successfully", Logger.Level.Debug);
        }
Exemple #6
0
        static void Main(string[] args)
        {
            ControlGroup html = new ControlGroup("html");
            ControlGroup body = new ControlGroup("body");
            ControlGroup div  = new ControlGroup("div");

            html.AddControl(body);
            body.AddControl(div);
            div.AddControl(new Control("input", "text", "Username"));
            div.AddControl(new Control("br"));
            div.AddControl(new Control("input", "password", "Password"));
            div.AddControl(new Control("br"));
            div.AddControl(new Control("input", "button", "submit"));
            div.AddControl(new Control("br"));

            StringBuilder stringBuilder = html.ParseHTML();

            WriteDataToFile(stringBuilder);
        }
Exemple #7
0
        /// <summary>
        /// Rebuilds the servo groups. Only works in flight.
        /// </summary>
        private void RebuildServoGroupsFlight()
        {
            ServoGroups = new List <ControlGroup>();

            for (int i = 0; i < FlightGlobals.Vessels.Count; i++)
            {
                var vessel = FlightGlobals.Vessels [i];

                if (!vessel.loaded)
                {
                    continue;
                }

                var groups   = new List <ControlGroup>();
                var groupMap = new Dictionary <string, int>();

                foreach (var servo in vessel.ToServos())
                {
                    if (!groupMap.ContainsKey(servo.Group.Name))
                    {
                        groups.Add(new ControlGroup(servo, vessel));
                        groupMap[servo.Group.Name] = groups.Count - 1;
                    }
                    else
                    {
                        ControlGroup g = groups[groupMap[servo.Group.Name]];
                        g.AddControl(servo);
                    }
                }

                ServoGroups.AddRange(groups);
            }

            if (ServoGroups.Count == 0)
            {
                ServoGroups = null;
            }

            Gui.WindowManager.guiRebuildPending = true; //this should force an UI rebuild on the next update
        }
Exemple #8
0
 public static void MoveServo(ControlGroup from, ControlGroup to, IServo servo)
 {
     to.AddControl(servo);
     from.RemoveControl(servo);
 }