--- title: Portails type: docs weight: 6 --- Le systeme de portails fournit des mecaniques de voyage inter-dimensionnel entre les mondes, incluant les dispositifs de portail, les evenements du vide et les instances de fragment. **Package:** `com.hypixel.hytale.builtin.portals` ## Architecture ``` Systeme Portails ├── Composants │ ├── PortalDevice - Composant bloc portail │ ├── VoidEvent - Evenement invasion du vide │ └── VoidSpawner - Entite spawner du vide ├── Ressources │ └── PortalWorld - Donnees monde portail ├── Interactions │ ├── EnterPortalInteraction - Entrer portail │ └── ReturnPortalInteraction - Retour du portail ├── Systemes │ ├── PortalTrackerSystems - Suivi UI │ ├── PortalInvalidDestinationSystem - Validation destination │ ├── VoidEventStagesSystem - Progression evenement vide │ └── VoidSpawnerSystems - Gestion spawners └── Commandes ├── FragmentCommands - Gestion fragments ├── LeaveCommand - Quitter monde portail └── VoidEventCommands - Controle evenement vide ``` ## Concepts Cles ### Dispositif Portail Un dispositif de portail est une entite basee sur un bloc qui peut transporter les joueurs vers des mondes fragments: ```java // PortalDevice est un composant ChunkStore PortalDevice portal = BlockModule.get().getComponent( PortalDevice.getComponentType(), world, x, y, z ); // Obtenir monde de destination World targetWorld = portal.getDestinationWorld(); ``` ### Monde Portail Un monde portail est une instance temporaire creee quand les joueurs activent un portail: ```java // PortalWorld est une ressource EntityStore PortalWorld portalWorld = store.getResource(PortalWorld.getResourceType()); // Verifier si c'est un monde portail if (portalWorld.exists()) { Transform spawn = portalWorld.getSpawnPoint(); double remaining = portalWorld.getRemainingSeconds(world); } ``` ### Instances Fragment Les fragments sont des mondes temporaires avec: - Limite de temps avant fermeture automatique - Point de spawn pour les joueurs revenant - Suivi des morts (les joueurs morts ne peuvent pas re-entrer) - Evenements d'invasion du vide optionnels ## Fonctionnalites Cles ### Etats du Portail Les portails ont trois etats visuels: - **Eteint** - Portail inactif - **Invocation** - Instance en creation - **Actif** - Portail pret pour le voyage ### Limites de Temps Les mondes portails ont des limites de temps configurables: ```java int totalTime = portalWorld.getTimeLimitSeconds(); double elapsed = portalWorld.getElapsedSeconds(world); double remaining = portalWorld.getRemainingSeconds(world); ``` ### Suivi des Morts Les joueurs morts dans un monde portail ne peuvent pas re-entrer: ```java Set deaths = portalWorld.getDiedInWorld(); if (deaths.contains(playerUuid)) { // Joueur mort ici - afficher etat "DIED_IN_WORLD" } ``` ### Items Maudits Les items peuvent devenir "maudits" dans les mondes portails et sont retires a la mort: ```java // Retirer malediction des items au retour CursedItems.uncurseAll(inventory.getCombinedEverything()); ``` ## Acces au Plugin ```java PortalsPlugin portals = PortalsPlugin.getInstance(); // Types de composants ComponentType portalDeviceType = portals.getPortalDeviceComponentType(); ComponentType voidEventType = portals.getVoidEventComponentType(); ComponentType voidSpawnerType = portals.getVoidPortalComponentType(); // Type de ressource ResourceType portalWorldType = portals.getPortalResourceType(); ``` ## Limite Fragments Concurrents Le systeme limite les fragments portails concurrents: ```java public static final int MAX_CONCURRENT_FRAGMENTS = 4; int active = portals.countActiveFragments(); if (active >= MAX_CONCURRENT_FRAGMENTS) { // Impossible de creer nouveaux fragments } ``` ## Sujets Connexes {{< cards >}} {{< card link="portal-components" title="Composants Portail" subtitle="Composants PortalDevice, VoidEvent" >}} {{< card link="portal-systems" title="Systemes Portail" subtitle="Systemes ECS pour logique portail" >}} {{< card link="portal-commands" title="Commandes Portail" subtitle="Commandes admin et joueur" >}} {{< /cards >}}