first commit

This commit is contained in:
2025-07-06 00:23:46 +02:00
commit 38f50c8819
1788 changed files with 112878 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Threading.Tasks;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Nitrox.Launcher.Models.Design;
using Nitrox.Launcher.Models.Validators;
using Nitrox.Launcher.ViewModels.Abstract;
using NitroxModel.Helper;
using NitroxModel.Server;
namespace Nitrox.Launcher.ViewModels;
public partial class CreateServerViewModel : ModalViewModelBase
{
private readonly IKeyValueStore keyValueStore;
[ObservableProperty]
[NotifyCanExecuteChangedFor(nameof(CreateCommand))]
[NotifyDataErrorInfo]
[Required]
[FileName]
[NotEndsWith(".")]
[NitroxUniqueSaveName(nameof(SavesFolderDir))]
private string name;
[ObservableProperty]
private NitroxGameMode selectedGameMode = NitroxGameMode.SURVIVAL;
private string SavesFolderDir => keyValueStore.GetSavesFolderDir();
public CreateServerViewModel()
{
}
public CreateServerViewModel(IKeyValueStore keyValueStore)
{
this.keyValueStore = keyValueStore;
}
public void CreateEmptySave(string saveName, NitroxGameMode saveGameMode)
{
string saveDir = Path.Combine(SavesFolderDir, saveName);
ServerEntry.CreateNew(saveDir, saveGameMode);
}
[RelayCommand(CanExecute = nameof(CanCreate))]
private async Task CreateAsync()
{
await Task.Run(() => CreateEmptySave(Name, SelectedGameMode));
Close(ButtonOptions.Ok);
}
private bool CanCreate() => !HasErrors;
}