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; } }
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); }
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); }
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(); }
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); }
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); }
/// <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 }
public static void MoveServo(ControlGroup from, ControlGroup to, IServo servo) { to.AddControl(servo); from.RemoveControl(servo); }