Files
Documentation/content/world/portals/_index.fr.md
2026-01-20 20:33:59 +01:00

4.3 KiB

title, type, weight
title type weight
Portails docs 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:

// 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:

// 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:

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:

Set<UUID> 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:

// Retirer malediction des items au retour
CursedItems.uncurseAll(inventory.getCombinedEverything());

Acces au Plugin

PortalsPlugin portals = PortalsPlugin.getInstance();

// Types de composants
ComponentType<ChunkStore, PortalDevice> portalDeviceType =
    portals.getPortalDeviceComponentType();
ComponentType<EntityStore, VoidEvent> voidEventType =
    portals.getVoidEventComponentType();
ComponentType<EntityStore, VoidSpawner> voidSpawnerType =
    portals.getVoidPortalComponentType();

// Type de ressource
ResourceType<EntityStore, PortalWorld> portalWorldType =
    portals.getPortalResourceType();

Limite Fragments Concurrents

Le systeme limite les fragments portails concurrents:

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 >}}