private void UpdateSettings()
 {
     if (_tick % 33 == 0)
     {
         if (SettingsUpdated)
         {
             SettingsUpdated = false;
             DsSet.SaveSettings();
             ResetShape(false);
             if (Session.Enforced.Debug == 3)
             {
                 Log.Line($"SettingsUpdated: server:{_isServer} - ShieldId [{Shield.EntityId}]");
             }
         }
     }
     else if (_tick % 34 == 0)
     {
         if (ClientUiUpdate)
         {
             ClientUiUpdate = false;
             if (!_isServer)
             {
                 DsSet.NetworkUpdate();
             }
         }
     }
 }
        private void StorageSetup()
        {
            try
            {
                var isServer = MyAPIGateway.Multiplayer.IsServer;

                if (DsSet == null)
                {
                    DsSet = new ControllerSettings(Shield);
                }
                if (DsState == null)
                {
                    DsState = new ControllerState(Shield);
                }
                if (Shield.Storage == null)
                {
                    DsState.StorageInit();
                }
                if (!isServer)
                {
                    var enforcement = Enforcements.LoadEnforcement(Shield);
                    if (enforcement != null)
                    {
                        Session.Enforced = enforcement;
                    }
                }
                DsSet.LoadSettings();
                if (!DsState.LoadState() && !isServer)
                {
                    _clientNotReady = true;
                }
                UpdateSettings(DsSet.Settings);
                if (isServer)
                {
                    if (DsSet.Settings.Fit > 22)
                    {
                        DsSet.Settings.Fit = 22;
                    }

                    DsState.State.Overload   = false;
                    DsState.State.NoPower    = false;
                    DsState.State.Remodulate = false;
                    if (DsState.State.Suspended)
                    {
                        DsState.State.Suspended = false;
                        DsState.State.Online    = false;
                    }
                    DsState.State.Sleeping        = false;
                    DsState.State.Waking          = false;
                    DsState.State.FieldBlocked    = false;
                    DsState.State.GridHalfExtents = Vector3D.Zero;
                    DsState.State.Heat            = 0;
                }
            }
            catch (Exception ex) { Log.Line($"Exception in StorageSetup: {ex}"); }
        }
Beispiel #3
0
 public override bool IsSerialized()
 {
     if (MyAPIGateway.Multiplayer.IsServer)
     {
         if (Shield.Storage != null)
         {
             DsState.SaveState();
             DsSet.SaveSettings();
         }
     }
     return(false);
 }
Beispiel #4
0
 private void SaveAndSendAll()
 {
     _firstSync = true;
     if (!_isServer)
     {
         return;
     }
     DsSet.SaveSettings();
     DsSet.NetworkUpdate();
     DsState.SaveState();
     DsState.NetworkUpdate();
     if (Session.Enforced.Debug >= 3)
     {
         Log.Line($"SaveAndSendAll: ShieldId [{Shield.EntityId}]");
     }
 }
Beispiel #5
0
 private void UpdateSettings()
 {
     if (_tick % 33 == 0)
     {
         if (SettingsUpdated)
         {
             SettingsUpdated = false;
             DsSet.SaveSettings();
             ResetShape(false);
         }
     }
     else if (_tick % 34 == 0)
     {
         if (ClientUiUpdate)
         {
             ClientUiUpdate = false;
             DsSet.NetworkUpdate();
         }
     }
 }