Example #1
0
        public static void SetSelectedGrid(IMyTerminalBlock block, List <MyTerminalControlListBoxItem> listItems)
        {
            //MyLog.Default.WriteLineAndConsole("Selected Item Changed to: "+listItems[0].Text);
            SelectedGrid = (MarketList)listItems[0].UserData;

            MyTerminalControlListBoxItem item = listItems[0];

            SelectedBoxItem = item;

            block.RefreshCustomInfo();
            UpdateGUI(block);
        }
Example #2
0
        public static void GetForSaleGrids(IMyTerminalBlock block, List <MyTerminalControlListBoxItem> listItems, List <MyTerminalControlListBoxItem> selectedItems)
        {
            //We need to completley redo ALL this.

            try
            {
                foreach (MarketList grid in MarketGrids)
                {
                    //MyLog.Default.WriteLineAndConsole("Grid "+grid.Name+" is in the marked list grid out of "+MarketGrids.Count+" total grids");
                    if (!listItems.Any(x => x.Text == MyStringId.GetOrCompute(grid.Name)))
                    {
                        var dummy2 = new MyTerminalControlListBoxItem(MyStringId.GetOrCompute(grid.Name), MyStringId.GetOrCompute("PCU: " + grid.PCU), grid);
                        MyLog.Default.WriteLineAndConsole("Adding grid " + grid.Name + " to the block!");
                        listItems.Add(dummy2);
                    }
                }


                if (RemovedMarketGrids != null)
                {
                    try
                    {
                        var item = listItems.First(x => x.Text.String == RemovedMarketGrids.Name);
                        listItems.Remove(item);
                        MyLog.Default.WriteLineAndConsole("Removing grid from the block!");
                    }
                    catch
                    {
                        //Do freaking nothing. ffs
                    }



                    if (selectedItems.Count != 0 && selectedItems[0].Text.String == RemovedMarketGrids.Name)
                    {
                        selectedItems.Clear();
                    }



                    //Check to see if the selected item was our purchased item


                    RemovedMarketGrids = null;
                }



                //Reupdate selected items
                if (listItems.Count == 1)
                {
                    selectedItems.Clear();
                    selectedItems.Add(listItems[0]);
                    SelectedGrid = (MarketList)listItems[0].UserData;

                    MyTerminalControlListBoxItem item = listItems[0];
                    SelectedBoxItem = item;

                    block.RefreshCustomInfo();
                }
                else if (listItems.Count == 0)
                {
                    selectedItems.Clear();
                    block.RefreshCustomInfo();
                }
                else
                {
                    selectedItems.Clear();

                    if (listItems.Count == 0)
                    {
                        return;
                    }

                    selectedItems.Add(listItems.FirstOrDefault(x => x.Text == SelectedBoxItem.Text));
                }

                //var toList = new MyTerminalControlListBoxItem(MyStringId.GetOrCompute(grid.CustomName), MyStringId.GetOrCompute(grid.CustomName), objectText);


                //Can you do this?? Check to see if your saved selected item is in the new list?

                //Clear the selected grid
                //SelectedGrid = null;
                //block.RefreshCustomInfo();
            }
            catch (Exception e)
            {
                //Temp Debug
                MyLog.Default.WriteLineAndConsole("Exception Thrown! \n" + e);
            }

            //UpdateGUI(block);
        }
Example #3
0
        private static void MessageHandler(byte[] bytes)
        {
            try
            {
                Debug.Write("Message Recieved!");

                Message RecievedMessage = MyAPIGateway.Utilities.SerializeFromBinary <Message>(bytes);
                //MyLog.Default.WriteLineAndConsole("Recieved Message from server: "+ RecievedMessage.Type.ToString());

                if (RecievedMessage.Type == MessageType.RequestAllItems)
                {
                    //ModCore.MarketGrids.Clear();

                    ModCore.MarketGrids = RecievedMessage.MarketBoxItmes;


                    //Do we need to update GUI?

                    //ModCore.UpdateGUI(ModCore.m_block);
                }
                else if (RecievedMessage.Type == MessageType.AddOne)
                {
                    ModCore.MarketGrids.Add(RecievedMessage.MarketBoxItmes[0]);
                }
                else if (RecievedMessage.Type == MessageType.RemoveOne)
                {
                    //MyLog.Default.WriteLineAndConsole("MessageType: RemoveOne");
                    MarketList list = ModCore.MarketGrids.First(x => x.Name == RecievedMessage.MarketBoxItmes[0].Name);

                    for (int i = 0; i < ModCore.MarketGrids.Count; i++)
                    {
                        if (ModCore.MarketGrids[i].Name == RecievedMessage.MarketBoxItmes[0].Name)
                        {
                            ModCore.MarketGrids.RemoveAt(i);
                            ModCore.RemovedMarketGrids = RecievedMessage.MarketBoxItmes[0];
                            MyLog.Default.WriteLineAndConsole("MessageType: RemovedOne " + ModCore.RemovedMarketGrids.Name);
                            break;
                        }
                    }

                    try
                    {
                        ModCore.m_block.RefreshCustomInfo();
                        ModCore.UpdateGUI(ModCore.m_block);
                    }
                    catch
                    {
                        //Experiement to see if this
                    }

                    //Remove frome list
                }
                else
                {
                    //Do nothing...
                }

                //Update GUI
                //ModCore.UpdateGUI();



                //MyLog.Default.WriteLineAndConsole("Message Recieved");


                //Array.Copy(bytes, 1, data, 0, data.Length);
            }
            catch (Exception ex)
            {
                //MyLog.Default.WriteLineAndConsole($"WTF is this shit " + ex);
            }
        }