Passerelles
tilttek/seasonal-eventsLa bibliothèque ne dépend d'aucun autre paquet de Tilttek. Les passerelles sous Bridge\ ne servent que lorsque
l'application installe le paquet auquel elles mènent.
Quêtes
Bridge\Quests\SeasonQuestSchedule est le calendrier d'une quête de tilttek/quests qui s'ouvre avec une saison, ou
avec l'un de ses événements. Chaque venue de la saison est une occurrence, dont le code est la date du premier jour de
la saison, de sorte que la quête s'accomplit une fois par année :
use Tilttek\SeasonalEvents\Bridge\Quests\SeasonQuestSchedule;
$schedule = new SeasonQuestSchedule($winter); // while the season lasts
$giftWeek = new SeasonQuestSchedule($winter, $winter->event('gift-week')); // while the event runs
Collections
Bridge\Collections\SeasonalItems liste les objets d'un catalogue de tilttek/collections qu'apportent les saisons à
un moment : chaque référence d'objet du genre donné, item:snow-hat, désigne l'objet de ce code ; une référence que le
catalogue ne contient pas est laissée de côté.
$items = new SeasonalItems($seasons, $catalogProvider)->at();
Une saison qui vient chaque année apporte de nouveau ses objets : rien de ce qu'un membre collectionne n'est perdu pour de bon.
Un calendrier de l'avent pendant une saison
Un calendrier de tilttek/advent-calendar peut se dérouler pendant une saison sans que l'un des paquets connaisse
l'autre : l'application construit le calendrier de chaque année à partir de la prochaine venue de la saison.
use Tilttek\AdventCalendar\Calendar;
$period = $seasons->next('winter-festival');
$calendar = Calendar::of('advent-'.substr($period->code, 0, 4), 'America/Toronto', $period->code, $surprises);
L'identifiant du calendrier porte l'année, afin que les ouvertures d'une année ne soient pas celles de la suivante.