public override bool Process(ProcessCommandLineArgs args) { var command = args.Command; var platform = command.GetValue("platform", "p"); #if DEBUG //platform = "win"; #endif try { EngineInternal.Initialize(platform); } catch (Exception ex) { args.Writer.WriteLine("Error initializing platform: {0}", ex); #if DEBUG throw; #endif } mainthread = Platform.Instance.ThreadStart(); args.Writer.WriteLine("Using {0} platform", Platform.Instance.ID); return(false); }
public void Execute(List <string> extraWords, IAccountGrain executingAccount) { AttachedClient executingClient = AttachedClients.GetAccountFocusedClient(executingAccount); if (executingAccount == null || executingClient == null || !executingAccount.CanCreateNewPlayer().Result) { var errorMsgDto = new DescriptiveTextDto("The create new player command is currently unavailable."); executingClient?.SendDtoMessage(errorMsgDto); return; } if (extraWords.Count != 1) { var errorMsgDto = new DescriptiveTextDto("Wrong number of parameters."); executingClient?.SendDtoMessage(errorMsgDto); return; } if (GrainClusterClient.Universe.IsPlayerCharacterNameInUse(extraWords[0]).Result) { var errorMsgDto = new DescriptiveTextDto("This character name is already taken."); executingClient?.SendDtoMessage(errorMsgDto); return; } var newPlayerCharacter = EngineInternal.NewPlayerCreator(); newPlayerCharacter.Name = extraWords[0]; // Mark all player characters as needing focus to stay in the world newPlayerCharacter.NeedsFocus = true; executingAccount.AddCharacter(newPlayerCharacter.TrackingId).Wait(); var successMsgDto = new DescriptiveTextDto("New player created."); executingClient?.SendDtoMessage(successMsgDto); }