Ejemplo n.º 1
0
        public override void Initialize(Table table, Skin skin, float leftCellWidth)
        {
            var value = GetValue <Vector2>();
            var label = CreateNameLabel(table, skin, leftCellWidth);

            var labelX = new Label("x", skin);

            _textFieldX = new TextField(value.X.ToString(CultureInfo.InvariantCulture), skin);
            _textFieldX.SetScale(2f);
            _textFieldX.SetTextFieldFilter(new FloatFilter()).SetPreferredWidth(100);
            _textFieldX.OnTextChanged += (field, str) =>
            {
                float newX;
                if (float.TryParse(str, NumberStyles.Float, CultureInfo.InvariantCulture, out newX))
                {
                    var newValue = GetValue <Vector2>();
                    newValue.X = newX;
                    SetValue(newValue);
                }
            };

            var labelY = new Label("y", skin);

            _textFieldY = new TextField(value.Y.ToString(CultureInfo.InvariantCulture), skin);
            _textFieldY.SetScale(2f);
            _textFieldY.SetTextFieldFilter(new FloatFilter()).SetPreferredWidth(100);
            _textFieldY.OnTextChanged += (field, str) =>
            {
                float newY;
                if (float.TryParse(str, NumberStyles.Float, CultureInfo.InvariantCulture, out newY))
                {
                    var newValue = GetValue <Vector2>();
                    newValue.Y = newY;
                    SetValue(newValue);
                }
            };

            var hBox = new HorizontalGroup(5);

            hBox.AddElement(labelX);
            hBox.AddElement(_textFieldX);
            hBox.AddElement(labelY);
            hBox.AddElement(_textFieldY);

            table.Add(label);
            table.Add(hBox);
        }
Ejemplo n.º 2
0
        void MakeColor(Table table, Skin skin, string label, string propertyName)
        {
            FieldInfo fieldInfo = typeof(ParticleEmitterConfig).GetField(propertyName);
            Color     value     = (Color)fieldInfo.GetValue(_particleEmitterConfig);

            var r = new TextField(value.R.ToString(), skin).SetMaxLength(4);
            var g = new TextField(value.G.ToString(), skin).SetMaxLength(4);
            var b = new TextField(value.B.ToString(), skin).SetMaxLength(4);
            var a = new TextField(value.A.ToString(), skin).SetMaxLength(4);

            void OnChanged(TextField box, string str)
            {
                if (int.TryParse(r.GetText(), out int newR) &&
                    int.TryParse(g.GetText(), out int newG) &&
                    int.TryParse(b.GetText(), out int newB) &&
                    int.TryParse(a.GetText(), out int newA) &&
                    newR >= 0 && newR <= 255 &&
                    newB >= 0 && newB <= 255 &&
                    newG >= 0 && newG <= 255 &&
                    newR >= 0 && newA <= 255)
                {
                    var newColor = new Color(newR, newG, newB, newA);
                    fieldInfo.SetValue(_particleEmitterConfig, newColor);
                }
            }

            r.OnTextChanged += OnChanged;
            b.OnTextChanged += OnChanged;
            g.OnTextChanged += OnChanged;
            a.OnTextChanged += OnChanged;

            table.Add(label).Width(140);
            table.Add(r).Width(30);

            // Everything else is dealing with 3 columns.  Wrap the last ones up in
            // an hbox to avoid creating new columns in the table. (hack)
            g.SetPreferredWidth(30);
            b.SetPreferredWidth(30);
            a.SetPreferredWidth(30);
            var hbox = new HorizontalGroup().SetSpacing(10);

            hbox.AddElement(g);
            hbox.AddElement(b);
            hbox.AddElement(a);
            table.Add(hbox).Left().Top().Width(30);
        }
Ejemplo n.º 3
0
        public override void initialize(Table table, Skin skin)
        {
            var value = getValue <Vector2>();
            var label = new Label(_name, skin);

            var labelX = new Label("x", skin);

            _textFieldX = new TextField(value.X.ToString(), skin);
            _textFieldX.setTextFieldFilter(new FloatFilter()).setPreferredWidth(50);
            _textFieldX.onTextChanged += (field, str) =>
            {
                float newX;
                if (float.TryParse(str, out newX))
                {
                    var newValue = getValue <Vector2>();
                    newValue.X = newX;
                    setValue(newValue);
                }
            };

            var labelY = new Label("y", skin);

            _textFieldY = new TextField(value.Y.ToString(), skin);
            _textFieldY.setTextFieldFilter(new FloatFilter()).setPreferredWidth(50);
            _textFieldY.onTextChanged += (field, str) =>
            {
                float newY;
                if (float.TryParse(str, out newY))
                {
                    var newValue = getValue <Vector2>();
                    newValue.Y = newY;
                    setValue(newValue);
                }
            };

            var hBox = new HorizontalGroup(5);

            hBox.addElement(labelX);
            hBox.addElement(_textFieldX);
            hBox.addElement(labelY);
            hBox.addElement(_textFieldY);

            table.add(label);
            table.add(hBox);
        }
Ejemplo n.º 4
0
        public override void Initialize(Table table, Skin skin, float leftCellWidth)
        {
            var value = GetValue <Direction>();
            var label = CreateNameLabel(table, skin, leftCellWidth);

            _selectBox = new SelectBox <string>(skin);
            //_selectBox.SetWidth(50);

            _textField = new UI.TextField(value.Value.ToString(CultureInfo.InvariantCulture), skin);
            _textField.SetTextFieldFilter(new DigitsOnlyFilter()).SetPreferredWidth(50);
            _textField.OnTextChanged += (field, str) =>
            {
                int input;
                if (int.TryParse(str, NumberStyles.Integer, CultureInfo.InvariantCulture, out input))
                {
                    Direction newValue = new Direction(input);
                    SetValue(newValue);
                }
            };

            var directions = new List <string>()
            {
                "S", "SE", "E", "NE", "N", "NW", "W", "SW"
            };

            _selectBox.SetItems(directions);

            _selectBox.OnChanged += selectedItem => { SetValue((Direction)directions.IndexOf(selectedItem)); };

            var hBox = new HorizontalGroup(5);

            hBox.AddElement(_selectBox);
            hBox.AddElement(_textField);

            table.Add(label);
            table.Add(hBox);
        }
Ejemplo n.º 5
0
        public override void initialize(Table table, Skin skin)
        {
            var value = getValue <Color>();
            var label = createNameLabel(table, skin);

            var labelR = new Label("r", skin);

            _textFieldR = new TextField(value.R.ToString(), skin);
            _textFieldR.setMaxLength(3);
            _textFieldR.setTextFieldFilter(new DigitsOnlyFilter()).setPreferredWidth(28);
            _textFieldR.onTextChanged += (field, str) =>
            {
                int newR;
                if (int.TryParse(str, out newR))
                {
                    var newValue = getValue <Color>();
                    newValue.R = (byte)newR;
                    setValue(newValue);
                }
            };

            var labelG = new Label("g", skin);

            _textFieldG = new TextField(value.G.ToString(), skin);
            _textFieldG.setMaxLength(3);
            _textFieldG.setTextFieldFilter(new DigitsOnlyFilter()).setPreferredWidth(28);
            _textFieldG.onTextChanged += (field, str) =>
            {
                int newG;
                if (int.TryParse(str, out newG))
                {
                    var newValue = getValue <Color>();
                    newValue.G = (byte)newG;
                    setValue(newValue);
                }
            };

            var labelB = new Label("b", skin);

            _textFieldB = new TextField(value.B.ToString(), skin);
            _textFieldB.setMaxLength(3);
            _textFieldB.setTextFieldFilter(new DigitsOnlyFilter()).setPreferredWidth(28);
            _textFieldB.onTextChanged += (field, str) =>
            {
                int newB;
                if (int.TryParse(str, out newB))
                {
                    var newValue = getValue <Color>();
                    newValue.B = (byte)newB;
                    setValue(newValue);
                }
            };

            var labelA = new Label("a", skin);

            _textFieldA = new TextField(value.A.ToString(), skin);
            _textFieldA.setMaxLength(3);
            _textFieldA.setTextFieldFilter(new DigitsOnlyFilter()).setPreferredWidth(28);
            _textFieldA.onTextChanged += (field, str) =>
            {
                int newA;
                if (int.TryParse(str, out newA))
                {
                    var newValue = getValue <Color>();
                    newValue.A = (byte)newA;
                    setValue(newValue);
                }
            };

            var hBox = new HorizontalGroup(2);

            hBox.addElement(labelR);
            hBox.addElement(_textFieldR);
            hBox.addElement(labelG);
            hBox.addElement(_textFieldG);
            hBox.addElement(labelB);
            hBox.addElement(_textFieldB);
            hBox.addElement(labelA);
            hBox.addElement(_textFieldA);

            table.add(label);
            table.add(hBox);
        }
        public override void initialize()
        {
            this.Communication = Nez.Core.services.GetService <CommunicationManager>();
            setDesignResolution(1280, 720, Scene.SceneResolutionPolicy.NoBorderPixelPerfect);
            Screen.setSize(1280, 720);
            var myRenderer = new ScreenSpaceRenderer(100, SCREEN_SPACE_RENDER_LAYER);

            myRenderer.wantsToRenderAfterPostProcessors = false;
            addRenderer(myRenderer);
            var myGUIRenderer = new RenderLayerExcludeRenderer(0, SCREEN_SPACE_RENDER_LAYER);

            addRenderer(myGUIRenderer);
            canvas = createEntity("GUI").addComponent(new UICanvas());
            Texture2D LoginBackground = content.Load <Texture2D>("GUI/Login Elements/LoginBackground");

            //canvas.isFullScreen = true;
            canvas.stage.addElement(new Image(LoginBackground));
            ScrollPaneStyle myScrollStyle = new ScrollPaneStyle();

            myScrollStyle.hScrollKnob = new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Scrollbar/ScrollHandle"));
            myScrollStyle.hScroll     = new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Scrollbar/HScrollBar"));
            Bodies = new ScrollPane(myBodyGroup, myScrollStyle);
            Hair   = new ScrollPane(aHairGroup, myScrollStyle);
            HorizontalGroup myHGroup = new HorizontalGroup();

            myHGroup.setAlignment(Align.left);
            myHGroup.setY(70);
            myHGroup.setSpacing(0);
            VerticalGroup myCharacterDataGroup = new VerticalGroup();

            myCharacterDataGroup.setSpacing(20);
            myCharacterDataGroup.setAlignment(Align.left);
            myCharacterViewerGroup = new VerticalGroup();
            myCharacterViewerGroup.setY(70);
            HorizontalGroup mySexGroup = new HorizontalGroup();

            mySexGroup.setSpacing(10);


            CheckBox Male = new CheckBox("Male", new CheckBoxStyle(new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Unchecked")), new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Checked")), Nez.Core.content.Load <BitmapFont>("Fonts/NezDefaultBMFont"), Color.White));

            myDisplayedHair = new Image();
            myDisplayedBody = new Image();
            myImageStack.addElement(myDisplayedBody);
            myImageStack.addElement(myDisplayedHair);
            var ContainerStack = new Container(myImageStack);

            ContainerStack.setWidth(128);
            ContainerStack.setHeight(128);
            myCharacterViewerGroup.addElement(ContainerStack);

            CharacterCreatorSwitch = new Button(new ButtonStyle(new SubtextureDrawable(Core.content.Load <Texture2D>("GUI/Buttons/savebutton")), new SubtextureDrawable(Core.content.Load <Texture2D>("GUI/Buttons/savebutton")), new SubtextureDrawable(Core.content.Load <Texture2D>("GUI/Buttons/savebutton"))));
            CharacterCreatorSwitch.setTouchable(Touchable.Disabled);
            myCharacterViewerGroup.setAlignment(Align.bottom);
            myCharacterViewerGroup.addElement(Bodies);
            myCharacterViewerGroup.addElement(Hair);
            myCharacterViewerGroup.setPadTop(270);
            CheckBox Female = new CheckBox("Female", new CheckBoxStyle(new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Unchecked")), new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Checked")), Nez.Core.content.Load <BitmapFont>("Fonts/NezDefaultBMFont"), Color.White));

            Male.onChanged += delegate(bool myResult)
            {
                if (myResult)
                {
                    PlayerData.Sex = GameData.GameDataClasses.Entities.SEX.MALE;
                }
                else
                {
                    PlayerData.Sex = null;
                }
                Female.programmaticChangeEvents = false; //Prevents it from firing.
                Female.isChecked = false;
                Female.programmaticChangeEvents = true;
                UpdateCharacterWindow();
            };
            Female.onChanged += delegate(bool myResult)
            {
                if (myResult)
                {
                    PlayerData.Sex = GameData.GameDataClasses.Entities.SEX.FEMALE;
                }
                else
                {
                    PlayerData.Sex = null;
                }
                Male.programmaticChangeEvents = false; //Prevents it from firing.
                Male.isChecked = false;
                Male.programmaticChangeEvents = true;
                UpdateCharacterWindow();
            };

            mySexGroup.addElement(Male);
            mySexGroup.addElement(Female);
            myCharacterDataGroup.addElement(mySexGroup);
            HorizontalGroup myRaceGroupAndDescription = new HorizontalGroup();
            VerticalGroup   myRaceGroup  = new VerticalGroup();
            List <CheckBox> myRaceChecks = new List <CheckBox>();

            foreach (String A in Directory.EnumerateFiles("./Content/Races"))
            {
                String   aRacename   = Path.GetFileNameWithoutExtension(A);
                Race     aLoadedRace = Nez.Core.content.Load <Race>("Races/" + aRacename);
                CheckBox aNewRace    = new CheckBox(aRacename, new CheckBoxStyle(new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Unchecked")), new SubtextureDrawable(Nez.Core.content.Load <Texture2D>("GUI/Checkbox Elements/Checkbox_Checked")), Nez.Core.content.Load <BitmapFont>("Fonts/NezDefaultBMFont"), Color.White));
                myRaceChecks.Add(aNewRace);
                aNewRace.onChanged += delegate(bool myResult)
                {
                    var Racebox = aNewRace;
                    if (myResult)
                    {
                        foreach (CheckBox a in myRaceChecks)
                        {
                            if (Racebox != a)
                            {
                                a.isChecked = false;
                            }
                        }

                        Race myInternalRace = aLoadedRace;
                        SetRace(myInternalRace);
                        UpdateCharacterWindow();
                    }
                    else
                    {
                        SetRace(null);
                        UpdateCharacterWindow();
                    }
                };
                aNewRace.OnMouseOver += delegate(bool myResult)
                {
                    if (myResult)
                    {
                        Race myInternalRace = aLoadedRace;
                        myRaceDescription.setText(myInternalRace.Description);
                        myRaceDescription.setWrap(true);
                    }
                    else
                    {
                        myRaceDescription.setText("");
                    }
                };
                myRaceGroup.addElement(aNewRace);
            }
            myRaceDescription = new Label("Race Description HERE");
            myRaceDescription.setWidth(Screen.width * 0.25f);
            myRaceDescription.setHeight(30);
            myRaceDescription.setWrap(true);
            myRaceGroup.setAlignment(Align.bottomLeft);
            myRaceGroupAndDescription.setSpacing(10);
            myRaceGroupAndDescription.setWidth(100);
            myRaceGroupAndDescription.addElement(myRaceGroup);
            myRaceGroupAndDescription.setAlignment(Align.left);
            Container aRaceDescriptionHolder = new Container();

            aRaceDescriptionHolder.setSize(Screen.width * 0.25f, 30);
            aRaceDescriptionHolder.setY(0);
            aRaceDescriptionHolder.addElement(myRaceDescription);
            myRaceGroupAndDescription.addElement(aRaceDescriptionHolder);
            myCharacterDataGroup.addElement(myRaceGroupAndDescription);
            myHGroup.addElement(myCharacterDataGroup);
            myHGroup.addElement(myCharacterViewerGroup);
            //Professions GUI
            HorizontalGroup myHorizontalProfessions = new HorizontalGroup();
            VerticalGroup   myProfessionsbox        = new VerticalGroup();

            //Iterate professions however we're doing it
            myHorizontalProfessions.addElement(myProfessionsbox);
            VerticalGroup myProfessionsDesc       = new VerticalGroup();
            Label         myProfessionDescription = new Label("Profession Description HERE");

            myProfessionsDesc.addElement(myProfessionDescription);
            Label myProfessionAlert = new Label("Profession Alertbox HERE");

            myProfessionsDesc.addElement(myProfessionAlert);
            myHorizontalProfessions.addElement(myProfessionsDesc);
            myCharacterDataGroup.addElement(myHorizontalProfessions);
            canvas.stage.addElement(myHGroup);
            //myHGroup.add(myInternalHGroup);*/
            base.initialize();
        }