/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['id' => null, 'last_modified_timestamp_ms' => null, 'latitude' => null, 'longitude' => null, 'owned_by_team' => null, 'guard_pokemon_id' => null, 'guard_pokemon_cp' => null, 'enabled' => null, 'type' => null, 'gym_points' => null, 'is_in_battle' => null, 'active_fort_modifier' => [], 'lure_info' => null, 'cooldown_complete_timestamp_ms' => null, 'sponsor' => null, 'rendering_type' => null, 'deploy_lockout_end_ms' => null], $values); $message->setId($values['id']); $message->setLastModifiedTimestampMs($values['last_modified_timestamp_ms']); $message->setLatitude($values['latitude']); $message->setLongitude($values['longitude']); $message->setOwnedByTeam($values['owned_by_team']); $message->setGuardPokemonId($values['guard_pokemon_id']); $message->setGuardPokemonCp($values['guard_pokemon_cp']); $message->setEnabled($values['enabled']); $message->setType($values['type']); $message->setGymPoints($values['gym_points']); $message->setIsInBattle($values['is_in_battle']); $message->setLureInfo($values['lure_info']); $message->setCooldownCompleteTimestampMs($values['cooldown_complete_timestamp_ms']); $message->setSponsor($values['sponsor']); $message->setRenderingType($values['rendering_type']); $message->setDeployLockoutEndMs($values['deploy_lockout_end_ms']); foreach ($values['active_fort_modifier'] as $item) { $message->addActiveFortModifier($item); } return $message; }