public void SetShipGenerator(Library.ShipGenerator gen, int layout = 0) { if (lstSystems != null) { foreach (var system in lstSystems) system.Remove(); lstSystems.Clear(); lstSystems = null; } // Set current ship currentShipGen = gen; currentShip = gen.Generate(layout); // Update ship renderer shipRenderer.Ship = currentShip; // Update layout buttons btnLayoutA.Enabled = (currentShipGen.NumberOfLayouts >= 1); btnLayoutA.Toggled = (layout == 0); btnLayoutA.UpdateImage(); btnLayoutB.Enabled = (currentShipGen.NumberOfLayouts >= 2); btnLayoutB.Toggled = (layout == 1); btnLayoutB.UpdateImage(); // Create new UI tbShipName.Text = currentShip.Name; lstSystems = new List<ImageButton>(); var systems = currentShip.Systems; for (int i = 0; i < systems.Count; i++) { var system = systems[i]; var btnSystem = new ImageButton(); btnSystem.Image = Root.Singleton.Material("img/customizeUI/box_system_on.png"); btnSystem.HoveredImage = Root.Singleton.Material("img/customizeUI/box_system_select2.png"); btnSystem.DisabledImage = Root.Singleton.Material("img/customizeUI/box_system_off.png"); btnSystem.Enabled = true; //btnSystem.HoverSound = Root.Singleton.Sound("audio/waves/ui/select_light1.wav"); Util.LayoutControl(btnSystem, 370 + (i * 38), 380, 38, 96, rctScreen); btnSystem.Parent = Root.Singleton.Canvas; btnSystem.Init(); var systembox = new SystemBox(); systembox.SystemIcon = Root.Singleton.Material(system.IconGraphics["green"]); systembox.PowerLevel = system.MinPower; systembox.Width = btnSystem.Width - 2; systembox.Height = btnSystem.Height - 2; systembox.Parent = btnSystem; systembox.Init(); lstSystems.Add(btnSystem); } }