예제 #1
0
            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);
                }
            }
예제 #2
0
            public static void WriteToScreen(LCDConfigItem config, string text, IMyProgrammableBlock Me, IMyGridTerminalSystem gridTerminalSystem)
            {
                IMyTextSurface screen = GetScreen(gridTerminalSystem, Me, config);

                screen.WriteText(text);
            }
예제 #3
0
            public static IMyTextSurface GetScreen(IMyGridTerminalSystem gridTerminalSystem, IMyProgrammableBlock Me)
            {
                LCDConfigItem config = new LCDConfigItem(Me);

                return(GetScreen(gridTerminalSystem, Me, config));
            }