Ejemplo n.º 1
0
 /// <summary>
 /// Syncs text to all connected displays.
 /// </summary>
 public void SyncText()
 {
     foreach (IMyTextPanel Display in ConnectedDisplays)
     {
         Display.WriteText(Text, false);
     }
 }
Ejemplo n.º 2
0
        public Program()
        {
            Runtime.UpdateFrequency = UpdateFrequency.Update100;

            GridTerminalSystem.GetBlocksOfType <IMyTerminalBlock>(null, CollectParts);

            StatusBuilder.Clear();
            var AOK = true;

            if (SmallHinge == null)
            {
                AOK = false;
                StatusBuilder.AppendLine("SMALL HINGE NOT FOUND!");
            }
            if (LargeHinge == null)
            {
                AOK = false;
                StatusBuilder.AppendLine("LARGE HINGE NOT FOUND!");
            }
            if (Sweeper == null)
            {
                AOK = false;
                StatusBuilder.AppendLine("SWEEPER NOT FOUND!");
            }
            if (BaseProjector == null)
            {
                AOK = false;
                StatusBuilder.AppendLine("BASE PROJECTOR NOT FOUND!");
            }
            if (TopProjector == null)
            {
                AOK = false;
                StatusBuilder.AppendLine("TOP PROJECTOR NOT FOUND!");
            }
            if (TopMerge == null)
            {
                AOK = false;
                StatusBuilder.AppendLine("TOP MERGE NOT FOUND!");
            }
            if (BaseMerge == null)
            {
                AOK = false;
                StatusBuilder.AppendLine("BASE MERGE NOT FOUND!");
            }

            if (Welders.Count < 5)
            {
                AOK = false;
                StatusBuilder.AppendLine("NOT ENOUGH WELDERS!");
            }

            if (Display != null)
            {
                Display.ContentType = ContentType.TEXT_AND_IMAGE;
                Display.WriteText(StatusBuilder.ToString());
            }

            if (!AOK)
            {
                Echo(StatusBuilder.ToString());
                Runtime.UpdateFrequency = UpdateFrequency.None;
            }
            else
            {
                var baseOtherMerge = GridTerminalHelper.OtherMergeBlock(BaseMerge);
                var topOtherMerge  = GridTerminalHelper.OtherMergeBlock(TopMerge);
                if (topOtherMerge != null && baseOtherMerge == null)
                {
                    State = 4;
                }
            }

            ReleaseListener = IGC.RegisterBroadcastListener("[PDCFORGE]");
            ReleaseListener.SetMessageCallback("release");
        }