コード例 #1
0
 public override void UpdateOnceBeforeFrame()
 {
     try
     {
         if (Tool.CubeGrid.Physics == null)
         {
             NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
             return;
         }
         Term      = Grid.GetTerminalSystem();
         ToolCargo = Tool.GetInventory();
         CheckInitControls();
         SyncBeamLength   = new AutoSet <float>(Tool, "BeamLength", Checker: val => val >= MinBeamLengthBlocks && val <= MaxBeamLengthBlocks);
         SyncDistanceMode = new AutoSet <bool>(Tool, "DistanceBasedMode");
         SyncBeamLength.Ask();
         SyncDistanceMode.Ask();
         BeamLength = 1;
         Tool.AppendingCustomInfo += Tool_AppendingCustomInfo;
         Load();
         NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME;
         DebugNote    = MyAPIGateway.Utilities.CreateNotification($"{Tool.CustomName}", int.MaxValue, (IsWelder ? "Blue" : "Red"));
         if (SessionCore.Debug)
         {
             DebugNote.Show();
         }
     }
     catch { }
 }
コード例 #2
0
        public override void UpdateOnceBeforeFrame()
        {
            try
            {
                if (Drill.CubeGrid.Physics?.Enabled != true || !Networker.Inited)
                {
                    NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
                    if (!Networker.Inited)
                    {
                        Networker.Init(SessionCore.ModID);
                    }
                    return;
                }
                SyncHarvestEfficiency = new AutoSet <float>(Drill, "HarvestEfficiency", 1, Checker: val => val >= 1 && val <= 4);
                SyncHarvestEfficiency.GotValueFromServer += Drill.UpdateVisual;
                Drill.PowerConsumptionMultiplier          = PowerConsumptionMultiplier();

                CheckInitControls();
                Load();

                SessionCore.SaveRegister(Save);
                NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME;
                DebugNote    = MyAPIGateway.Utilities.CreateNotification($"{Drill?.CustomName}", int.MaxValue, "Blue");
                Owner        = MyAPIGateway.Players.GetPlayer(Drill.OwnerId);
                if (SessionCore.Debug)
                {
                    DebugNote.Show();
                }
            }
            catch { }
        }
コード例 #3
0
ファイル: Radar.cs プロジェクト: SplenectomY/radarcode
        public override void UpdateOnceBeforeFrame()
        {
            try
            {
                if (RadarBlock.CubeGrid.Physics == null)
                {
                    NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
                    return;
                }

                if (!Networker.Inited)
                {
                    Networker.Init(907384096);
                }
                if (!Controls.InitedRadarControls)
                {
                    Controls.InitRadarControls();
                }

                NeedsUpdate |= MyEntityUpdateEnum.EACH_10TH_FRAME;
                GetMaxPower();
                Term = RadarBlock.CubeGrid.GetTerminalSystem();

                RadarPower           = new AutoSet <float>(RadarBlock, "Power", 1000, x => x >= 0 && x <= MaxPower);
                ShowMarkers          = new AutoSet <bool>(RadarBlock, "ShowMarkers", true, null);
                ShowRoids            = new AutoSet <bool>(RadarBlock, "ShowRoids", true, null);
                ActiveRadar          = new AutoSet <bool>(RadarBlock, "Active", false, null);
                ShowOnlyHostiles     = new AutoSet <bool>(RadarBlock, "OnlyHostiles", true, null);
                ShowFloating         = new AutoSet <bool>(RadarBlock, "Floating", false, null);
                ShowWorkingGridsOnly = new AutoSet <bool>(RadarBlock, "ShowWorkingGridsOnly", false, null);

                PowerModule.InitResourceSink();
                PersistenceModule.Load();
                RadarBlock.AppendingCustomInfo += RadarBlock_AppendingCustomInfo;
                RadarBlock.OnMarkForClose      += OnMarkForClose;
                Debug.Write($"Added radar {RadarBlock.EntityId}");
                if (RadarCore.Debug)
                {
                    TestNote = MyAPIGateway.Utilities.CreateNotification($"{RadarBlock.CustomName}: enabled;", int.MaxValue, "Green");
                }

                if (RadarCore.Debug)
                {
                    TestNote.Show();
                }

                RadarCore.DebugWrite("Testing", "TESTING", true);

                //MyRadarGrid = RadarBlock.CubeGrid.Components.Get<RadarableGrid>();
                if (MyRadarGrid == null)
                {
                    throw new Exception($"{RadarBlock.CustomName}.MyRadarGrid is null!");
                }
            }
            catch { }
        }
コード例 #4
0
 public override void UpdateOnceBeforeFrame()
 {
     if (!Inited)
     {
         Initialize();
     }
     RadarCore.SaveRegister(Save);
     LCD.OnMarkForClose += LCD_OnMarkForClose;
     NeedsUpdate        |= MyEntityUpdateEnum.EACH_10TH_FRAME;
     ShowTextOnHud       = new AutoSet <bool>(Entity, "ShowTextOnHud", false);
     CoordX              = new AutoSet <float>(Entity, "CoordX", 0, x => x <= 1 && x >= -1);
     CoordY              = new AutoSet <float>(Entity, "CoordY", 0, x => x <= 1 && x >= -1);
     DisplaySize         = new AutoSet <float>(Entity, "Size", 0, x => x <= 1 && x >= 0);
     Load();
 }
コード例 #5
0
        public override void UpdateOnceBeforeFrame()
        {
            try
            {
                if (Tool.CubeGrid.Physics?.Enabled != true || !Networker.Inited)
                {
                    NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
                    if (!Networker.Inited)
                    {
                        Networker.Init(SessionCore.ModID);
                    }
                    return;
                }
                ToolCargo = Tool.GetInventory();

                SyncBeamLength      = new AutoSet <float>(Tool, "BeamLength", 1, Checker: val => val >= MinBeamLengthBlocks && val <= MaxBeamLengthBlocks);
                SyncDistanceMode    = new AutoSet <bool>(Tool, "DistanceBasedMode");
                SyncSpeedMultiplier = new AutoSet <float>(Tool, "SpeedMultiplier", 1, Checker: val => val >= 1 && val <= 4);
                SyncBeamLength.GotValueFromServer      += Tool.UpdateVisual;
                SyncDistanceMode.GotValueFromServer    += Tool.UpdateVisual;
                SyncSpeedMultiplier.GotValueFromServer += Tool.UpdateVisual;

                CheckInitControls();
                Load();

                Tool.AppendingCustomInfo += Tool_AppendingCustomInfo;
                SessionCore.SaveRegister(Save);
                NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME;
                DebugNote    = MyAPIGateway.Utilities.CreateNotification($"{Tool.CustomName}", int.MaxValue, (IsWelder ? "Blue" : "Red"));
                Owner        = MyAPIGateway.Players.GetPlayer(Tool.OwnerId);
                if (SessionCore.Debug)
                {
                    DebugNote.Show();
                }
            }
            catch { }
        }
コード例 #6
0
ファイル: AntennaComms.cs プロジェクト: SplenectomY/radarcode
        public override void UpdateOnceBeforeFrame()
        {
            if (AntennaBlock.CubeGrid.Physics == null)
            {
                NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
                return;
            }

            NeedsUpdate |= MyEntityUpdateEnum.EACH_10TH_FRAME;
            if (AntennaBlock is IMyRadioAntenna && !InitedRadioAntennaControls)
            {
                InitRadioAntennaControls();
            }
            if (AntennaBlock is IMyLaserAntenna && !InitedLaserAntennaControls)
            {
                InitLaserAntennaControls();
            }
            SyncAllowReceive = new AutoSet <bool>(Entity, "Receive", true);
            Load();
            AntennaBlock.AppendingCustomInfo += AntennaBlock_AppendingCustomInfo;
            AntennaBlock.OnMarkForClose      += AntennaBlock_OnMarkForClose;
            AntennaGrid = AntennaBlock.GetTopMostParent() as IMyCubeGrid;
            RadarCore.SaveRegister(Save);
        }