private void DrawAdvancedDebugOptions() { var settingIntegrator = GUILayout.Toggle(SettingsSystem.CurrentSettings.OverrideIntegrator, "Override flight integrator", ButtonStyle); if (settingIntegrator != SettingsSystem.CurrentSettings.OverrideIntegrator) { SettingsSystem.CurrentSettings.OverrideIntegrator = settingIntegrator; SettingsSystem.SaveSettings(); } if (GUILayout.Button("Check Common.dll stock parts")) { ModSystem.Singleton.CheckCommonStockParts(); } GUILayout.Space(10); _showAdvancedNetworkFields = GUILayout.Toggle(_showAdvancedNetworkFields, "Advanced network fields", ButtonStyle); if (_showAdvancedNetworkFields) { if (MainSystem.NetworkState > ClientState.Disconnected) { GUILayout.Label("Cannot change values while connected"); } GUILayout.Label($"MTU: {NetworkMain.Config.MaximumTransmissionUnit}"); GUILayout.Label(_infiniteTimeout ? "Timeout: Infinite" : $"Timeout: {NetworkMain.Config.ConnectionTimeout}s. Minimum: {NetworkMain.Config.PingInterval}s"); GUILayout.BeginHorizontal(); if (MainSystem.NetworkState <= ClientState.Disconnected) { _infiniteTimeout = GUILayout.Toggle(_infiniteTimeout, "Infinite", "toggle"); if (!_infiniteTimeout) { if (NetworkMain.Config.ConnectionTimeout >= float.MaxValue - 1) { NetworkMain.Config.ConnectionTimeout = 15; } var value = GUILayout.TextArea(NetworkMain.Config.ConnectionTimeout.ToString(CultureInfo.InvariantCulture), 32, TextAreaStyle); if (float.TryParse(value, out var parsedResult)) { if (parsedResult >= NetworkMain.Config.PingInterval) { NetworkMain.Config.ConnectionTimeout = parsedResult; } } } else { NetworkMain.Config.ConnectionTimeout = float.MaxValue; } } GUILayout.EndHorizontal(); } _showBadNetworkSimulationFields = GUILayout.Toggle(_showBadNetworkSimulationFields, "Bad network simulation", ButtonStyle); if (_showBadNetworkSimulationFields) { if (MainSystem.NetworkState <= ClientState.Disconnected) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Random", ButtonStyle)) { NetworkMain.RandomizeBadConnectionValues(); } if (GUILayout.Button("Reset", ButtonStyle)) { NetworkMain.ResetBadConnectionValues(); } GUILayout.EndHorizontal(); } GUILayout.Label($"NTP time offset: {LunaTime.SimulatedMsTimeOffset:F1}ms"); LunaTime.SimulatedMsTimeOffset = (float)Math.Round(GUILayout.HorizontalScrollbar(LunaTime.SimulatedMsTimeOffset, 0, -2500, 2500), 3); if (MainSystem.NetworkState > ClientState.Disconnected) { GUILayout.Label("Cannot change values while connected"); } GUILayout.Label($"Packet loss: {NetworkMain.Config.SimulatedLoss * 100:F1}%"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedLoss = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedLoss, 0, 0, 1), 3); } GUILayout.Label($"Packet duplication: {NetworkMain.Config.SimulatedDuplicatesChance * 100:F1}%"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedDuplicatesChance = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedDuplicatesChance, 0, 0, 1), 3); } GUILayout.Label($"Max random latency: {NetworkMain.Config.SimulatedRandomLatency * 1000:F1} ms"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedRandomLatency = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedRandomLatency, 0, 0, 3), 4); } GUILayout.Label($"Min latency: {NetworkMain.Config.SimulatedMinimumLatency * 1000:F1} ms"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedMinimumLatency = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedMinimumLatency, 0, 0, 3), 4); } } }
private void DrawAdvancedDebugOptions() { GUILayout.Label("Debug settings\n________________________________________"); if (GUILayout.Button("Check Common.dll stock parts")) { ModSystem.Singleton.CheckCommonStockParts(); } if (GUILayout.Button("Regenerate translation files")) { LocalizationContainer.RegenerateTranslations(); } GUILayout.Space(10); _showBadNetworkSimulationSettings = GUILayout.Toggle(_showBadNetworkSimulationSettings, "Bad network simulation", ButtonStyle); if (_showBadNetworkSimulationSettings) { if (MainSystem.NetworkState <= ClientState.Disconnected) { GUILayout.BeginHorizontal(); if (GUILayout.Button("Random", ButtonStyle)) { NetworkMain.RandomizeBadConnectionValues(); } if (GUILayout.Button("Reset", ButtonStyle)) { NetworkMain.ResetBadConnectionValues(); } GUILayout.EndHorizontal(); } if (MainSystem.NetworkState > ClientState.Disconnected) { GUILayout.Label("Cannot change values while connected"); } GUILayout.Label($"Packet loss: {NetworkMain.Config.SimulatedLoss * 100:F1}%"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedLoss = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedLoss, 0, 0, 1), 3); } GUILayout.Label($"Packet duplication: {NetworkMain.Config.SimulatedDuplicatesChance * 100:F1}%"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedDuplicatesChance = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedDuplicatesChance, 0, 0, 1), 3); } GUILayout.Label($"Max random latency: {NetworkMain.Config.SimulatedRandomLatency * 1000:F1} ms"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedRandomLatency = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedRandomLatency, 0, 0, 3), 4); } GUILayout.Label($"Min latency: {NetworkMain.Config.SimulatedMinimumLatency * 1000:F1} ms"); if (MainSystem.NetworkState <= ClientState.Disconnected) { NetworkMain.Config.SimulatedMinimumLatency = (float)Math.Round(GUILayout.HorizontalScrollbar(NetworkMain.Config.SimulatedMinimumLatency, 0, 0, 3), 4); } } _showClockOffsetSettings = GUILayout.Toggle(_showClockOffsetSettings, "Clock offset simulation", ButtonStyle); if (_showClockOffsetSettings) { GUILayout.Label($"Computer clock offset: {LunaComputerTime.SimulatedMinutesTimeOffset:F1} min"); LunaComputerTime.SimulatedMinutesTimeOffset = (float)Math.Round(GUILayout.HorizontalScrollbar(LunaComputerTime.SimulatedMinutesTimeOffset, 0, -15, 15), 3); GUILayout.Label($"NTP server time offset: {LunaNetworkTime.SimulatedMsTimeOffset:F1} ms"); LunaNetworkTime.SimulatedMsTimeOffset = (float)Math.Round(GUILayout.HorizontalScrollbar(LunaNetworkTime.SimulatedMsTimeOffset, 0, -2500, 2500), 3); } }