/** * {@inheritdoc} */ public static function fromArray(array $values) { $message = new self(); $values = array_merge(['s2_cell_id' => null, 'current_timestamp_ms' => null, 'forts' => [], 'spawn_points' => [], 'deleted_objects' => [], 'is_truncated_list' => null, 'fort_summaries' => [], 'decimated_spawn_points' => [], 'wild_pokemons' => [], 'catchable_pokemons' => [], 'nearby_pokemons' => []], $values); $message->setS2CellId($values['s2_cell_id']); $message->setCurrentTimestampMs($values['current_timestamp_ms']); $message->setIsTruncatedList($values['is_truncated_list']); foreach ($values['forts'] as $item) { $message->addForts($item); } foreach ($values['spawn_points'] as $item) { $message->addSpawnPoints($item); } foreach ($values['deleted_objects'] as $item) { $message->addDeletedObjects($item); } foreach ($values['fort_summaries'] as $item) { $message->addFortSummaries($item); } foreach ($values['decimated_spawn_points'] as $item) { $message->addDecimatedSpawnPoints($item); } foreach ($values['wild_pokemons'] as $item) { $message->addWildPokemons($item); } foreach ($values['catchable_pokemons'] as $item) { $message->addCatchablePokemons($item); } foreach ($values['nearby_pokemons'] as $item) { $message->addNearbyPokemons($item); } return $message; }