Example #1
0
 public Menu(MenuDefinition menuDefinition,
             IList <MenuItem> menuItems,
             FilteredKeyListener keyListener,
             Texture2D[] messageTextures,
             Texture2D selectTexture) :
     base(null)
 {
     MenuDefinition  = menuDefinition;
     MenuItems       = menuItems;
     SelectedIndex   = 0;
     KeyListener     = keyListener;
     SelectTexture   = selectTexture;
     MessageTextures = messageTextures;
 }
Example #2
0
        public void Load(Stream stream)
        {
            using (stream)
            {
                using (var reader = new StreamReader(stream))
                {
                    var json = reader.ReadToEnd();
                    MenuData = JsonConvert.DeserializeObject <MenuData>(json);
                }
            }

            var menuSelectTexture = ContentManager.Load <Texture2D>(MenuData.SelectTextureName);

            foreach (var menuDefinition in MenuData.MenuDefinitions)
            {
                var menuItems = new List <MenuItem>();

                var messageTextures = new Texture2D[menuDefinition.MessageTextures.Length];

                for (var i = 0; i < messageTextures.Length; ++i)
                {
                    messageTextures[i] = ContentManager.Load <Texture2D>(menuDefinition.MessageTextures[i]);
                }

                foreach (var itemDefinition in menuDefinition.MenuItems)
                {
                    menuItems.Add(new MenuItem
                    {
                        Definition = itemDefinition,
                        Texture    = ContentManager.Load <Texture2D>(itemDefinition.TextureName)
                    });
                }


                //create a FilteredKeyListener to track the keys for the menus
                var trackKeys   = new Keys[] { Keys.W, Keys.S, Keys.Down, Keys.Up, Keys.Enter };
                var keyListener = new FilteredKeyListener(trackKeys);

                var menu = new Menu(menuDefinition, menuItems, keyListener, messageTextures, menuSelectTexture);
                Menus.Add(menuDefinition.Name, menu);
            }
        }