/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['pokemon_id' => null, 'model_scale' => null, 'type' => null, 'type_2' => null, 'camera' => null, 'encounter' => null, 'stats' => null, 'quick_moves' => [], 'cinematic_moves' => [], 'animation_time' => [], 'evolution_ids' => [], 'evolution_pips' => null, 'rarity' => null, 'pokedex_height_m' => null, 'pokedex_weight_kg' => null, 'parent_pokemon_id' => null, 'height_std_dev' => null, 'weight_std_dev' => null, 'km_distance_to_hatch' => null, 'family_id' => null, 'candy_to_evolve' => null, 'km_buddy_distance' => null, 'buddy_size' => null, 'model_height' => null], $values); $message->setPokemonId($values['pokemon_id']); $message->setModelScale($values['model_scale']); $message->setType($values['type']); $message->setType2($values['type_2']); $message->setCamera($values['camera']); $message->setEncounter($values['encounter']); $message->setStats($values['stats']); $message->setEvolutionPips($values['evolution_pips']); $message->setRarity($values['rarity']); $message->setPokedexHeightM($values['pokedex_height_m']); $message->setPokedexWeightKg($values['pokedex_weight_kg']); $message->setParentPokemonId($values['parent_pokemon_id']); $message->setHeightStdDev($values['height_std_dev']); $message->setWeightStdDev($values['weight_std_dev']); $message->setKmDistanceToHatch($values['km_distance_to_hatch']); $message->setFamilyId($values['family_id']); $message->setCandyToEvolve($values['candy_to_evolve']); $message->setKmBuddyDistance($values['km_buddy_distance']); $message->setBuddySize($values['buddy_size']); $message->setModelHeight($values['model_height']); foreach ($values['quick_moves'] as $item) { $message->addQuickMoves($item); } foreach ($values['cinematic_moves'] as $item) { $message->addCinematicMoves($item); } foreach ($values['animation_time'] as $item) { $message->addAnimationTime($item); } foreach ($values['evolution_ids'] as $item) { $message->addEvolutionIds($item); } return $message; }