예제 #1
0
    public void ShowStageDefinitions(Vector3 position)
    {
        HideStageDefinitions();
        int count = _selectedStageSet.stageDefinitions.Count;

        Add(_stages = new Layout("StageDefinitionButtons", 4, 1 * (count + 1), 0.25f, 0.1f, count + 1, container));
        _stages.SetPosition(position + (Vector3.left * (stageSets.width - 0.5f)) + (Vector3.back * ((count * 0.5f) + (0.25f * 0.5f))));
        _stages.Add(new List <RenameableDeletableButton>(RenameableDeletableButton.GetButtons(count, (int index) => new RenameableDeletableButton(GetStageDefinition(index).name, 4, 1, container,
                                                                                                                                                  fontSize: 20,
                                                                                                                                                  DeleteStay: (Button b) =>
        {
            if (Input.GetMouseButtonUp(0))
            {
                _selectedStageSet.Remove(GetStageDefinition(index));
                ShowStageDefinitions(position);
            }
        },
                                                                                                                                                  EndInput: (Field field) =>
        {
            GetStageDefinition(index).name = field.label.text;
            field.SetColor(Color.white);
        },
                                                                                                                                                  Enter: (Button button) => button.SetColor(Color.green),
                                                                                                                                                  Stay: (Button button) =>
        {
            if (_selectedStageSet != null && Input.GetMouseButtonDown(0))
            {
                selectedStageDefinition = GetStageDefinition(index);

                HideStageSets();
                HideStageDefinitions();
                HideStage();

                SetStageDefinition(selectedStageDefinition);
                _editor.testButton.Enable();
                _editor.testButton.Show();
                ShowStage();

                ShowStageSets();
                ShowStageEditor();
                ShowMissionTimeline();
                ShowMissionEditor();
            }
        },
                                                                                                                                                  Exit: (Button button) => button.SetColor(Color.white)))));

        _stages.Add(new Button("Add Stage\nDefinition", 4, 1, container, "AddStageDefinition",
                               fontSize: 20,
                               Enter: (Button button) => button.SetColor(Color.green),
                               Stay: (Button button) =>
        {
            if (_selectedStageSet != null && Input.GetMouseButtonDown(0))
            {
                ScriptableObjects.Add(StageDefinition.Default(), _selectedStageSet);
                ShowStageDefinitions(position);
            }
        },
                               Exit: (Button button) => button.SetColor(Color.white)), true);
    }
예제 #2
0
    public void ShowCampaigns(int index, Vector3 position)
    {
        HideCampaigns();
        int count = selectedCampaignSet.campaignDefinitions.Count;

        Add(_campaigns = new Layout("CampaignLayout", 4, count + 1, 0.25f, 0.1f, count + 1, container));
        _campaigns.SetPosition(position + (Vector3.left * (campaignSets.width - 0.5f)) + (Vector3.back * ((_campaigns.height * 0.5f) - 0.5f)));

        _campaigns.Add(new List <RenameableDeletableButton>(
                           RenameableDeletableButton.GetButtons(count,
                                                                (int capturedIndex) => new RenameableDeletableButton(GetCampaign(capturedIndex).name, 4, 1, container,
                                                                                                                     fontSize: 20,
                                                                                                                     DeleteStay: (Button button) =>
        {
            if (Input.GetMouseButtonUp(0))
            {
                selectedCampaignSet.Remove(GetCampaign(index));
                ShowCampaigns(index, position);
                ShowCampaignSets();
            }
        },
                                                                                                                     EndInput: (Field field) =>
        {
            GetCampaign(capturedIndex).name = field.label.text;
            field.SetColor(Color.white);
        },
                                                                                                                     Enter: (Button button) => button.SetColor(Color.green),
                                                                                                                     Stay: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                selectedCampaign = GetCampaign(capturedIndex);

                HideCampaigns();
                HideCampaignSets();

                ShowCampaignMap();
                ShowCampaignSets();
                ShowCampaignEditor();
            }
        },
                                                                                                                     Exit: (Button button) => button.SetColor(Color.white)))));

        _campaigns.Add(new Button("New Campaign", 4, 1, container, "NewCampaign",
                                  fontSize: 20,
                                  Enter: (Button button) => button.SetColor(Color.green),
                                  Stay: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                ScriptableObjects.Add(CampaignDefinition.Default(), selectedCampaignSet);
                ShowCampaigns(index, position);
            }
        },
                                  Exit: (Button button) => button.SetColor(Color.white)), true);
    }
예제 #3
0
    public void AddTwoZones()
    {
        Layout layout = new Layout();
        Zone   zone1  = new Zone();
        Zone   zone2  = new Zone();

        layout.Add(zone1);
        layout.Add(zone2);
        Assert.True(layout.Zones.Count == 2 &&
                    layout.Zones.Contains(zone1) &&
                    layout.Zones.Contains(zone2));
    }
예제 #4
0
    public void PassLayoutWithTwoZones()
    {
        Layout originalLayout = new Layout();
        Zone   zoneA          = new Zone();
        Zone   zoneB          = new Zone();

        originalLayout.Add(zoneA);
        originalLayout.Add(zoneB);
        Layout passedLayout = PassValueToScript(originalLayout);

        Assert.IsTrue(passedLayout.Zones.Find(x => x.id == zoneA.id) != null);
        Assert.IsTrue(passedLayout.Zones.Find(x => x.id == zoneB.id) != null);
    }
예제 #5
0
    private void ShowWaveDefinitions(Vector3 position, float width = 4, float height = 1, float padding = 0.25f, float spacing = 0.1f)
    {
        HideWaveDefinitions();
        int count = selectedWaveSet.waveDefinitions.Count;

        Add(_waveDefinitionLayout = new Layout("WaveDefinitionButtons", width, height * (count + 1), padding, spacing, count + 1, container));
        _waveDefinitionLayout.SetPosition(position + (Vector3.right * width) + (Vector3.back * ((count * 0.5f) + (0.25f * 0.5f))));

        _waveDefinitionLayout.Add(new List <RenameableDeletableButton>(RenameableDeletableButton.GetButtons(count, (int index) => new RenameableDeletableButton(GetWaveDefinition(index).name, width, height, container,
                                                                                                                                                                fontSize: 20,
                                                                                                                                                                DeleteStay: (Button b) =>
        {
            if (Input.GetMouseButtonUp(0))
            {
                selectedWaveSet.Remove(GetWaveDefinition(index));
                ShowWaveDefinitions(position);
            }
        },
                                                                                                                                                                EndInput: (Field field) =>
        {
            GetWaveDefinition(index).name = field.label.text;
            field.SetColor(Color.white);
        },
                                                                                                                                                                Enter: (Button button) => button.SetColor(Color.green),
                                                                                                                                                                Stay: (Button button) =>
        {
            if (selectedWaveSet != null && Input.GetMouseButtonDown(0))
            {
                selectedWaveDefinition = selectedWaveSet.waveDefinitions[index];
                AddWaveToTimeline(selectedWaveDefinition, _editor.timelineEditor.timelinePosition);
                ShowWaveEventButtons();
                HideWaveDefinitions();
                HideWaveSets();
            }
        },
                                                                                                                                                                Exit: (Button button) => button.SetColor(Color.white)))));

        _waveDefinitionLayout.Add(new Button("Add Wave\nDefinition", width, height, container, "AddWaveDefinition",
                                             fontSize: 20,
                                             Enter: (Button button) => button.SetColor(Color.green),
                                             Stay: (Button button) =>
        {
            if (selectedWaveSet != null && Input.GetMouseButtonDown(0))
            {
                ScriptableObjects.Add(ScriptableObject.CreateInstance <WaveDefinition>(), selectedWaveSet);
                HideWaveDefinitions();
                ShowWaveDefinitions(position);
            }
        },
                                             Exit: (Button button) => button.SetColor(Color.white)), true);
    }
예제 #6
0
    public void AddAndConnectTwoZones()
    {
        Layout layout = new Layout();
        Zone   zone1  = new Zone();
        Zone   zone2  = new Zone();

        layout.Add(zone1);
        layout.Add(zone2);
        layout.ConnectZones(zone1, zone2);
        Assert.True(layout.GetAdjacentZones(zone1).Count == 1 &&
                    layout.GetAdjacentZones(zone1).FindByValue(zone2) != null &&
                    layout.GetAdjacentZones(zone2).Count == 1 &&
                    layout.GetAdjacentZones(zone2).FindByValue(zone1) != null);
    }
예제 #7
0
    public void PassLayoutWithEndZones()
    {
        Layout originalLayout = new Layout();
        Zone   zoneA          = new Zone();
        Zone   zoneB          = new Zone();

        originalLayout.Add(zoneA);
        originalLayout.Add(zoneB);
        originalLayout.InitialZone = zoneA;
        originalLayout.FinalZone   = zoneB;
        Layout passedLayout = PassValueToScript(originalLayout);

        Assert.IsTrue(passedLayout.InitialZone.id == zoneA.id);
        Assert.IsTrue(passedLayout.FinalZone.id == zoneB.id);
    }
예제 #8
0
    private void ShowEnemyTypes(Button butt, int index, Vector3 position)
    {
        HideEnemyTypes();
        int count = (int)Definitions.Enemies.Count;

        Add(_enemyTypes = new Layout("EnemyTypeLayout", 3, count, 0.25f, 0.1f, count, container));
        _enemyTypes.SetPosition(position + (Vector3.right * _enemyTypes.width * 0.5f) + (Vector3.back * _enemyTypes.height * 0.5f));

        _enemyTypes.Add(new List <Button>(
                            Button.GetButtons(count,
                                              (int capturedIndex) => new Button(((Definitions.Enemies)capturedIndex).ToString(), 3, 1, container, "EnemyType", fontSize: 20,
                                                                                Enter: (Button button) => button.SetColor(Color.green),
                                                                                Stay: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                HideWaveEventEditor();

                _selectedWaveEvent.subType = capturedIndex;
                ShowWaveEventButtons();
                HideEnemyTypes();
            }
        },
                                                                                Exit: (Button button) => button.SetColor(Color.white),
                                                                                Close: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                HideEnemyTypes();
            }
        }))), true);
    }
예제 #9
0
    private void ShowItemLevels(Button butt, int index, Vector3 position)
    {
        HideItemLevels();
        int count = Definitions.Item((Definitions.Items)_selectedWaveEvent.subType).levels.Count;

        Add(_itemLevels = new Layout("ItemLevelLayout", 3, count, 0.25f, 0.1f, count, container));
        _itemLevels.SetPosition(position + (Vector3.right * _itemLevels.width * 0.5f) + (Vector3.back * _itemLevels.height * 0.5f));

        _itemLevels.Add(new List <Button>(
                            Button.GetButtons(count,
                                              (int capturedIndex) => new Button("Level " + capturedIndex.ToString(), 3, 1, container, "ItemLevel", fontSize: 20,
                                                                                Enter: (Button button) => button.SetColor(Color.green),
                                                                                Stay: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                HideWaveEventEditor();

                _selectedWaveEvent.level = capturedIndex;
                ShowWaveEventButtons();
                HideItemLevels();
            }
        },
                                                                                Exit: (Button button) => button.SetColor(Color.white),
                                                                                Close: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                HideItemLevels();
            }
        }))), true);
    }
예제 #10
0
    private void ShowColorPicker()
    {
        HideColorPicker();
        _colorPicker = new Layout("ColorPicker", 4, 1, 0.25f, 0.1f, 1, container);

        Button colorButton = new Button("Color", 4, 1, container, "ColorButton",
                                        fontSize: 20,
                                        Stay: (Button butt) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                ShowColors(butt.position);
            }
        },
                                        Close: (Button butt) =>
        {
            if (Input.GetMouseButtonDown(0) && (_colors == null || !_colors.containsMouse))
            {
                HideColors();
            }
        });

        colorButton.SetColor(_selectedEnemy.levels[_selectedLevel].color);
        _colorPicker.SetPosition(_enemyEffects.position + (Vector3.back * (((_colorPicker.height + _enemyEffects.height) * 0.5f))));
        _colorPicker.Add(colorButton, true);
        Add(_colorPicker);
    }
예제 #11
0
        public CityStatusWindow() : base(622, 421, 11, 11)
        {
            if (Game.GetActiveCiv.Cities.Count > 12)
            {
                bar = new VScrollBar()
                {
                    Height = 305, Value = 0, Maximum = Game.GetActiveCiv.Cities.Count
                };
                bar.ValueChanged += (_, _) =>
                {
                    barVal0 = bar.Value;
                    Surface.Invalidate();
                };
                Layout.Add(bar, 592, 79);
            }

            barVal0 = bar is null ? 0 : bar.Value;

            KeyDown += (sender, args) =>
            {
                if (args.Key is Keys.Escape)
                {
                    Close();
                }
            };

            var btn = new Civ2button("Close", 596, 24, new Font("Times new roman", 11));

            btn.Click += (_, _) => Close();
            Layout.Add(btn, 13, 385);

            Surface.Paint += Surface_Paint;
            Content        = Layout;
        }
예제 #12
0
 protected override void CreateControls()
 {
     base.CreateControls();
     if (DataType.HasDimensions)
     {
         Layout.BeginHorizontal();
         Layout.Add(new Label {
             Text = "Width", VerticalAlign = VerticalAlign.Middle
         });
         Layout.BeginVertical(Eto.Drawing.Padding.Empty);
         Layout.BeginHorizontal();
         Layout.Add(WidthControl(), xscale: true);
         Layout.Add(new Label {
             Text = "Height", VerticalAlign = VerticalAlign.Middle
         });
         Layout.Add(HeightControl(), xscale: true);
         Layout.EndHorizontal();
         Layout.EndVertical();
         Layout.EndHorizontal();
     }
     if (DataType.HasNumberOfColors)
     {
         Layout.AddRow(new Label {
             Text = "Number of Colors", VerticalAlign = VerticalAlign.Middle
         }, NumberOfColors());
     }
 }
예제 #13
0
    public void ShowEffects(Vector3 position)
    {
        HideEffects();
        int count = ( int )Definitions.Effects.Count;

        Add(_effects = new Layout("Effects", 4, count, 0.25f, 0.1f, count, container));
        _effects.SetPosition(position + (Vector3.right * _effects.width * 0.5f) + (Vector3.back * _effects.height * 0.5f));

        _effects.Add(new List <Button>(
                         Button.GetButtons(count,
                                           (int index) => new Button(((Definitions.Effects)index).ToString(), 3, 1, container, "Effect", fontSize: 20,
                                                                     Enter: (Button button) => button.SetColor(button.selected ? button.color : Color.green),
                                                                     Stay: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
                _selectedItem.Add(_selectedLevel, (Definitions.Effects)index);
                ShowItemEditor();
            }
        },
                                                                     Exit: (Button button) => button.SetColor(button.selected ? button.color : Color.white),
                                                                     Close: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0) && (_effects == null || !_effects.containsMouse))
            {
                HideEffects();
            }
        })
                                           )), true);
    }
예제 #14
0
    public void AddOneZone()
    {
        Layout layout = new Layout();
        Zone   zone   = new Zone();

        layout.Add(zone);
        Assert.True(layout.Zones.Contains(zone) && layout.Zones.Count == 1);
    }
예제 #15
0
 public void ShowTitle()
 {
     HideTitle();
     _title = new Layout("Title", 20, 10, 0, 0, 1, container);
     _title.Add(new Label("GAME\nTITLE", Color.black, 10, 5, fontSize: 50));
     _title.SetViewportPosition(new Vector2(0.5f, 0.75f));
     _title.SetPosition(_title.position + (Vector3.left * _title.width * 0.5f) + (Vector3.forward * _title.height * 0.5f));
 }
예제 #16
0
        public TestUIView(ContentManager content) : base(25, 25)
        {
            var normal = content.Load <Texture2D>("Images/uiback");
            var down   = content.Load <Texture2D>("Images/uibackselected");
            var font   = content.Load <SpriteFont>("Fonts/Bender");
            var btn    = new Button(normal, down, down)
            {
                Font        = font,
                TextColor   = Color.White,
                TextContent = "Test Button"
            };
            var layout1 = new Layout(this, 20, 20)
            {
                BorderColor = Color.Black,
                BorderWidth = 2,
            };

            this.Add(layout1, 2, 2, 10, 10);
            layout1.Add(btn, 1, 1, 4, 4);

            var list = new ListControl(font)
            {
                BorderColor     = Color.Tomato,
                BorderDisplayed = true,
                BorderWidth     = 2,
                BackgroundColor = Color.Maroon,
                Elements        =
                {
                    "Test1",
                    "Test2",
                    "Test3",
                    "Test4",
                    "Test5",
                    "Test6",
                    "Test1",
                    "Test2",
                    "Test3",
                    "Test4",
                    "Test5",
                    "Test6"
                },
                ItemSpan = 30
            };

            layout1.Add(list, 10, 10, 5, 5);
        }
예제 #17
0
    public void ShowItemEditor()
    {
        HideItemEditor();
        Add(_itemEditor = new Layout("ItemEditor", 4, 2, 0.25f, 0.1f, 2, container));
        _itemEditor.SetPosition(_items.position + (Vector3.back * _items.height * 0.5f) + Vector3.back);

        _itemEditor.Add(new List <Element>()
        {
            new Label("Value:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Value", _selectedItem.Value(_selectedLevel).ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: (Field field) =>
            {
                int value;
                int.TryParse(field.label.text, out value);
                _selectedItem.SetValue(_selectedLevel, value);
                field.label.SetText(value.ToString());
                //need to implement refresh
                Refresh();
            }),
            new Label("Damage:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Damage", _selectedItem.Damage(_selectedLevel).ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: (Field field) =>
            {
                int value;
                int.TryParse(field.label.text, out value);
                _selectedItem.SetDamage(_selectedLevel, value);
                field.label.SetText(value.ToString());
                //need to implement refresh
                Refresh();
            })
        }, true);

        int count = _selectedItem.levels[_selectedLevel].effects.Count;

        Add(_itemEffects = new Layout("ItemEffects", 4, count + 1, 0.25f, 0.1f, count + 1, container));
        _itemEffects.SetPosition(_itemEditor.position + (Vector3.back * (((_itemEffects.height + _itemEditor.height) * 0.5f))));

        _itemEffects.Add(new List <Button>(Button.GetButtons(count,
                                                             (int index) => new Button(_selectedItem.levels[_selectedLevel].effects[index].ToString(), 3, 1, container, "Effect", fontSize: 20,
                                                                                       Enter: (Button button) => button.SetColor(Color.green),
                                                                                       Stay: (Button button) =>
        {
            if (Input.GetMouseButtonDown(0))
            {
            }
        },
                                                                                       Exit: (Button button) => button.SetColor(Color.white))))
        {
            new Button("Add Effect", 3, 1, container, "AddEffect", fontSize: 20,
                       Enter: ( Button button ) => button.SetColor(Color.green),
                       Stay: ( Button button ) =>
            {
                if (Input.GetMouseButtonDown(0))
                {
                    ShowEffects(button.position + new Vector3(button.width * 0.5f, 0, button.height * 0.5f));
                }
            },
                       Exit: ( Button button ) => button.SetColor(Color.white)),
        }, true);
    }
예제 #18
0
        /// <summary>
        /// Adds an item to the menu.
        /// </summary>
        /// <param name="text"></param>
        /// <param name="action"></param>
        public void Add(string text, Action action)
        {
            var item = new ContentMenuItem {
                Text = text, Name = text
            };

            item.PressAccept += (sender, e) => action();

            Layout.Add(item);
        }
예제 #19
0
 protected override void CreateControls()
 {
     base.CreateControls();
     Layout.BeginHorizontal();
     Layout.Add(new Label {
         Text = "Binary Width", VerticalAlign = VerticalAlign.Middle
     });
     Layout.Add(WidthControl());
     Layout.EndHorizontal();
 }
예제 #20
0
 /// <summary>Initializes a new instance of the <see cref="SummaryView"/> class.</summary>
 public SummaryView(ViewBase owner) : base(owner)
 {
     Glade.XML gxml = new Glade.XML("ApsimNG.Resources.Glade.SummaryView.glade", "vbox1");
     gxml.Autoconnect(this);
     _mainWidget = vbox1;
     combobox1.PackStart(comboRender, false);
     combobox1.AddAttribute(comboRender, "text", 0);
     combobox1.Model = comboModel;
     htmlview        = new HTMLView(this);
     layout1.Add(htmlview.MainWidget);
 }
예제 #21
0
    public void ShowColors(Vector3 position)
    {
        Add(_colors = new Layout("Colors", 4, 2, 0.25f, 0.1f, 2, container));

        for (int i = 0; 6 > i; i++)
        {
            Color color = Color.clear;

            switch (i)
            {
            case 0:
                color = Color.blue;
                break;

            case 1:
                color = Color.red;
                break;

            case 2:
                color = Color.green;
                break;

            case 3:
                color = Color.cyan;
                break;

            case 4:
                color = Color.magenta;
                break;

            case 5:
                color = Color.yellow;
                break;
            }

            Button button = new Button(string.Empty, 4, 1, container, "Color",
                                       Stay: (Button butt) =>
            {
                if (Input.GetMouseButtonDown(0))
                {
                    _selectedEnemy.SetColor(_selectedLevel, color);
                    ShowColorPicker();
                    HideColors();
                }
            });

            button.SetColor(color);
            _colors.Add(button);
        }

        _colors.SetPosition(position + (Vector3.right * 3.5f) + (Vector3.back * (0.5f + (0.25f * 0.5f))));
        _colors.Refresh();
    }
예제 #22
0
 /// <summary>
 /// Lisää uuden kontrollin.
 /// </summary>
 /// <param name="control">kontrolli joka lisätään.</param>
 /// <param name="constraints">kontrollin paikka minne lisätään (jos layout käytössä).</param>
 public void AddControl(Control control, ILayoutConstraints constraints)
 {
     // Ei ole absolute.
     if (Layout != null)
     {
         Layout.Add(controlManager, control, constraints);
     }
     else
     {
         controlManager.AddControl(control);
     }
 }
예제 #23
0
 private void AddZones(Layout layout, Connections[,] layoutArray)
 {
     for (int i = 0; i < layoutArray.GetLength(0); i++)
     {
         for (int j = 0; j < layoutArray.GetLength(1); j++)
         {
             Zone zone = new Zone();
             zone.bounds = new RectangleInt(i * zoneWidth, j * zoneHeight, zoneWidth, zoneHeight);
             layout.Add(zone);
         }
     }
 }
예제 #24
0
 public void InitEmpty()
 {
     for (int y = 0; y < 5; y++)
     {
         for (int x = 0; x < 5; x++)
         {
             Layout.Add(new Tile {
                 X = x, Y = y, IsBug = false
             });
         }
     }
 }
예제 #25
0
        private void InitializeComponent()
        {
            Title = "Test";

            SetDefaultSize(300, 300);

            //buttonBox = new ButtonBox();
            //buttonBox.Name = "buttonBox";
            //Add(buttonBox);

            layout      = new Layout();
            layout.Name = "layout";

            Add(layout);

            label      = new Label();
            label.Text = "test";
            label.SetMargin(20, 40);

            layout.Add(label);

            drawingArea = new DrawingArea();
            drawingArea.SetSizeRequest(200, 200);
            drawingArea.Draw += DrawingArea_Draw;

            layout.Add(drawingArea);

            button                 = new Button();
            button.Name            = "button";
            button.Label           = "Click me!";
            button.ButtonReleased += Button_Released;
            button.SetMargin(20, 0);

            image = Image.FromFile("Content/gnome-logo.png");
            layout.Add(image);

            layout.Add(button);
        }
예제 #26
0
    public void ShowMissionEditor()
    {
        HideMissionEditor();
        List <Element> missionEditorButtons = new List <Element>(2)
        {
            new Label("Duration:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Duration", selectedMission.duration.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
            {
                float.TryParse(field.label.text, out selectedMission.duration);
            })
        };

        Add(_missionEditorLayout = new Layout("StageEditor", 4, 1, 0.25f, 0.1f, missionEditorButtons.Count / 2, container));
        _missionEditorLayout.Add(missionEditorButtons, true);
        _missionEditorLayout.SetPosition((_editor.stageEditor.stageEditorLayout != null ? _editor.stageEditor.stageEditorLayout.position : _editor.stageEditor.stageSets.position) + (Vector3.back * (_missionEditorLayout.height + (_editor.stageEditor.stageEditorLayout != null ? _editor.stageEditor.stageEditorLayout.height : _editor.stageEditor.stageSets.height)) * 0.5f));
    }
예제 #27
0
    public void ShowCampaignEditor()
    {
        HideCampaignEditor();

        if (selectedCampaign != null)
        {
            List <Element> campaignEditorButtons = new List <Element>()
            {
                new Label("Width:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
                new Field("Width", selectedCampaign.width.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
                {
                    float.TryParse(field.label.text, out selectedCampaign.width);
                    _editor.Refresh();
                    Refresh();
                }),

                new Label("Height:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
                new Field("Height", selectedCampaign.height.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
                {
                    float.TryParse(field.label.text, out selectedCampaign.height);
                    _editor.Refresh();
                    Refresh();
                }),

                new Label("Rows:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
                new Field("Rows", selectedCampaign.rows.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
                {
                    int.TryParse(field.label.text, out selectedCampaign.rows);
                    _editor.Refresh();
                    Refresh();
                }),

                new Label("Columns:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
                new Field("Columns", selectedCampaign.columns.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
                {
                    int.TryParse(field.label.text, out selectedCampaign.columns);
                    _editor.Refresh();
                    Refresh();
                })
            };

            Add(_campaignEditor = new Layout("CampaignEditor", 4, 4, 0.25f, 0.1f, campaignEditorButtons.Count / 2, container));
            _campaignEditor.SetPosition(campaignSets.position + (Vector3.back * ((campaignSets.height + _campaignEditor.height) * 0.5f)));
            _campaignEditor.Add(campaignEditorButtons, true);
            _campaignEditor.SetParent(container);
        }
    }
예제 #28
0
            static void CreateLayout(Type layoutType, out Layout layout, out Label label)
            {
                layout = Activator.CreateInstance(layoutType) as Layout;
                layout.WidthRequest  = 200;
                layout.HeightRequest = 100;
                layout.Background    = Colors.Red;

                label = new Label
                {
                    WidthRequest  = 50,
                    HeightRequest = 50,
                    Text          = "Text",
                    TextColor     = Colors.Blue,
                };

                layout.Add(label);
            }
예제 #29
0
    public void ShowStageEditor()
    {
        HideStageEditor();
        Add(stageEditorLayout = new Layout("StageEditor", 4, 4, 0.25f, 0.1f, 5, container));
        stageEditorLayout.SetPosition(stageSets.position + (Vector3.back * (stageSets.height + stageEditorLayout.height) * 0.5f));
        stageEditorLayout.Add(new List <Element>()
        {
            new Label("Lanes:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Lanes", selectedStageDefinition.laneCount.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
            {
                int.TryParse(field.label.text, out selectedStageDefinition.laneCount);
                Refresh();
            }),

            new Label("Width:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Width", selectedStageDefinition.width.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
            {
                float.TryParse(field.label.text, out selectedStageDefinition.width);
                Refresh();
            }),

            new Label("Height:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Height", selectedStageDefinition.height.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
            {
                float.TryParse(field.label.text, out selectedStageDefinition.height);
                Refresh();
            }),

            new Label("Spacing:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Spacing", selectedStageDefinition.laneSpacing.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
            {
                float.TryParse(field.label.text, out selectedStageDefinition.laneSpacing);
                Refresh();
            }),

            new Label("Speed:", Color.black, 1.25f, 0.5f, container, fontSize: 20, anchor: TextAnchor.MiddleCenter),
            new Field("Speed", selectedStageDefinition.speed.ToString(), 2, 0.5f, 20, container, Field.ContentMode.Numbers, EndInput: ( Field field ) =>
            {
                float.TryParse(field.label.text, out selectedStageDefinition.speed);
                Refresh();
            })
        }, true);
    }
예제 #30
0
        public static void HighPassTransform(double fc, Layout digital, Layout analog)
        {
            digital.Clear();

            // prewarp
            var f = 1.0 / Math.Tan(Math.PI * fc);

            Complex transform(Complex c)
            {
                if (c.IsInfinity())
                {
                    return(new Complex(1, 0));
                }

                // frequency transform
                c = f * c;

                // bilinear low pass transform
                return(-(1.0 + c) / (1.0 - c));
            }

            var numPoles = analog.NumberOfPoles;
            var pairs    = numPoles / 2;

            for (int i = 0; i < pairs; ++i)
            {
                var pair = analog[i];
                digital.AddPoleZeroConjugatePairs(transform(pair.Poles.First),
                                                  transform(pair.Zeros.First));
            }

            if ((numPoles & 1) != 0)
            {
                var pair = analog[pairs];
                digital.Add(transform(pair.Poles.First),
                            transform(pair.Zeros.First));
            }

            digital.NormalW    = Math.PI - analog.NormalW;
            digital.NormalGain = analog.NormalGain;
        }