Variant.fromJson constructor
Variant.fromJson(
- Map<
String, dynamic> json, { - List<
BishopTypeAdapter> adapters = const [],
Implementation
factory Variant.fromJson(
Map<String, dynamic> json, {
List<BishopTypeAdapter> adapters = const [],
}) {
return Variant(
name: json['name'],
description: json['description'],
boardSize: BoardSize.fromString(json['boardSize']),
pieceTypes: json['pieceTypes'].map<String, PieceType>(
(k, v) =>
MapEntry(k as String, PieceType.fromJson(v, adapters: adapters)),
),
castlingOptions: CastlingOptions.fromJson(json['castlingOptions']),
promotionOptions: (json.containsKey('promotionOptions')
? BishopSerialisation.build<PromotionOptions>(
json['promotionOptions'],
adapters: adapters,
)
: null) ??
PromotionOptions.standard,
materialConditions: json.containsKey('materialConditions')
? MaterialConditions.fromJson(json['materialConditions'])
: MaterialConditions.none,
gameEndConditions: json.containsKey('gameEndConditions')
? GameEndConditionSet.fromJson(json['gameEndConditions'])
: GameEndConditionSet.standard,
outputOptions: json.containsKey('outputOptions')
? OutputOptions.fromJson(json['outputOptions'])
: OutputOptions.standard,
startPosition: json['startPosition'],
startPosBuilder: json.containsKey('startPosBuilder')
? BishopSerialisation.build<StartPositionBuilder>(
json['startPosBuilder'],
adapters: adapters,
)
: null,
enPassant: json['enPassant'],
firstMoveOptions: (json.containsKey('firstMoveOptions')
? BishopSerialisation.build<FirstMoveOptions>(
json['firstMoveOptions'],
adapters: adapters,
)
: null) ??
FirstMoveOptions.standard,
halfMoveDraw: json['halfMoveDraw'],
repetitionDraw: json['repetitionDraw'],
forbidChecks: json['forbidChecks'] ?? false,
forcedCapture: json['forcedCapture'] != null
? ForcedCapture.fromName(json['forcedCapture'])
: null,
handOptions: json.containsKey('handOptions')
? HandOptions.fromJson(json['handOptions'])
: HandOptions.disabled,
gatingMode: GatingMode.values
.firstWhere((e) => e.name == (json['gatingMode'] ?? 'none')),
pieceValues: (json['pieceValues'] as Map<String, dynamic>?)?.map(
(k, v) => MapEntry(k, v as int),
),
passOptions: (json.containsKey('passOptions')
? BishopSerialisation.build<PassOptions>(
json['passOptions'],
adapters: adapters,
)
: null) ??
PassOptions.none,
regions: (json['regions'] as Map<String, dynamic>?)
?.map((k, v) => MapEntry(k, BoardRegion.fromJson(v))) ??
const {},
actions: json.containsKey('actions')
? BishopSerialisation.buildMany<Action>(
json['actions'],
adapters: adapters,
)
: const [],
stateTransformer: json['stateTransformer'] != null
? BishopSerialisation.build<StateTransformer>(
json['stateTransformer'],
adapters: adapters,
)
: null,
adapters: adapters,
);
}