Skip to content

Commit d837a46

Browse files
committed
Moar settings
1 parent 10db93e commit d837a46

2 files changed

Lines changed: 106 additions & 0 deletions

File tree

‎Torch.Server/ViewModels/SessionSettingsViewModel.cs‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,54 @@ public class SessionSettingsViewModel : ViewModel
314314

315315
[Torch.Views.Display(Description = "Enables system for weather", Name = "Enable Weather System", GroupName = "Others")]
316316
public bool EnableWeatherSystem { get => _settings.WeatherSystem; set => SetValue(ref _settings.WeatherSystem, value); }
317+
318+
[Torch.Views.Display(Description = "Global encounter spawn timer in minutes.", Name = "Global Encounter Timer", GroupName = "NPCs")]
319+
public int GlobalEncounterTimer { get => _settings.GlobalEncounterTimer; set => SetValue(ref _settings.GlobalEncounterTimer, value); }
320+
321+
[Torch.Views.Display(Description = "Maximum number of encounters that can exist at once. 0 means unlimited.", Name = "Global Encounter Cap", GroupName = "NPCs")]
322+
public int GlobalEncounterCap { get => _settings.GlobalEncounterCap; set => SetValue(ref _settings.GlobalEncounterCap, value); }
323+
324+
[Torch.Views.Display(Description = "Enables automatic removal of encounters after a time period.", Name = "Enable Encounter Removal Timer", GroupName = "NPCs")]
325+
public bool GlobalEncounterEnableRemovalTimer { get => _settings.GlobalEncounterEnableRemovalTimer; set => SetValue(ref _settings.GlobalEncounterEnableRemovalTimer, value); }
326+
327+
[Torch.Views.Display(Description = "Minimum time in minutes before an encounter can be removed.", Name = "Min Encounter Removal Timer", GroupName = "NPCs")]
328+
public int GlobalEncounterMinRemovalTimer { get => _settings.GlobalEncounterMinRemovalTimer; set => SetValue(ref _settings.GlobalEncounterMinRemovalTimer, value); }
329+
330+
[Torch.Views.Display(Description = "Maximum time in minutes before an encounter is removed.", Name = "Max Encounter Removal Timer", GroupName = "NPCs")]
331+
public int GlobalEncounterMaxRemovalTimer { get => _settings.GlobalEncounterMaxRemovalTimer; set => SetValue(ref _settings.GlobalEncounterMaxRemovalTimer, value); }
332+
333+
[Torch.Views.Display(Description = "Time in minutes between encounter removal checks.", Name = "Encounter Removal Check Interval", GroupName = "NPCs")]
334+
public int GlobalEncounterRemovalTimeClock { get => _settings.GlobalEncounterRemovalTimeClock; set => SetValue(ref _settings.GlobalEncounterRemovalTimeClock, value); }
335+
336+
[Torch.Views.Display(Description = "Density of encounters in the world (0.0 to 1.0).", Name = "Encounter Density", GroupName = "NPCs")]
337+
public float EncounterDensity { get => _settings.EncounterDensity; set => SetValue(ref _settings.EncounterDensity, value); }
338+
339+
[Torch.Views.Display(Description = "Version of the encounter generator system.", Name = "Encounter Generator Version", GroupName = "NPCs")]
340+
public int EncounterGeneratorVersion { get => _settings.EncounterGeneratorVersion; set => SetValue(ref _settings.EncounterGeneratorVersion, value); }
341+
342+
[Torch.Views.Display(Description = "Enables encounters on planets.", Name = "Enable Planetary Encounters", GroupName = "NPCs")]
343+
public bool EnablePlanetaryEncounters { get => _settings.EnablePlanetaryEncounters; set => SetValue(ref _settings.EnablePlanetaryEncounters, value); }
344+
345+
[Torch.Views.Display(Description = "Minimum time in minutes between planetary encounter spawns.", Name = "Min Planetary Encounter Timer", GroupName = "NPCs")]
346+
public float PlanetaryEncounterTimerMin { get => _settings.PlanetaryEncounterTimerMin; set => SetValue(ref _settings.PlanetaryEncounterTimerMin, value); }
347+
348+
[Torch.Views.Display(Description = "Maximum time in minutes between planetary encounter spawns.", Name = "Max Planetary Encounter Timer", GroupName = "NPCs")]
349+
public float PlanetaryEncounterTimerMax { get => _settings.PlanetaryEncounterTimerMax; set => SetValue(ref _settings.PlanetaryEncounterTimerMax, value); }
350+
351+
[Torch.Views.Display(Description = "Range in meters to check for existing structures when spawning planetary encounters.", Name = "Planetary Encounter Structure Range", GroupName = "NPCs")]
352+
public int PlanetaryEncounterExistingStructuresRange { get => _settings.PlanetaryEncounterExistingStructuresRange; set => SetValue(ref _settings.PlanetaryEncounterExistingStructuresRange, value); }
353+
354+
[Torch.Views.Display(Description = "Range in meters for area lockdown when spawning planetary encounters.", Name = "Planetary Encounter Lockdown Range", GroupName = "NPCs")]
355+
public int PlanetaryEncounterAreaLockdownRange { get => _settings.PlanetaryEncounterAreaLockdownRange; set => SetValue(ref _settings.PlanetaryEncounterAreaLockdownRange, value); }
356+
357+
[Torch.Views.Display(Description = "Desired spawn range in meters for planetary encounters.", Name = "Planetary Encounter Spawn Range", GroupName = "NPCs")]
358+
public int PlanetaryEncounterDesiredSpawnRange { get => _settings.PlanetaryEncounterDesiredSpawnRange; set => SetValue(ref _settings.PlanetaryEncounterDesiredSpawnRange, value); }
359+
360+
[Torch.Views.Display(Description = "Range in meters to check for player presence near planetary encounters.", Name = "Planetary Encounter Presence Range", GroupName = "NPCs")]
361+
public int PlanetaryEncounterPresenceRange { get => _settings.PlanetaryEncounterPresenceRange; set => SetValue(ref _settings.PlanetaryEncounterPresenceRange, value); }
362+
363+
[Torch.Views.Display(Description = "Time in minutes before despawning planetary encounters with no player presence.", Name = "Planetary Encounter Despawn Timeout", GroupName = "NPCs")]
364+
public float PlanetaryEncounterDespawnTimeout { get => _settings.PlanetaryEncounterDespawnTimeout; set => SetValue(ref _settings.PlanetaryEncounterDespawnTimeout, value); }
317365

318366
public SessionSettingsViewModel(MyObjectBuilder_SessionSettings settings)
319367
{

‎Torch.Server/Views/SessionSettingsView.xaml‎

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,5 +184,63 @@
184184
</StackPanel>
185185
</StackPanel>
186186
</Expander>
187+
<Expander Header="Encounters">
188+
<StackPanel Margin="10,0,0,0">
189+
<StackPanel Orientation="Horizontal">
190+
<TextBox Text="{Binding GlobalEncounterTimer}" Margin="3" Width="70" />
191+
<Label Content="Global Encounter Timer (mins)" />
192+
</StackPanel>
193+
<StackPanel Orientation="Horizontal">
194+
<TextBox Text="{Binding GlobalEncounterCap}" Margin="3" Width="70" />
195+
<Label Content="Global Encounter Cap" />
196+
</StackPanel>
197+
<CheckBox IsChecked="{Binding GlobalEncounterEnableRemovalTimer}" Content="Enable Encounter Removal" Margin="3" />
198+
<StackPanel Orientation="Horizontal">
199+
<TextBox Text="{Binding GlobalEncounterMinRemovalTimer}" Margin="3" Width="70" />
200+
<Label Content="Min Removal Timer (mins)" />
201+
</StackPanel>
202+
<StackPanel Orientation="Horizontal">
203+
<TextBox Text="{Binding GlobalEncounterMaxRemovalTimer}" Margin="3" Width="70" />
204+
<Label Content="Max Removal Timer (mins)" />
205+
</StackPanel>
206+
<StackPanel Orientation="Horizontal">
207+
<TextBox Text="{Binding GlobalEncounterRemovalTimeClock}" Margin="3" Width="70" />
208+
<Label Content="Removal Check Interval (mins)" />
209+
</StackPanel>
210+
<StackPanel Orientation="Horizontal">
211+
<TextBox Text="{Binding EncounterDensity}" Margin="3" Width="70" />
212+
<Label Content="Encounter Density" />
213+
</StackPanel>
214+
<CheckBox IsChecked="{Binding EnablePlanetaryEncounters}" Content="Enable Planetary Encounters" Margin="3" />
215+
<StackPanel Orientation="Horizontal">
216+
<TextBox Text="{Binding PlanetaryEncounterTimerMin}" Margin="3" Width="70" />
217+
<Label Content="Min Planetary Timer (mins)" />
218+
</StackPanel>
219+
<StackPanel Orientation="Horizontal">
220+
<TextBox Text="{Binding PlanetaryEncounterTimerMax}" Margin="3" Width="70" />
221+
<Label Content="Max Planetary Timer (mins)" />
222+
</StackPanel>
223+
<StackPanel Orientation="Horizontal">
224+
<TextBox Text="{Binding PlanetaryEncounterExistingStructuresRange}" Margin="3" Width="70" />
225+
<Label Content="Structure Check Range (m)" />
226+
</StackPanel>
227+
<StackPanel Orientation="Horizontal">
228+
<TextBox Text="{Binding PlanetaryEncounterAreaLockdownRange}" Margin="3" Width="70" />
229+
<Label Content="Area Lockdown Range (m)" />
230+
</StackPanel>
231+
<StackPanel Orientation="Horizontal">
232+
<TextBox Text="{Binding PlanetaryEncounterDesiredSpawnRange}" Margin="3" Width="70" />
233+
<Label Content="Desired Spawn Range (m)" />
234+
</StackPanel>
235+
<StackPanel Orientation="Horizontal">
236+
<TextBox Text="{Binding PlanetaryEncounterPresenceRange}" Margin="3" Width="70" />
237+
<Label Content="Presence Check Range (m)" />
238+
</StackPanel>
239+
<StackPanel Orientation="Horizontal">
240+
<TextBox Text="{Binding PlanetaryEncounterDespawnTimeout}" Margin="3" Width="70" />
241+
<Label Content="Despawn Timeout (mins)" />
242+
</StackPanel>
243+
</StackPanel>
244+
</Expander>
187245
</StackPanel>
188246
</UserControl>

0 commit comments

Comments
 (0)