public GameScreen(ScreenComponent manager) : base(manager) { DefaultMouseMode = MouseMode.Captured; Manager = manager; Padding = Border.All(0); scene = new SceneControl(manager); scene.HorizontalAlignment = HorizontalAlignment.Stretch; scene.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(scene); debug = new DebugControl(manager); debug.HorizontalAlignment = HorizontalAlignment.Stretch; debug.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(debug); compass = new CompassControl(manager); compass.HorizontalAlignment = HorizontalAlignment.Center; compass.VerticalAlignment = VerticalAlignment.Top; compass.Width = 300; compass.Height = 30; Controls.Add(compass); toolbar = new ToolbarControl(manager); toolbar.HorizontalAlignment = HorizontalAlignment.Stretch; toolbar.VerticalAlignment = VerticalAlignment.Bottom; toolbar.Height = 100; Controls.Add(toolbar); minimap = new MinimapControl(manager, scene); minimap.HorizontalAlignment = HorizontalAlignment.Right; minimap.VerticalAlignment = VerticalAlignment.Bottom; minimap.Width = 128; minimap.Height = 128; minimap.Margin = Border.All(5); Controls.Add(minimap); crosshair = new CrosshairControl(manager); crosshair.HorizontalAlignment = HorizontalAlignment.Center; crosshair.VerticalAlignment = VerticalAlignment.Center; crosshair.Width = 8; crosshair.Height = 8; Controls.Add(crosshair); Title = "Game"; //Register Action manager.Game.KeyMapper.AddAction("octoawesome:forward", type => { if (type == KeyMapper.KeyType.Down) { pressedMoveUp = true; } else if (type == KeyMapper.KeyType.Up) { pressedMoveUp = false; } }); }
public MessageScreen(ScreenComponent manager, string title, string content, string buttonText = "OK", Action <Control, MouseEventArgs> buttonClick = null) : base(manager) { assets = manager.Game.Assets; IsOverlay = true; Background = new BorderBrush(Color.Black * 0.5f); Title = title; panel = new Panel(manager) { Padding = Border.All(20), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }; Controls.Add(panel); StackPanel spanel = new StackPanel(manager); panel.Controls.Add(spanel); Label headLine = new Label(manager) { Text = title, Font = Skin.Current.HeadlineFont, HorizontalAlignment = HorizontalAlignment.Stretch }; spanel.Controls.Add(headLine); Label contentLabel = new Label(manager) { Text = content, Font = Skin.Current.TextFont, HorizontalAlignment = HorizontalAlignment.Stretch }; spanel.Controls.Add(contentLabel); Button closeButton = Button.TextButton(manager, buttonText); closeButton.HorizontalAlignment = HorizontalAlignment.Stretch; closeButton.LeftMouseClick += (s, e) => { if (buttonClick != null) { buttonClick(s, e); } else { manager.NavigateBack(); } }; spanel.Controls.Add(closeButton); panel.Background = NineTileBrush.FromSingleTexture(assets.LoadTexture(typeof(ScreenComponent), "panel"), 30, 30); }
/// <summary> /// Erzeugt eine neue Instanz der Textbox-Klasse /// </summary> /// <param name="manager"></param> /// <param name="style"></param> public Textbox(BaseScreenComponent manager, string style = "") : base(manager, style) { TextColor = Color.Black; TabStop = true; CanFocus = true; Padding = Border.All(5); ApplySkin(typeof(Textbox)); }
public CompassControl(ScreenComponent screenManager) : base(screenManager) { Player = screenManager.Player; Padding = Border.All(7); Background = NineTileBrush.FromSingleTexture( screenManager.Game.Screen.Content.LoadTexture2DFromFile("./Assets/OctoAwesome.Client/UI/buttonLong_brown_pressed.png", screenManager.GraphicsDevice), 7, 7); compassTexture = ScreenManager.Content.LoadTexture2DFromFile("./Assets/OctoAwesome.Client/compass.png", ScreenManager.GraphicsDevice); }
public Screen(IScreenManager manager) : base(manager) { Manager = manager; IsOverlay = false; InHistory = true; HorizontalAlignment = HorizontalAlignment.Stretch; VerticalAlignment = VerticalAlignment.Stretch; Margin = Border.All(0); Padding = Border.All(20); ApplySkin(typeof(Screen)); }
public CompassControl(ScreenComponent screenManager) : base(screenManager) { assets = screenManager.Game.Assets; Player = screenManager.Player; Padding = Border.All(7); Texture2D background = assets.LoadTexture(typeof(ScreenComponent), "buttonLong_brown_pressed"); Background = NineTileBrush.FromSingleTexture(background, 7, 7); compassTexture = assets.LoadTexture(GetType(), "compass"); }
/// <summary> /// Erzeugt einen neuen Screen. /// </summary> /// <param name="manager">Der verwendete <see cref="BaseScreenComponent"/></param> public Screen(BaseScreenComponent manager) : base(manager) { Manager = manager; IsOverlay = false; InHistory = true; IsVisibleScreen = false; IsActiveScreen = false; DefaultMouseMode = MouseMode.Free; HorizontalAlignment = HorizontalAlignment.Stretch; VerticalAlignment = VerticalAlignment.Stretch; Margin = Border.All(0); Padding = Border.All(20); ApplySkin(typeof(Screen)); }
public GameScreen(ScreenComponent manager) : base(manager) { DefaultMouseMode = MouseMode.Captured; Manager = manager; Padding = Border.All(0); scene = new SceneControl(manager); scene.HorizontalAlignment = HorizontalAlignment.Stretch; scene.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(scene); debug = new DebugControl(manager); debug.HorizontalAlignment = HorizontalAlignment.Stretch; debug.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(debug); compass = new CompassControl(manager); compass.HorizontalAlignment = HorizontalAlignment.Center; compass.VerticalAlignment = VerticalAlignment.Top; compass.Width = 300; compass.Height = 30; Controls.Add(compass); toolbar = new ToolbarControl(manager); toolbar.HorizontalAlignment = HorizontalAlignment.Stretch; toolbar.VerticalAlignment = VerticalAlignment.Bottom; toolbar.Height = 100; Controls.Add(toolbar); minimap = new MinimapControl(manager, scene); minimap.HorizontalAlignment = HorizontalAlignment.Right; minimap.VerticalAlignment = VerticalAlignment.Bottom; minimap.Width = 128; minimap.Height = 128; minimap.Margin = Border.All(5); Controls.Add(minimap); crosshair = new CrosshairControl(manager); crosshair.HorizontalAlignment = HorizontalAlignment.Center; crosshair.VerticalAlignment = VerticalAlignment.Center; crosshair.Width = 8; crosshair.Height = 8; Controls.Add(crosshair); Title = "Game"; }
public GameScreen(ScreenComponent manager) : base(manager) { Manager = manager; Padding = Border.All(0); SceneControl scene = new SceneControl(manager); scene.HorizontalAlignment = HorizontalAlignment.Stretch; scene.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(scene); DebugControl debug = new DebugControl(manager); debug.HorizontalAlignment = HorizontalAlignment.Stretch; debug.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(debug); CompassControl compass = new CompassControl(manager); compass.HorizontalAlignment = HorizontalAlignment.Center; compass.VerticalAlignment = VerticalAlignment.Top; compass.Width = 300; compass.Height = 30; Controls.Add(compass); ToolbarControl toolbar = new ToolbarControl(manager); toolbar.HorizontalAlignment = HorizontalAlignment.Stretch; toolbar.VerticalAlignment = VerticalAlignment.Bottom; toolbar.Height = 100; Controls.Add(toolbar); MinimapControl minimap = new MinimapControl(manager, scene); minimap.HorizontalAlignment = HorizontalAlignment.Right; minimap.VerticalAlignment = VerticalAlignment.Bottom; minimap.Width = 128; minimap.Height = 128; minimap.Margin = Border.All(5); Controls.Add(minimap); }
/// <summary> /// Wird aufgerufen wenn ein neues Element zu "Pages" hinzugefügt wird, erstellt einen neuen Eintrag in der TabList /// </summary> private void OnInsert(TabPage item, int index) { Label title = new Label(ScreenManager); title.Text = item.Title; title.Padding = Border.All(10); title.Background = TabBrush; title.Margin = new Border(0, 0, TabSpacing, 0); title.LeftMouseClick += (s, e) => SelectTab(Pages.IndexOf(item)); title.CanFocus = true; title.TabStop = true; title.KeyDown += (s, e) => { if (e.Key == engenious.Input.Keys.Enter && title.Focused == TreeState.Active) { SelectTab(Pages.IndexOf(item)); } }; tabListStack.Controls.Add(title); SelectTab(SelectedTabIndex); }
public Combobox(BaseScreenComponent manager) : base(manager) { mainControl = new ContentControl(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, Margin = Border.All(0), Padding = Border.All(0), }; Children.Add(mainControl); Selector = new Listbox <T>(manager); Selector.HorizontalAlignment = HorizontalAlignment.Left; Selector.VerticalAlignment = VerticalAlignment.Top; Selector.MaxHeight = 100; Selector.TemplateGenerator = GenerateControl; Selector.SelectedItemBrush = null; Selector.Background = new BorderBrush(Color.White); Selector.SelectedItemChanged += Selector_SelectedItemChanged; ApplySkin(typeof(Combobox <T>)); }
public LoadingScreen(ScreenComponent manager) : base(manager) { Padding = new Border(0, 0, 0, 0); tokenSource = new CancellationTokenSource(); Title = "Loading"; SetDefaultBackground(); //Main Panel var mainStack = new Grid(manager); mainStack.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 4 }); mainStack.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); mainStack.Margin = Border.All(50); mainStack.HorizontalAlignment = HorizontalAlignment.Stretch; mainStack.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(mainStack); var backgroundStack = new Panel(manager) { Background = new BorderBrush(Color.White * 0.5f), VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch, Margin = Border.All(10) }; mainStack.AddControl(backgroundStack, 0, 0, 1, 1); var mainGrid = new Grid(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch }; mainGrid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); mainGrid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 3 }); mainGrid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); mainGrid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 4 }); mainGrid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); mainGrid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); mainGrid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 4 }); backgroundStack.Controls.Add(mainGrid); var text = new Label(manager) { Text = "Konfuzius sagt: Das hier lädt...", HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, Padding = Border.All(10), }; quoteUpdate = Task.Run(async() => await UpdateLabel(text, loadingQuoteProvider, TimeSpan.FromSeconds(1.5), tokenSource.Token)); mainGrid.AddControl(text, 1, 1); //Buttons var buttonStack = new StackPanel(manager) { VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Orientation = Orientation.Horizontal }; mainGrid.AddControl(buttonStack, 1, 2); Button cancelButton = GetButton(Languages.OctoClient.Cancel); buttonStack.Controls.Add(cancelButton); Debug.WriteLine("Create GameScreen"); gameScreen = new GameScreen(manager); gameScreen.Update(new GameTime()); gameScreen.OnCenterChanged += SwitchToGame; cancelButton.LeftMouseClick += (s, e) => { tokenSource.Cancel(); tokenSource.Dispose(); manager.Player.SetEntity(null); manager.Game.Simulation.ExitGame(); gameScreen.Unload(); manager.NavigateBack(); }; }
public InventoryScreen(ScreenComponent manager) : base(manager) { assets = manager.Game.Assets; foreach (var item in manager.Game.DefinitionManager.GetDefinitions()) { Texture2D texture = manager.Game.Assets.LoadTexture(item.GetType(), item.Icon); toolTextures.Add(item.GetType().FullName, texture); } player = manager.Player; IsOverlay = true; Background = new BorderBrush(Color.Black * 0.3f); backgroundBrush = new BorderBrush(Color.Black); hoverBrush = new BorderBrush(Color.Brown); Texture2D panelBackground = assets.LoadTexture(typeof(ScreenComponent), "panel"); Grid grid = new Grid(manager) { Width = 800, Height = 500, }; grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Fixed, Width = 600 }); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Fixed, Width = 200 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Fixed, Height = 100 }); Controls.Add(grid); inventory = new InventoryControl(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, Background = NineTileBrush.FromSingleTexture(panelBackground, 30, 30), Padding = Border.All(20), }; grid.AddControl(inventory, 0, 0); StackPanel infoPanel = new StackPanel(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, Background = NineTileBrush.FromSingleTexture(panelBackground, 30, 30), Padding = Border.All(20), Margin = Border.All(10, 0, 0, 0), }; nameLabel = new Label(manager); infoPanel.Controls.Add(nameLabel); massLabel = new Label(manager); infoPanel.Controls.Add(massLabel); volumeLabel = new Label(manager); infoPanel.Controls.Add(volumeLabel); grid.AddControl(infoPanel, 1, 0); Grid toolbar = new Grid(manager) { Margin = Border.All(0, 10, 0, 0), Height = 100, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, Background = NineTileBrush.FromSingleTexture(panelBackground, 30, 30), }; toolbar.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); for (int i = 0; i < ToolBarComponent.TOOLCOUNT; i++) { toolbar.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Fixed, Width = 50 }); } toolbar.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); toolbar.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); images = new Image[ToolBarComponent.TOOLCOUNT]; for (int i = 0; i < ToolBarComponent.TOOLCOUNT; i++) { Image image = images[i] = new Image(manager) { Width = 42, Height = 42, Background = backgroundBrush, HorizontalAlignment = HorizontalAlignment.Center, Tag = i, Padding = Border.All(2), }; image.StartDrag += (e) => { InventorySlot slot = player.Toolbar.Tools[(int)image.Tag]; if (slot != null) { e.Handled = true; e.Icon = toolTextures[slot.Definition.GetType().FullName]; e.Content = slot; e.Sender = toolbar; } }; image.DropEnter += (e) => { image.Background = hoverBrush; }; image.DropLeave += (e) => { image.Background = backgroundBrush; }; image.EndDrop += (e) => { e.Handled = true; if (e.Sender is Grid) // && ShiftPressed { // Swap int targetIndex = (int)image.Tag; InventorySlot targetSlot = player.Toolbar.Tools[targetIndex]; InventorySlot sourceSlot = e.Content as InventorySlot; int sourceIndex = player.Toolbar.GetSlotIndex(sourceSlot); player.Toolbar.SetTool(sourceSlot, targetIndex); player.Toolbar.SetTool(targetSlot, sourceIndex); } else { // Inventory Drop InventorySlot slot = e.Content as InventorySlot; player.Toolbar.SetTool(slot, (int)image.Tag); } }; toolbar.AddControl(image, i + 1, 0); } grid.AddControl(toolbar, 0, 1, 2); Title = Languages.OctoClient.Inventory; }
public LoadScreen(ScreenComponent manager) : base(manager) { Manager = manager; settings = manager.Game.Settings; Padding = new Border(0, 0, 0, 0); Title = Languages.OctoClient.SelectUniverse; SetDefaultBackground(); //Main Panel mainStack = new Grid(manager); mainStack.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 3 }); mainStack.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); mainStack.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); mainStack.Margin = Border.All(50); mainStack.HorizontalAlignment = HorizontalAlignment.Stretch; mainStack.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(mainStack); //Level Stack levelList = new Listbox <IUniverse>(manager); levelList.Background = new BorderBrush(Color.White * 0.5f); levelList.VerticalAlignment = VerticalAlignment.Stretch; levelList.HorizontalAlignment = HorizontalAlignment.Stretch; levelList.Margin = Border.All(10); levelList.SelectedItemBrush = new BorderBrush(Color.SaddleBrown * 0.7f); levelList.TemplateGenerator += (x) => { return(new Label(manager) { Text = string.Format("{0} ({1})", x.Name, x.Seed), HorizontalAlignment = HorizontalAlignment.Stretch, Padding = Border.All(10), }); }; mainStack.AddControl(levelList, 0, 0); //Sidebar Panel sidebar = new Panel(manager); sidebar.Padding = Border.All(20); sidebar.VerticalAlignment = VerticalAlignment.Stretch; sidebar.HorizontalAlignment = HorizontalAlignment.Stretch; sidebar.Background = new BorderBrush(Color.White * 0.5f); sidebar.Margin = Border.All(10); mainStack.AddControl(sidebar, 1, 0); //Universe Info Label l = new Label(manager); l.Text = " Placeholder "; l.VerticalAlignment = VerticalAlignment.Top; l.HorizontalAlignment = HorizontalAlignment.Left; sidebar.Controls.Add(l); //Buttons StackPanel buttonStack = new StackPanel(manager); buttonStack.VerticalAlignment = VerticalAlignment.Bottom; buttonStack.HorizontalAlignment = HorizontalAlignment.Stretch; sidebar.Controls.Add(buttonStack); //renameButton = getButton("Rename"); //buttonStack.Controls.Add(renameButton); deleteButton = GetButton(Languages.OctoClient.Delete); buttonStack.Controls.Add(deleteButton); deleteButton.LeftMouseClick += (s, e) => { if (levelList.SelectedItem == null) { MessageScreen msg = new MessageScreen(manager, Languages.OctoClient.Error, Languages.OctoClient.SelectUniverseFirst); manager.NavigateToScreen(msg); return; } // Sicherstellen, dass universe nicht geladen ist if (ResourceManager.Instance.CurrentUniverse != null && ResourceManager.Instance.CurrentUniverse.Id == levelList.SelectedItem.Id) { return; } ResourceManager.Instance.DeleteUniverse(levelList.SelectedItem.Id); levelList.Items.Remove(levelList.SelectedItem); levelList.SelectedItem = null; levelList.InvalidateDimensions(); settings.Set("LastUniverse", ""); }; createButton = GetButton(Languages.OctoClient.Create); createButton.LeftMouseClick += (s, e) => manager.NavigateToScreen(new CreateUniverseScreen(manager)); buttonStack.Controls.Add(createButton); playButton = GetButton(Languages.OctoClient.Play); playButton.LeftMouseClick += (s, e) => { if (levelList.SelectedItem == null) { MessageScreen msg = new MessageScreen(manager, Languages.OctoClient.Error, Languages.OctoClient.SelectUniverseFirst); manager.NavigateToScreen(msg); return; } Play(); }; buttonStack.Controls.Add(playButton); foreach (var universe in ResourceManager.Instance.ListUniverses()) { levelList.Items.Add(universe); } // Erstes Element auswählen, oder falls vorhanden das letzte gespielte Universum if (levelList.Items.Count >= 1) { levelList.SelectedItem = levelList.Items[0]; } if (settings.KeyExists("LastUniverse") && settings.Get <string>("LastUniverse") != null && settings.Get <string>("LastUniverse") != "") { var lastlevel = levelList.Items.FirstOrDefault(u => u.Id == Guid.Parse(settings.Get <string>("LastUniverse"))); if (lastlevel != null) { levelList.SelectedItem = lastlevel; } } }
public CreateUniverseScreen(ScreenComponent manager) : base(manager) { Manager = manager; Padding = new Border(0, 0, 0, 0); SetDefaultBackground(); Panel panel = new Panel(manager); panel.VerticalAlignment = VerticalAlignment.Stretch; panel.HorizontalAlignment = HorizontalAlignment.Stretch; panel.Margin = Border.All(50); panel.Background = new BorderBrush(Color.White * 0.5f); panel.Padding = Border.All(10); Controls.Add(panel); Grid grid = new Grid(manager); grid.VerticalAlignment = VerticalAlignment.Stretch; grid.HorizontalAlignment = HorizontalAlignment.Stretch; panel.Controls.Add(grid); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Auto }); grid.Columns.Add(new ColumnDefinition() { Width = 1, ResizeMode = ResizeMode.Parts }); nameInput = GetTextbox(); nameInput.TextChanged += (s, e) => { createButton.Visible = !string.IsNullOrEmpty(e.NewValue); }; AddLabeledControl(grid, "Name: ", nameInput); seedInput = GetTextbox(); AddLabeledControl(grid, "Seed: ", seedInput); createButton = Button.TextButton(manager, "Create"); createButton.HorizontalAlignment = HorizontalAlignment.Right; createButton.VerticalAlignment = VerticalAlignment.Bottom; createButton.Visible = false; createButton.LeftMouseClick += (s, e) => { if (string.IsNullOrEmpty(nameInput.Text)) { return; } int?seed = null; int textseed; if (int.TryParse(seedInput.Text, out textseed)) { seed = textseed; } manager.Player.RemovePlayer(); Guid guid = Manager.Game.Simulation.NewGame(nameInput.Text, seed); SettingsManager.Set("LastUniverse", guid.ToString()); manager.Game.Player.InsertPlayer(); manager.NavigateToScreen(new GameScreen(manager)); }; panel.Controls.Add(createButton); }
public ConnectionScreen(ScreenComponent manager) : base(manager) { game = Manager.Game; Padding = new Border(0, 0, 0, 0); Title = Languages.OctoClient.CreateUniverse; SetDefaultBackground(); var panel = new StackPanel(manager) { VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch, Margin = Border.All(50), Background = new BorderBrush(Color.White * 0.5f), Padding = Border.All(10) }; Controls.Add(panel); var grid = new Grid(manager) { VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch }; panel.Controls.Add(grid); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Auto }); grid.Columns.Add(new ColumnDefinition() { Width = 1, ResizeMode = ResizeMode.Parts }); var serverNameInput = new Textbox(manager) { Text = game.Settings.Get("server", "localhost"), HorizontalAlignment = HorizontalAlignment.Stretch, Background = new BorderBrush(Color.LightGray, LineType.Solid, Color.Black) }; AddLabeledControl(grid, "Host:", serverNameInput); var playerNameInput = new Textbox(manager) { Text = game.Settings.Get("player", "USERNAME"), HorizontalAlignment = HorizontalAlignment.Stretch, Background = new BorderBrush(Color.LightGray, LineType.Solid, Color.Black) }; AddLabeledControl(grid, "Username:"******"server", serverNameInput.Text); game.Settings.Set("player", playerNameInput.Text); ((ContainerResourceManager)game.ResourceManager) .CreateManager(game.ExtensionLoader, game.DefinitionManager, game.Settings, true); PlayMultiplayer(manager, playerNameInput.Text); }; grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, }); grid.AddControl(createButton, 1, grid.Rows.Count - 1); }
public GameScreen(ScreenComponent manager) : base(manager) { DefaultMouseMode = MouseMode.Captured; Manager = manager; Padding = Border.All(0); scene = new SceneControl(manager); scene.HorizontalAlignment = HorizontalAlignment.Stretch; scene.VerticalAlignment = VerticalAlignment.Stretch; Controls.Add(scene); debug = new DebugControl(manager); debug.HorizontalAlignment = HorizontalAlignment.Stretch; debug.VerticalAlignment = VerticalAlignment.Stretch; debug.Visible = false; Controls.Add(debug); compass = new CompassControl(manager); compass.HorizontalAlignment = HorizontalAlignment.Center; compass.VerticalAlignment = VerticalAlignment.Top; compass.Margin = Border.All(10); compass.Width = 300; compass.Height = 50; Controls.Add(compass); toolbar = new ToolbarControl(manager); toolbar.HorizontalAlignment = HorizontalAlignment.Stretch; toolbar.VerticalAlignment = VerticalAlignment.Bottom; toolbar.Height = 100; Controls.Add(toolbar); minimap = new MinimapControl(manager, scene); minimap.HorizontalAlignment = HorizontalAlignment.Right; minimap.VerticalAlignment = VerticalAlignment.Bottom; minimap.Width = 128; minimap.Height = 128; minimap.Margin = Border.All(5); Controls.Add(minimap); healthbar = new HealthBarControl(manager); healthbar.HorizontalAlignment = HorizontalAlignment.Left; healthbar.VerticalAlignment = VerticalAlignment.Bottom; healthbar.Width = 240; healthbar.Height = 78; healthbar.Maximum = 100; healthbar.Value = 40; healthbar.Margin = Border.All(20, 30); Controls.Add(healthbar); crosshair = new CrosshairControl(manager); crosshair.HorizontalAlignment = HorizontalAlignment.Center; crosshair.VerticalAlignment = VerticalAlignment.Center; crosshair.Width = 8; crosshair.Height = 8; Controls.Add(crosshair); Title = Languages.OctoClient.Game; RegisterKeyActions(); }
public OptionsScreen(ScreenComponent manager) : base(manager) { assets = manager.Game.Assets; Padding = new Border(0, 0, 0, 0); Title = Languages.OctoClient.Options; Texture2D panelBackground = assets.LoadTexture(typeof(ScreenComponent), "panel"); SetDefaultBackground(); TabControl tabs = new TabControl(manager) { Padding = new Border(20, 20, 20, 20), Width = 700, TabPageBackground = NineTileBrush.FromSingleTexture(panelBackground, 30, 30), TabBrush = NineTileBrush.FromSingleTexture(assets.LoadTexture(typeof(ScreenComponent), "buttonLong_brown"), 15, 15), TabActiveBrush = NineTileBrush.FromSingleTexture(assets.LoadTexture(typeof(ScreenComponent), "buttonLong_beige"), 15, 15), }; Controls.Add(tabs); #region OptionsPage TabPage optionsPage = new TabPage(manager, Languages.OctoClient.Options); tabs.Pages.Add(optionsPage); OptionsOptionControl optionsOptions = new OptionsOptionControl(manager, this) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, }; optionsPage.Controls.Add(optionsOptions); #endregion #region BindingsPage TabPage bindingsPage = new TabPage(manager, Languages.OctoClient.KeyBindings); bindingsPage.Padding = Border.All(10); tabs.Pages.Add(bindingsPage); BindingsOptionControl bindingsOptions = new BindingsOptionControl(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, }; bindingsPage.Controls.Add(bindingsOptions); #endregion #region TexturePackPage TabPage resourcePackPage = new TabPage(manager, "Resource Packs"); tabs.Pages.Add(resourcePackPage); ResourcePacksOptionControl resourcePacksOptions = new ResourcePacksOptionControl(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, }; resourcePackPage.Controls.Add(resourcePacksOptions); #endregion #region ExtensionPage TabPage extensionPage = new TabPage(manager, Languages.OctoClient.Extensions); tabs.Pages.Add(extensionPage); ExtensionsOptionControl extensionOptions = new ExtensionsOptionControl(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, }; extensionPage.Controls.Add(extensionOptions); #endregion ////////////////////////////////////////////Restart Button//////////////////////////////////////////// exitButton = new TextButton(manager, Languages.OctoClient.RestartGameToApplyChanges); exitButton.VerticalAlignment = VerticalAlignment.Top; exitButton.HorizontalAlignment = HorizontalAlignment.Right; exitButton.Enabled = false; exitButton.Visible = false; exitButton.LeftMouseClick += (s, e) => Program.Restart(); exitButton.Margin = new Border(10, 10, 10, 10); Controls.Add(exitButton); }
public ExtensionsOptionControl(ScreenComponent manager) : base(manager) { Grid grid = new Grid(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, Margin = Border.All(15), }; Controls.Add(grid); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Fixed, Width = 100 }); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, Height = 1 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, Height = 1 }); StackPanel buttons = new StackPanel(manager) { VerticalAlignment = VerticalAlignment.Stretch, }; grid.AddControl(buttons, 1, 0); #region Manipulationsbuttons enableButton = new TextButton(manager, Languages.OctoClient.Enable); enableButton.HorizontalAlignment = HorizontalAlignment.Stretch; enableButton.Visible = false; buttons.Controls.Add(enableButton); disableButton = new TextButton(manager, Languages.OctoClient.Disable); disableButton.HorizontalAlignment = HorizontalAlignment.Stretch; disableButton.Visible = false; buttons.Controls.Add(disableButton); #endregion applyButton = new TextButton(manager, Languages.OctoClient.Apply); applyButton.HorizontalAlignment = HorizontalAlignment.Right; applyButton.VerticalAlignment = VerticalAlignment.Bottom; grid.AddControl(applyButton, 0, 2, 3); infoLabel = new Label(ScreenManager) { HorizontalTextAlignment = HorizontalAlignment.Left, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Top, WordWrap = true, }; grid.AddControl(infoLabel, 0, 1, 3); #region Listen loadedExtensionsList = new Listbox <IExtension>(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, SelectedItemBrush = new BorderBrush(Color.SaddleBrown * 0.7f), TemplateGenerator = ListTemplateGenerator, }; grid.AddControl(loadedExtensionsList, 0, 0); activeExtensionsList = new Listbox <IExtension>(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, SelectedItemBrush = new BorderBrush(Color.SaddleBrown * 0.7f), TemplateGenerator = ListTemplateGenerator, }; grid.AddControl(activeExtensionsList, 2, 0); #endregion loadedExtensionsList.SelectedItemChanged += loadedList_SelectedItemChanged; activeExtensionsList.SelectedItemChanged += activeList_SelectedItemChanged; enableButton.LeftMouseClick += (s, e) => { IExtension ext = loadedExtensionsList.SelectedItem; loadedExtensionsList.Items.Remove(ext); activeExtensionsList.Items.Add(ext); activeExtensionsList.SelectedItem = ext; }; disableButton.LeftMouseClick += (s, e) => { IExtension ext = activeExtensionsList.SelectedItem; activeExtensionsList.Items.Remove(ext); loadedExtensionsList.Items.Add(ext); loadedExtensionsList.SelectedItem = ext; }; applyButton.LeftMouseClick += (s, e) => { //TODO: Apply manager.Game.ExtensionLoader.ApplyExtensions(loadedExtensionsList.Items); Program.Restart(); }; // Daten laden var loader = manager.Game.ExtensionLoader; foreach (var item in loader.LoadedExtensions) { loadedExtensionsList.Items.Add(item); } foreach (var item in loader.ActiveExtensions) { activeExtensionsList.Items.Add(item); if (loadedExtensionsList.Items.Contains(item)) { loadedExtensionsList.Items.Remove(item); } } }
public ResourcePacksOptionControl(ScreenComponent manager) : base(manager) { Grid grid = new Grid(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, Margin = Border.All(15), }; Controls.Add(grid); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Fixed, Width = 100 }); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Parts, Height = 1 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, Height = 1 }); grid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, Height = 1 }); StackPanel buttons = new StackPanel(manager) { VerticalAlignment = VerticalAlignment.Stretch, }; grid.AddControl(buttons, 1, 0); #region Manipulationsbuttons addButton = Button.TextButton(manager, Languages.OctoClient.Add); addButton.HorizontalAlignment = HorizontalAlignment.Stretch; addButton.Visible = false; buttons.Controls.Add(addButton); removeButton = Button.TextButton(manager, Languages.OctoClient.Remove); removeButton.HorizontalAlignment = HorizontalAlignment.Stretch; removeButton.Visible = false; buttons.Controls.Add(removeButton); moveUpButton = Button.TextButton(manager, Languages.OctoClient.Up); moveUpButton.HorizontalAlignment = HorizontalAlignment.Stretch; moveUpButton.Visible = false; buttons.Controls.Add(moveUpButton); moveDownButton = Button.TextButton(manager, Languages.OctoClient.Down); moveDownButton.HorizontalAlignment = HorizontalAlignment.Stretch; moveDownButton.Visible = false; buttons.Controls.Add(moveDownButton); #endregion applyButton = Button.TextButton(manager, Languages.OctoClient.Apply); applyButton.HorizontalAlignment = HorizontalAlignment.Right; applyButton.VerticalAlignment = VerticalAlignment.Bottom; grid.AddControl(applyButton, 0, 2, 3); infoLabel = new Label(ScreenManager) { HorizontalTextAlignment = HorizontalAlignment.Left, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Top, WordWrap = true, }; grid.AddControl(infoLabel, 0, 1, 3); #region Listen loadedPacksList = new Listbox <ResourcePack>(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, SelectedItemBrush = new BorderBrush(Color.SaddleBrown * 0.7f), TemplateGenerator = ListTemplateGenerator, }; grid.AddControl(loadedPacksList, 0, 0); activePacksList = new Listbox <ResourcePack>(manager) { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Stretch, SelectedItemBrush = new BorderBrush(Color.SaddleBrown * 0.7f), TemplateGenerator = ListTemplateGenerator, }; grid.AddControl(activePacksList, 2, 0); #endregion #region Info Grid //Grid infoGrid = new Grid(ScreenManager) //{ // HorizontalAlignment = HorizontalAlignment.Stretch, //}; //infoGrid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Auto, Width = 1 }); //infoGrid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Parts, Width = 1 }); //infoGrid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, Height = 1 }); //infoGrid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, Height = 1 }); //infoGrid.Rows.Add(new RowDefinition() { ResizeMode = ResizeMode.Auto, Height = 1 }); //Label nameLabel = new Label(ScreenManager) //{ // Text = "Name:", //}; //infoGrid.AddControl(nameLabel, 0, 0); //Label authorLabel = new Label(ScreenManager) //{ // Text = "Author:", //}; //infoGrid.AddControl(authorLabel, 0, 1); //Label descriptionLabel = new Label(ScreenManager) //{ // Text = "Description:", //}; //infoGrid.AddControl(descriptionLabel, 0, 2); //grid.AddControl(infoGrid, 0, 1, 3); #endregion loadedPacksList.SelectedItemChanged += loadedList_SelectedItemChanged; activePacksList.SelectedItemChanged += activeList_SelectedItemChanged; addButton.LeftMouseClick += (s, e) => { ResourcePack pack = loadedPacksList.SelectedItem; loadedPacksList.Items.Remove(pack); activePacksList.Items.Add(pack); activePacksList.SelectedItem = pack; }; removeButton.LeftMouseClick += (s, e) => { ResourcePack pack = activePacksList.SelectedItem; activePacksList.Items.Remove(pack); loadedPacksList.Items.Add(pack); loadedPacksList.SelectedItem = pack; }; moveUpButton.LeftMouseClick += (s, e) => { ResourcePack pack = activePacksList.SelectedItem; if (pack == null) { return; } int index = activePacksList.Items.IndexOf(pack); if (index > 0) { activePacksList.Items.Remove(pack); activePacksList.Items.Insert(index - 1, pack); activePacksList.SelectedItem = pack; } }; moveDownButton.LeftMouseClick += (s, e) => { ResourcePack pack = activePacksList.SelectedItem; if (pack == null) { return; } int index = activePacksList.Items.IndexOf(pack); if (index < activePacksList.Items.Count - 1) { activePacksList.Items.Remove(pack); activePacksList.Items.Insert(index + 1, pack); activePacksList.SelectedItem = pack; } }; applyButton.LeftMouseClick += (s, e) => { manager.Game.Assets.ApplyResourcePacks(activePacksList.Items); Program.Restart(); }; // Daten laden AssetComponent assets = manager.Game.Assets; foreach (var item in assets.LoadedResourcePacks) { loadedPacksList.Items.Add(item); } foreach (var item in manager.Game.Assets.ActiveResourcePacks) { activePacksList.Items.Add(item); if (loadedPacksList.Items.Contains(item)) { loadedPacksList.Items.Remove(item); } } }
public TargetScreen(ScreenComponent manager, Action <int, int> tp, int x, int y) : base(manager) { assets = manager.Game.Assets; IsOverlay = true; Background = new BorderBrush(Color.Black * 0.5f); Title = "Select target"; Texture2D panelBackground = assets.LoadTexture(typeof(ScreenComponent), "panel"); Panel panel = new Panel(manager) { Background = NineTileBrush.FromSingleTexture(panelBackground, 30, 30), Padding = Border.All(20), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }; Controls.Add(panel); StackPanel spanel = new StackPanel(manager); panel.Controls.Add(spanel); Label headLine = new Label(manager) { Text = Title, Font = Skin.Current.HeadlineFont, HorizontalAlignment = HorizontalAlignment.Stretch }; spanel.Controls.Add(headLine); StackPanel vstack = new StackPanel(manager); vstack.Orientation = Orientation.Vertical; spanel.Controls.Add(vstack); StackPanel xStack = new StackPanel(manager); xStack.Orientation = Orientation.Horizontal; vstack.Controls.Add(xStack); Label xLabel = new Label(manager); xLabel.Text = "X:"; xStack.Controls.Add(xLabel); Textbox xText = new Textbox(manager) { Background = new BorderBrush(Color.Gray), Width = 150, Margin = new Border(2, 10, 2, 10), Text = x.ToString() }; xStack.Controls.Add(xText); StackPanel yStack = new StackPanel(manager); yStack.Orientation = Orientation.Horizontal; vstack.Controls.Add(yStack); Label yLabel = new Label(manager); yLabel.Text = "Y:"; yStack.Controls.Add(yLabel); Textbox yText = new Textbox(manager) { Background = new BorderBrush(Color.Gray), Width = 150, Margin = new Border(2, 10, 2, 10), Text = y.ToString() }; yStack.Controls.Add(yText); Button closeButton = Button.TextButton(manager, "Teleport"); closeButton.HorizontalAlignment = HorizontalAlignment.Stretch; closeButton.LeftMouseClick += (s, e) => { if (tp != null) { tp(int.Parse(xText.Text), int.Parse(yText.Text)); } else { manager.NavigateBack(); } }; spanel.Controls.Add(closeButton); }
public CreateUniverseScreen(ScreenComponent manager) : base(manager) { Manager = manager; settings = manager.Game.Settings; Padding = new Border(0, 0, 0, 0); Title = Languages.OctoClient.CreateUniverse; SetDefaultBackground(); var panel = new Panel(manager) { VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch, Margin = Border.All(50), Background = new BorderBrush(Color.White * 0.5f), Padding = Border.All(10) }; Controls.Add(panel); var grid = new Grid(manager) { VerticalAlignment = VerticalAlignment.Stretch, HorizontalAlignment = HorizontalAlignment.Stretch }; panel.Controls.Add(grid); grid.Columns.Add(new ColumnDefinition() { ResizeMode = ResizeMode.Auto }); grid.Columns.Add(new ColumnDefinition() { Width = 1, ResizeMode = ResizeMode.Parts }); nameInput = GetTextbox(); nameInput.TextChanged += (s, e) => { createButton.Visible = !string.IsNullOrEmpty(e.NewValue); }; AddLabeledControl(grid, string.Format("{0}: ", Languages.OctoClient.Name), nameInput); seedInput = GetTextbox(); AddLabeledControl(grid, string.Format("{0}: ", Languages.OctoClient.Seed), seedInput); createButton = Button.TextButton(manager, Languages.OctoClient.Create); createButton.HorizontalAlignment = HorizontalAlignment.Right; createButton.VerticalAlignment = VerticalAlignment.Bottom; createButton.Visible = false; createButton.LeftMouseClick += (s, e) => { if (string.IsNullOrEmpty(nameInput.Text)) { return; } int?seed = null; int textseed; if (int.TryParse(seedInput.Text, out textseed)) { seed = textseed; } manager.Player.SetEntity(null); Guid guid = Manager.Game.Simulation.NewGame(nameInput.Text, seed); settings.Set("LastUniverse", guid.ToString()); Player player = manager.Game.Simulation.LoginPlayer(""); manager.Game.Player.SetEntity(player); manager.NavigateToScreen(new GameScreen(manager)); }; panel.Controls.Add(createButton); }