public override bool IsSerialized() { if (MyAPIGateway.Multiplayer.IsServer) { if (O2Generator.Storage != null) { O2State.SaveState(); O2Set.SaveSettings(); } } return(false); }
private void SettingsUpdate() { if (_count == 3) { if (SettingsUpdated) { if (Session.Enforced.Debug == 3) { Log.Line($"SettingsUpdated: server:{_isServer} - FixRooms:{O2Set.Settings.FixRoomPressure} - O2GeneratorId [{O2Generator.EntityId}]"); } SettingsUpdated = false; O2Set.SaveSettings(); O2State.SaveState(); if (!ClientUiUpdate && O2Set.Settings.FixRoomPressure) { RestartDoorFix(); } } } else if (_count == 4 && !SettingsUpdated) { if (ClientUiUpdate) { if (Session.Enforced.Debug == 3) { Log.Line($"ClientUiUpdate: server:{_isServer} - FixRooms:{O2Set.Settings.FixRoomPressure} - O2GeneratorId [{O2Generator.EntityId}]"); } ClientUiUpdate = false; MyCube.UpdateTerminal(); O2Generator.RefreshCustomInfo(); if (!_isServer) { O2Set.NetworkUpdate(); } if (O2Set.Settings.FixRoomPressure) { RestartDoorFix(); } } } }
private void StorageSetup() { if (O2Set == null) { O2Set = new O2GeneratorSettings(O2Generator); } if (O2State == null) { O2State = new O2GeneratorState(O2Generator); } if (O2Generator.Storage == null) { O2State.StorageInit(); } O2Set.LoadSettings(); O2State.LoadState(); if (MyAPIGateway.Multiplayer.IsServer) { O2Set.Settings.FixRoomPressure = false; } }
private void DoorTightnessFix() { if (!AirPressure) { _doorsStage1 = true; _doorsStage2 = true; _doorsStage3 = true; _doorsStage4 = true; O2Set.Settings.FixRoomPressure = false; if (Session.Enforced.Debug == 1) { Log.Line("AirPressure is disabled"); } return; } if (!_doorsStage1) { Doors.Clear(); foreach (var grid in ShieldComp.DefenseShields.ProtectedEntCache.Keys) { if (!(grid is MyCubeGrid)) { continue; } foreach (var myCube in ((MyCubeGrid)grid).GetFatBlocks()) { var myDoor = myCube as IMyDoor; if (myDoor != null) { var status = myDoor.Status; if (status == DoorStatus.Opening || status == DoorStatus.Open) { status = DoorStatus.Open; myDoor.CloseDoor(); } else { status = DoorStatus.Closed; myDoor.OpenDoor(); } Doors.Add(myDoor, status); } } } if (!_isDedicated) { SendFixBroadcast(); } _doorsStage1 = true; } else if (!_doorsStage2) { foreach (var item in Doors) { if (item.Value == DoorStatus.Open) { item.Key.OpenDoor(); } else { item.Key.CloseDoor(); } } _doorsStage2 = true; } else if (!_doorsStage3) { foreach (var item in Doors) { if (item.Value == DoorStatus.Closed) { item.Key.OpenDoor(); } } _doorsStage3 = true; } else if (!_doorsStage4) { foreach (var item in Doors) { if (item.Value == DoorStatus.Closed) { item.Key.OpenDoor(); item.Key.CloseDoor(); } } _doorsStage4 = true; O2Set.Settings.FixRoomPressure = false; O2Set.SaveSettings(); Doors.Clear(); } }