public override void OnEntry(GameTime gameTime) { KeyboardEventDispatcher.OnKeyPressed += KeyboardEventDispatcher_OnKeyPressed; font = game.Content.Load <SpriteFont>(@"Fonts\CourierNew32"); wr = new WidgetRenderer(G, font); wUsername = new TextWidget(wr); wUsername.Anchor = new Point(G.Viewport.Width / 2, G.Viewport.Height / 2); wUsername.AlignY = Alignment.BOTTOM; wUsername.AlignX = Alignment.MID; wUsername.Color = Color.White; wUsername.Height = 32; ButtonHighlightOptions h1 = new ButtonHighlightOptions(100, 30, Color.Red); ButtonHighlightOptions h2 = new ButtonHighlightOptions(100, 30, Color.Green); bFinish = new RectButton(wr, h1, h2); bFinish.OffsetAlignY = Alignment.BOTTOM; bFinish.OffsetAlignX = Alignment.MID; bFinish.AlignX = Alignment.MID; bFinish.Offset = new Point(0, 0); bFinish.Parent = wUsername; bFinish.OnButtonPress += bFinish_OnButtonPress; bFinish.Hook(); txtLogin = new TextWidget(wr); txtLogin.Height = bFinish.Height; txtLogin.Text = "Login"; txtLogin.Color = Color.Black; txtLogin.AlignX = Alignment.MID; txtLogin.AlignY = Alignment.MID; txtLogin.OffsetAlignX = Alignment.MID; txtLogin.OffsetAlignY = Alignment.MID; txtLogin.Parent = bFinish; tInput = new TextInput(); tInput.OnTextChanged += tInput_OnTextChanged; tInput.Activate(); tInput.Text = UserConfig.UserName; if (UserConfig.UserName.Equals(UserConfig.DEFAULT_USER_NAME)) { // Must Create A Default User Name wUsername.Text = "Please Enter A New Username"; } }
public TeamInitWidget(WidgetRenderer wr, int w, int h, int buf, Color cBack, ButtonHighlightOptions bh1, ButtonHighlightOptions bh2, Color cText) { BackRect = new RectWidget(wr); BackRect.Width = w; BackRect.Height = h; BackRect.Offset = new Point(0, 0); BackRect.OffsetAlignY = Alignment.BOTTOM; BackRect.Color = cBack; BackRect.LayerDepth = 1f; int wh = h - buf * 2; TextIndex = new TextWidget(wr); TextIndex.Offset = new Point(buf, 0); TextIndex.OffsetAlignX = Alignment.LEFT; TextIndex.OffsetAlignY = Alignment.MID; TextIndex.AlignX = Alignment.LEFT; TextIndex.AlignY = Alignment.MID; TextIndex.Height = wh; TextIndex.Color = cText; TextIndex.Parent = BackRect; TextIndex.LayerDepth = 0.3f; TextUser = new TextWidget(wr); TextUser.Offset = new Point(buf, 0); TextUser.OffsetAlignX = Alignment.RIGHT; TextUser.OffsetAlignY = Alignment.MID; TextUser.AlignX = Alignment.LEFT; TextUser.AlignY = Alignment.MID; TextUser.Height = wh; TextUser.Color = cText; TextUser.Parent = TextIndex; TextUser.LayerDepth = 0.3f; ButtonScheme = new RectButton(wr, bh1, bh2); ButtonScheme.Offset = new Point(-buf, 0); ButtonScheme.OffsetAlignX = Alignment.RIGHT; ButtonScheme.OffsetAlignY = Alignment.MID; ButtonScheme.AlignX = Alignment.RIGHT; ButtonScheme.AlignY = Alignment.MID; ButtonScheme.Parent = BackRect; ButtonScheme.LayerDepth = 0.3f; TextScheme = new TextWidget(wr); TextScheme.Height = bh1.Height; TextScheme.Text = "Default"; TextScheme.Offset = new Point(0, 0); TextScheme.OffsetAlignX = Alignment.MID; TextScheme.OffsetAlignY = Alignment.MID; TextScheme.AlignX = Alignment.MID; TextScheme.AlignY = Alignment.MID; TextScheme.Parent = ButtonScheme; TextScheme.Color = cText; TextScheme.LayerDepth = 0f; ButtonRace = new RectButton(wr, bh1, bh2); ButtonRace.Offset = new Point(-buf, 0); ButtonRace.OffsetAlignX = Alignment.LEFT; ButtonRace.OffsetAlignY = Alignment.MID; ButtonRace.AlignX = Alignment.RIGHT; ButtonRace.AlignY = Alignment.MID; ButtonRace.Parent = ButtonScheme; ButtonRace.LayerDepth = 0.3f; TextRace = new TextWidget(wr); TextRace.Height = bh1.Height; TextRace.Text = "Race"; TextRace.Offset = new Point(0, 0); TextRace.OffsetAlignX = Alignment.MID; TextRace.OffsetAlignY = Alignment.MID; TextRace.AlignX = Alignment.MID; TextRace.AlignY = Alignment.MID; TextRace.Parent = ButtonRace; TextRace.Color = cText; TextRace.LayerDepth = 0f; ButtonPlayerType = new RectButton(wr, bh1, bh2); ButtonPlayerType.Offset = new Point(-buf, 0); ButtonPlayerType.OffsetAlignX = Alignment.LEFT; ButtonPlayerType.OffsetAlignY = Alignment.MID; ButtonPlayerType.AlignX = Alignment.RIGHT; ButtonPlayerType.AlignY = Alignment.MID; ButtonPlayerType.Parent = ButtonRace; ButtonPlayerType.LayerDepth = 0.3f; TextPlayerType = new TextWidget(wr); TextPlayerType.Height = bh1.Height; TextPlayerType.Text = "None"; TextPlayerType.Offset = new Point(0, 0); TextPlayerType.OffsetAlignX = Alignment.MID; TextPlayerType.OffsetAlignY = Alignment.MID; TextPlayerType.AlignX = Alignment.MID; TextPlayerType.AlignY = Alignment.MID; TextPlayerType.Parent = ButtonPlayerType; TextPlayerType.Color = cText; TextPlayerType.LayerDepth = 0f; ButtonScheme.Hook(); ButtonRace.Hook(); ButtonPlayerType.Hook(); ButtonScheme.OnButtonPress += ButtonScheme_OnButtonPress; ButtonRace.OnButtonPress += ButtonRace_OnButtonPress; ButtonPlayerType.OnButtonPress += ButtonPlayerType_OnButtonPress; }
public override void OnEntry(GameTime gameTime) { // Load All The Races And Schemes Races = new Dictionary <string, FileInfo>(); schemes = new Dictionary <string, RTSColorScheme>(); GameEngine.SearchAllInitInfo(new DirectoryInfo("Packs"), Races, schemes); if (schemes.Count < 1) { schemes.Add("Default", RTSColorScheme.Default); } string defScheme = "Default"; foreach (var kvp in schemes) { defScheme = kvp.Key; break; } // Set Init Data To Be Nothing game.LoadScreen.LoadFile = null; eld = new EngineLoadData(); eld.Teams = new TeamInitOption[GameState.MAX_PLAYERS]; for (int i = 0; i < eld.Teams.Length; i++) { eld.Teams[i].InputType = RTSInputType.None; eld.Teams[i].Race = null; eld.Teams[i].PlayerName = null; eld.Teams[i].Colors = schemes[defScheme]; } game.LoadScreen.LoadData = eld; wr = new WidgetRenderer(G, game.Content.Load <SpriteFont>(@"Fonts\Impact32")); widgets = new TeamInitWidget[eld.Teams.Length]; ButtonHighlightOptions bh1 = new ButtonHighlightOptions(120, 36, Color.Black); ButtonHighlightOptions bh2 = new ButtonHighlightOptions(120, 36, Color.DarkGray); string[] pt = { "None", "Player", "Computer", "Environment" }; for (int i = 0; i < widgets.Length; i++) { widgets[i] = new TeamInitWidget(wr, 600, 44, 8, new Color(8, 8, 8), bh1, bh2, Color.Lime); if (i > 0) { widgets[i].Parent = widgets[i - 1].BackRect; } widgets[i].TextIndex.Text = (i + 1).ToString(); widgets[i].TextUser.Text = "Unknown"; widgets[i].Set(pt, Races, schemes); } widgets[0].TextUser.Text = UserConfig.UserName; menuPresets = new ScrollMenu(wr, game.Window.ClientBounds.Width - widgets[0].BackRect.Width - 20, 24, game.Window.ClientBounds.Height / 24, 20, 40 ); menuPresets.BaseColor = UserConfig.MainScheme.WidgetBase; menuPresets.TextColor = UserConfig.MainScheme.Text; menuPresets.ScrollBarBaseColor = UserConfig.MainScheme.WidgetInactive; menuPresets.HighlightColor = UserConfig.MainScheme.WidgetActive; menuPresets.Widget.Anchor = new Point(game.Window.ClientBounds.Width - 20, 0); menuPresets.Widget.AlignX = Alignment.RIGHT; menuPresets.Build((from gp in gPresets select gp.Name).ToArray()); menuPresets.Hook(); textMap = new TextWidget(wr); textMap.Color = UserConfig.MainScheme.Text; textMap.Offset = new Point(0, 5); textMap.Height = 32; textMap.OffsetAlignY = Alignment.BOTTOM; textMap.Parent = widgets[widgets.Length - 1].BackRect; textGTController = new TextWidget(wr); textGTController.Color = UserConfig.MainScheme.Text; textGTController.Offset = new Point(0, 5); textGTController.Height = 32; textGTController.OffsetAlignY = Alignment.BOTTOM; textGTController.Parent = textMap; SetWidgetData(gPresets[0]); DevConsole.OnNewCommand += DevConsole_OnNewCommand; KeyboardEventDispatcher.OnKeyPressed += OnKeyPressed; MouseEventDispatcher.OnMousePress += OnMP; }