public static IMyTextSurface GetScreen(IMyGridTerminalSystem gridTerminalSystem, IMyProgrammableBlock Me, LCDConfigItem config) { List <IMyTerminalBlock> blocks = new List <IMyTerminalBlock>(); gridTerminalSystem.SearchBlocksOfName(config.BlockName, blocks, b => b.IsSameConstructAs(Me)); if (blocks.Count == 0) { throw new Exception($"No blocks with name \"{config.BlockName}\" found"); } if (blocks.Count > 1) { throw new Exception($"Multiple blocks with name \"{config.BlockName}\" found"); } if (config.IsProvider) { IMyTextSurfaceProvider surfaceProvider = blocks[0] as IMyTextSurfaceProvider; return(surfaceProvider.GetSurface(config.ProviderScreenIndex)); } else { return(blocks[0] as IMyTextSurface); } }
public static void WriteToScreen(LCDConfigItem config, string text, IMyProgrammableBlock Me, IMyGridTerminalSystem gridTerminalSystem) { IMyTextSurface screen = GetScreen(gridTerminalSystem, Me, config); screen.WriteText(text); }
public static IMyTextSurface GetScreen(IMyGridTerminalSystem gridTerminalSystem, IMyProgrammableBlock Me) { LCDConfigItem config = new LCDConfigItem(Me); return(GetScreen(gridTerminalSystem, Me, config)); }