示例#1
0
 bool UpdateBearing()
 {
     if (GetBearing())
     {
         if (lastAng != ang)
         {
             lcds.ShowPublicText(bearingStr);
         }
         return(true);
     }
     lcds.ShowPublicText("\nError:\nNo natural gravity");
     return(false);
 }
示例#2
0
        void Init()
        {
            if (!NameContains(Me, MultiMix_UsedBlocks))
            {
                throw new Exception($"Programmable block does not have '{MultiMix_UsedBlocks}' in its custom-name.\nDid you read the instructions?");
            }

            lcdLeft.Clear();
            lcdCntr.Clear();
            lcdRght.Clear();
            var lcdBearing = new OutputPanel();

            ActionOnBlocksOfType <IMyTextPanel>(this, Me, p => {
                if (p.IsWorking && !NameContains(p, MultiMix_IgnoreBlocks))
                {
                    if (NameContains(p, "Center"))
                    {
                        lcdCntr.Add(p);
                    }
                    else if (NameContains(p, "Left"))
                    {
                        lcdLeft.Add(p);
                    }
                    else if (NameContains(p, "Right"))
                    {
                        lcdRght.Add(p);
                    }
                    else if (NameContains(p, "Bearing"))
                    {
                        lcdBearing.Add(p);
                    }
                }
            });
            lcdLeft.ShowPublicText("Initializing: Left panel(s)");
            lcdCntr.ShowPublicText("Initializing: Center panel(s)");
            lcdRght.ShowPublicText("Initializing: Right panel(s)");

            var sc = GetShipController(MultiMix_UsedBlocks, true);

            var alignActive = alignMgr?.Active ?? false;
            var cargoActive = cargoMgr?.Active ?? true;

            alignMgr  = alignMgr ?? new AlignModule(this);
            ascDecMgr = ascDecMgr ?? new AscendDecendModule(this);
            cargoMgr  = cargoMgr ?? new CargoModule(this);
            yieldMgr  = yieldMgr ?? new YieldModule(this);

            alignMgr.Refresh(ascDecMgr, sc);
            ascDecMgr.Refresh(lcdRght, alignMgr, sc);
            cargoMgr.Refresh(lcdLeft);

            alignMgr.Active = alignActive;
            cargoMgr.Active = cargoActive;

            engineMgr = engineMgr ?? new EngineModule(this);
            engineMgr.Refresh(Me, sc);

            toolsMgr = toolsMgr ?? new ToolsModule(this);
            toolsMgr.Refresh();

            bearingMgr = bearingMgr ?? new Whip_Bearing(this);
            bearingMgr.Refresh(lcdBearing, sc);
            bearingMgr.Active = (lcdBearing.Count > 0);

            menuMgr = menuMgr ?? new MenuManager(this);
            BuildMenu();
        }