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); }
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); }
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); } }