public async Task JoinAsync(LocalGameServer gameServer) { var joinResult = await gameServer.JoinAsync(this); if (joinResult.IsSuccessful) await InitializeAsync(joinResult.SpawnPosition, gameServer.UnderlyingGameServer); else throw new InvalidOperationException("Failed to join game server"); }
public async Task InitializeAsync() { var storage = new InMemoryChunkStorage(SampleChunks.MapMetadata); await storage.SaveAsync(new Point(0, 0), SampleChunks.Chunk1.Clone()); await storage.SaveAsync(new Point(-1, 0), SampleChunks.Chunk2.Clone()); await storage.SaveAsync(new Point(-1, -1), SampleChunks.Chunk3.Clone()); var map = new Map(storage); await map.GetAsync(Point.Zero); _gameServer = new GameServer(map); LocalServer = new LocalGameServer(_gameServer); }
public LocalGameClientViewModel(LocalGameServer gameServer) { _server = gameServer; }