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); }
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); }
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); }
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); }
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(); }