// Context: Terminal
        private static int GetMaxTimerPB(IMyTerminalBlock block)
        {
            InstantProjector gl = block.GameLogic.GetAs <InstantProjector>();

            if (gl == null)
            {
                return(0);
            }
            return(gl.GetBlueprintTimer());
        }
        // Context: Terminal
        private static StringBuilder GetTimer(IMyTerminalBlock block)
        {
            StringBuilder    sb = new StringBuilder();
            InstantProjector gl = block.GameLogic.GetAs <InstantProjector>();

            if (gl.BuildState != State.Idle)
            {
                AppendTime(sb, gl.Timer);
                sb.Append(" (Active)");
            }
            else
            {
                IMyCubeGrid grid = gl.me.ProjectedGrid;
                if (grid != null)
                {
                    AppendTime(sb, gl.GetBlueprintTimer());
                }
            }
            return(sb);
        }
        private static StringBuilder GetTimer(IMyTerminalBlock block)
        {
            IMyProjector     p  = (IMyProjector)block;
            StringBuilder    sb = new StringBuilder();
            InstantProjector gl = block.GameLogic.GetAs <InstantProjector>();

            if (gl.BuildState != ProjectorState.Idle)
            {
                Utilities.AppendTime(sb, gl.Timer);
                sb.Append(" (Active)");
            }
            else
            {
                if (p.ProjectedGrid != null)
                {
                    Utilities.AppendTime(sb, gl.GetBlueprintTimer());
                }
            }
            return(sb);
        }