registerGameType<T extends Game<Event>, Q extends Game<Event>> static method

void registerGameType<T extends Game<Event>, Q extends Game<Event>>(
  1. GameType type, {
  2. required String name,
  3. required Q fromJson(
    1. Map<String, dynamic>
    ),
  4. required T initialState(
    1. GameConfig,
    2. IList<Player>
    ),
  5. required GameEvent gameEventFromJson(
    1. Map<String, dynamic>
    ),
  6. Q toClientView(
    1. T
    )?,
})

Registers a game type with the server

Implementation

static void registerGameType<T extends Game, Q extends Game>(
  GameType type, {
  required String name,
  required Q Function(Map<String, dynamic>) fromJson,
  required T Function(GameConfig, IList<Player>) initialState,
  required GameEvent Function(Map<String, dynamic>) gameEventFromJson,
  Q Function(T)? toClientView,
}) {
  if (!_generalIsRegistered) {
    _generalIsRegistered = true;
    _registerGeneralEvents();
  }
  gameNames[type] = name;
  _fromJsonFactory[type] = fromJson;
  _eventFromJsonFactory[type] = gameEventFromJson;
  _initialStates[type] = initialState;
  _toClientViews[type] = (toClientView as Game Function(Game)?) ?? (g) => g;
}