public void SwitchStore()
        {
            if (GameEngine.Instance.GuiMenuModule.ContainsKey("miningStoreItemMenu"))
            {
                GameEngine.Instance.GuiMenuModule["miningStoreItemMenu"].Buttons.Clear();
            }

            mineralList = !mineralList;

            int  prodRank = 1;
            bool orbital  = false;

            // TODO: Get prodRank and orbital

            if (GameEngine.Instance.GuiMenuModule.ContainsKey("miningStoreItemMenu"))
            {
                if (mineralList)
                {
                    GuiButtonInfo btn;
                    int           i = -1;
                    foreach (KeyValuePair <string, StoreItem> sit in GameEngine.Instance.ItemTemplates)
                    {
                        if (sit.Value.Type != ItemType.Mineral)
                        {
                            i++;

                            if (sit.Value.Researched)
                            {
                                btn = new GuiButtonInfo("miningStoreItemMenu", new Rectangle((i / 16) * 42 + 7, (i % 16 * 20) + 7, 42, 20), sit.Value.Title, "gameScreen.Storage.ItemBlink", true, 1, 100);
                                if (sit.Value.OrbitalOnly && !orbital)
                                {
                                    btn.PictureColor = Color.Yellow;
                                }
                                else
                                {
                                    if (sit.Value.BuildRank > prodRank)
                                    {
                                        btn.PictureColor = Color.Red;
                                    }
                                    else
                                    {
                                        btn.PictureColor = Color.Green;
                                    }
                                }

                                GuiButtonParamExecuteModuleMethod par = new GuiButtonParamExecuteModuleMethod("ShowItemPrice", GetType().ToString());
                                par.methodParams.Add(new MethodParamInfo(typeof(string).ToString(), sit.Key));
                                btn.Params.Add("Show" + sit.Key + "Price", par);

                                par = new GuiButtonParamExecuteModuleMethod("ResetAnimation", GetType().ToString());
                                par.methodParams.Add(new MethodParamInfo(typeof(string).ToString(), GameEngine.Instance.GuiMenuModule["miningStoreItemMenu"].Buttons.Count.ToString()));
                                btn.Params.Add("ResetAnimation", par);

                                GameEngine.Instance.GuiMenuModule["miningStoreItemMenu"].Buttons.Add(GetType().Name + ".ShowItemPrice." + sit.Key, btn);
                            }
                        }
                    }
                }
            }
        }
        public override void OnInitMenus()
        {
            GuiMenu mnu = new GuiMenu("factoryMenu");

            mnu.Picture     = "gameScreen.Production";
            mnu.Location    = new Point(120, 40);
            mnu.TextureArea = new Rectangle(0, 0, 680, 420);
            GameEngine.Instance.GuiMenuModule.Add(mnu.Id, mnu);

            GuiButtonInfo btn = new GuiButtonInfo("factoryMenu", new Rectangle(298, 368, 60, 40), "Send Team To Bay", "", true);

            btn.Params.Add("EvictTeam", new GuiButtonParamExecuteModuleMethod("EvictTeam", GetType().ToString()));
            mnu.Buttons.Add(GetType().Name + ".EvictTeam", btn);

            mnu             = new GuiMenu("factoryMenuItems");
            mnu.Picture     = "";
            mnu.Location    = new Point(560 + 120, 0 + 40);
            mnu.TextureArea = new Rectangle(0, 0, 101, 334);
            GameEngine.Instance.GuiMenuModule.Add(mnu.Id, mnu);

            Dictionary <string, bool> pomQueue = new Dictionary <string, bool>(BuildQueue.Count);
            int i;

            for (i = 0; i < BuildQueue.Count; i++)
            {
                pomQueue.Add(BuildQueue[i].ItemId, BuildQueue[i].Repeat);
            }

            i = -1;

            foreach (KeyValuePair <string, StoreItem> sit in GameEngine.Instance.ItemTemplates)
            {
                if (sit.Value.Type != ItemType.Mineral)
                {
                    i++;

                    if (sit.Value.Researched)
                    {
                        btn = new GuiButtonInfo("miningStoreItemMenu", new Rectangle((i / 16) * 42 + 7, (i % 16 * 20) + 7, 42, 20), sit.Value.Title, "gameScreen.Storage.ItemBlink", true, 1, 100);
                        if (!pomQueue.ContainsKey(sit.Key))
                        {
                            btn.PictureColor = Color.Red;
                        }
                        else
                        {
                            if (pomQueue[sit.Key])
                            {
                                btn.PictureColor = Color.Green;
                            }
                            else
                            {
                                btn.PictureColor = Color.Yellow;
                            }
                        }

                        GuiButtonParamExecuteModuleMethod par = new GuiButtonParamExecuteModuleMethod("CycleQueueItem", GetType().ToString());
                        par.methodParams.Add(new MethodParamInfo(typeof(string).ToString(), sit.Key));
                        btn.Params.Add("CycleQueueItem", par);

                        mnu.Buttons.Add(GetType().Name + ".CycleQueueItem." + sit.Key, btn);
                    }
                }
            }

            //366,350
//			btn = new GuiButtonInfo("factoryMenu", new Rectangle(366+58-8, 350+31-8, 15, 12), "AOC status", "gameScreen.Storage.ItemBlink", true, 10, 100);
//			mnu.Buttons.Add(btn);
        }