public MainMenuScreen(ScreenComponent manager) : base(manager, new Point(400, 360))
        {
            Controls.Add(new Panel(manager) { Position = new Rectangle(20, 20, 360, 40) });
            Controls.Add(new Label(manager) { Text = "Hauptmenue", Position = new Rectangle(40, 30, 0, 0) });
            Controls.Add(menu = new MenuList(manager) { Position = new Rectangle(20, 70, 360, 200) });

            // Sichtbarkeiten anhand der Server/Client Stati ermitteln
            newGameItem.Visible = manager.Game.Server.State == ServerState.Closed && manager.Game.Client.State == ClientState.Closed;
            networkItem.Visible = manager.Game.Server.State == ServerState.Closed && manager.Game.Client.State == ClientState.Closed;
            stopServerItem.Visible = manager.Game.Server.State != ServerState.Closed;
            stopClientItem.Visible = manager.Game.Client.State != ClientState.Closed;

            menu.Items.Add(newGameItem);
            if (manager.Game.Server.ServerFeatureAvailable || manager.Game.Client.ClientFeatureAvailable)
                menu.Items.Add(networkItem);
            menu.Items.Add(stopServerItem);
            menu.Items.Add(stopClientItem);
            menu.Items.Add(optionsItem);
            menu.Items.Add(creditsItem);
            menu.Items.Add(exitItem);

            menu.SelectedItem = menu.Items.First(i => i.Visible && i.Enabled);

            menu.OnInteract += OnInteract;
        }
Пример #2
0
        public Screen(ScreenComponent manager, Point size) : this(manager)
        {
            Point pos = new Point(
                (manager.GraphicsDevice.Viewport.Width - size.X) / 2,
                (manager.GraphicsDevice.Viewport.Height - size.Y) / 2);

            Position = new Rectangle(pos, size);
        }
Пример #3
0
        public ShoutScreen(ScreenComponent manager, Item speaker, string message) 
            : base(manager)
        {
            this.speaker = speaker;
            this.message = message;

            Position = new Rectangle(10, manager.GraphicsDevice.Viewport.Height - 54, manager.GraphicsDevice.Viewport.Width - 20, 44);
            Controls.Add(new Icon(manager) { Position = new Rectangle(10, 10, 24, 24), Texture = speaker.Icon });
            Controls.Add(new Label(manager) { Text = message, Position = new Rectangle(45, 12, Position.Width - 20, Position.Height - 20) });
        }
Пример #4
0
        public RheinwerkGame()
        {
            graphics = new GraphicsDeviceManager(this);
            Content.RootDirectory = "Content";
            graphics.IsFullScreen = false;
            IsMouseVisible = true;	

            Input = new InputComponent(this);
            Input.UpdateOrder = 0;
            Components.Add(Input);

            Screen = new ScreenComponent(this);
            Screen.UpdateOrder = 1;
            Screen.DrawOrder = 2;
            Components.Add(Screen);

            Local = new LocalComponent(this);
            Local.UpdateOrder = 2;
            Components.Add(Local);

            var client = new ClientComponent(this);
            Client = client;
            client.UpdateOrder = 3;
            Components.Add(client);

            var server = new ServerComponent(this);
            Server = server;
            server.UpdateOrder = 4;
            Components.Add(server);

            Simulation = new SimulationComponent(this);
            Simulation.UpdateOrder = 5;
            Components.Add(Simulation);

            Scene = new SceneComponent(this);
            Scene.UpdateOrder = 6;
            Scene.DrawOrder = 0;
            Components.Add(Scene);

            Hud = new HudComponent(this);
            Hud.UpdateOrder = 7;
            Hud.DrawOrder = 1;
            Components.Add(Hud);

            Music = new MusicComponent(this);
            Music.UpdateOrder = 8;
            Components.Add(Music);

            Sound = new SoundComponent(this);
            Sound.UpdateOrder = 9;
            Components.Add(Sound);

            // Einstellungen laden
            Settings = Settings.LoadSettings();
        }
Пример #5
0
        public OptionsScreen(ScreenComponent manager) :
            base(manager, new Point(400, 360))
        {
            Controls.Add(new Panel(manager) { Position = new Rectangle(20, 20, 360, 40) });
            Controls.Add(new Label(manager) { Text = "Optionen", Position = new Rectangle(40, 30, 0, 0) });
            Controls.Add(menu = new MenuList(manager) { Position = new Rectangle(20, 70, 360, 200) });

            menu.Items.Add(musicVolumeItem);
            menu.Items.Add(soundVolumeItem);
            menu.SelectedItem = menu.Items.First();
            RefreshText();
        }
Пример #6
0
        public DialogScreen(ScreenComponent manager, Item speaker, Player player, Dialog entry) 
            : base(manager)
        {
            this.speaker = speaker;
            this.player = player;
            current = entry;

            Controls.Add(new Icon(manager) { Position = new Rectangle(10, 10, 24, 24), Texture = speaker.Icon });
            Controls.Add(message = new Label(manager) { Position = new Rectangle(40, 10, manager.GraphicsDevice.Viewport.Width - 50, 30) });
            Controls.Add(list = new DialogList(manager) { });

            list.OnInteract += OnInteract;

            Refill();
        }
Пример #7
0
        public NetworkScreen(ScreenComponent manager) : base(manager, new Point(400, 360))
        {
            Controls.Add(new Panel(manager) { Position = new Rectangle(20, 20, 360, 40) });
            Controls.Add(new Label(manager) { Text = "Netzwerk", Position = new Rectangle(40, 30, 0, 0) });
            Controls.Add(menu = new MenuList(manager) { Position = new Rectangle(20, 70, 360, 200) });

            if (manager.Game.Server.ServerFeatureAvailable)
                menu.Items.Add(serverItem);
            if (manager.Game.Client.ClientFeatureAvailable)
                menu.Items.Add(clientItem);
            menu.Items.Add(cancelItem);

            menu.SelectedItem = menu.Items.First();

            menu.OnInteract += OnInteract;
        }
        public InventoryScreen(ScreenComponent manager) 
            : base(manager, new Point(400, 300))
        {
            Controls.Add(new Panel(manager) { Position = new Rectangle(20, 20, 360, 40) });
            Controls.Add(new Label(manager) { Text = "Rucksack", Position = new Rectangle(40, 30, 0, 0) });

            InventoryList list = new InventoryList(manager) { Position = new Rectangle(20, 70, 360, 200) };
            foreach (var itemGroup in manager.Game.Local.Player.Inventory.GroupBy(i => i.GetType()))
            {
                list.Items.Add(new InventoryItem() { 
                    Text = itemGroup.First().Name, 
                    Icon = itemGroup.First().Icon, 
                    Count = itemGroup.Count() });
            }
            Controls.Add(list);
        }
Пример #9
0
        public ClientScreen(ScreenComponent manager) : base(manager, new Point(400, 360))
        {
            Controls.Add(new Panel(manager) { Position = new Rectangle(20, 20, 360, 40) });
            Controls.Add(new Label(manager) { Text = "Verbinden", Position = new Rectangle(40, 30, 0, 0) });
            Controls.Add(new LoadingIcon(manager) { Position = new Rectangle(330, 30, 32, 24) });

            Controls.Add(status = new Label(manager) { Position = new Rectangle(40, 80, 0, 0) });

            DialogButtons buttons = new DialogButtons(manager) { Position = new Rectangle(20, 300 - 70, 360, 50) };
            buttons.Items.Add(cancelItem);
            Controls.Add(buttons);

            buttons.SelectedItem = cancelItem;

            buttons.OnInteract += OnInteract;
        }
Пример #10
0
        public CreditsScreen(ScreenComponent manager) 
            : base(manager, new Point(400, 360))
        {
            Controls.Add(new Panel(manager) { Position = new Rectangle(20, 20, 360, 40) });
            Controls.Add(new Label(manager) { Text = "Credits", Position = new Rectangle(40, 30, 0, 0) });

            Controls.Add(new Label(manager) { Text = "Vielen Dank an", Position = new Rectangle(40, 70, 0, 0) });
            Controls.Add(new Label(manager) { Text = "Hyptosis, Lost Garden, Zabin", Position = new Rectangle(50, 100, 0, 0) });
            Controls.Add(new Label(manager) { Text = "und Client Bellanger auf", Position = new Rectangle(50, 125, 0, 0) });
            Controls.Add(new Label(manager) { Text = "opengameart.org", Position = new Rectangle(50, 150, 0, 0) });

            Controls.Add(new Label(manager) { Text = "Mike Koenig, Mark DiAngelo und", Position = new Rectangle(50, 190, 0, 0) });
            Controls.Add(new Label(manager) { Text = "Luke.RUSTLTD fuer die Sounds", Position = new Rectangle(50, 215, 0, 0) });

            Controls.Add(new Label(manager) { Text = "Music Loop fuer die Musik", Position = new Rectangle(50, 255, 0, 0) });
            Controls.Add(new Label(manager) { Text = "Special Thx to kenney.nl", Position = new Rectangle(50, 295, 0, 0) });
        }
Пример #11
0
        public TradeScreen(ScreenComponent manager, IInventory trader, IInventory player)
            : base(manager, new Point(400, 300))
        {
            this.trader = trader;
            this.player = player;

            Controls.Add(new Panel(manager) { Position = new Rectangle(20, 20, 360, 40) });
            Controls.Add(new Label(manager) { Text = "Shop", Position = new Rectangle(40, 30, 0, 0) });

            // Verkaufbare Items des Trader-Inventars auf die Liste setzen
            list = new TraderList(manager) { Position = new Rectangle(20, 70, 360, 210) };
            list.OnInteract += OnInteract;
            foreach (var item in trader.Inventory.Where(i => i.Value.HasValue).OrderBy(i => i.Value))
                list.Items.Add(new TradingItem()
                    { 
                        Tag = item,
                        Text = item.Name, 
                        Icon = item.Icon, 
                        Value = item.Value.Value
                    });
            Controls.Add(list);
            CheckAvailability();
        }
Пример #12
0
 public LoadingIcon(ScreenComponent manager) 
     : base(manager)
 {
 }
Пример #13
0
 public Icon(ScreenComponent manager)
     : base(manager)
 {
 }
Пример #14
0
 public Screen(ScreenComponent manager)
 {
     Manager = manager;
     Controls = new List<Control>();
 }
Пример #15
0
 public Panel(ScreenComponent manager)
     : base(manager)
 {
 }
Пример #16
0
 public Control(ScreenComponent manager)
 {
     Manager = manager;
 }
Пример #17
0
 public Label(ScreenComponent manager)
     : base(manager)
 {
     Font = manager.Font;
     Color = Color.White;
 }