--- title: Effets type: docs weight: 10 --- Les effets visuels dans Hytale incluent les particules, les lumières dynamiques et les effets de statut d'entité. {{< cards >}} {{< card link="particles" title="Particules" subtitle="Générer et configurer les systèmes de particules" >}} {{< card link="dynamic-lights" title="Lumières Dynamiques" subtitle="Effets de lueur sur les entités" >}} {{< card link="entity-effects" title="Effets d'Entité" subtitle="Effets de statut avec visuels" >}} {{< /cards >}} ## Aperçu Hytale fournit trois systèmes d'effets visuels complémentaires : | Système | Objectif | Cas d'Usage | |---------|----------|-------------| | **Particules** | Atmosphère visuelle et feedback | Explosions, traînées, effets ambiants | | **Lumières Dynamiques** | Effets de lueur sur les entités | Objets lumineux, auras magiques | | **Effets d'Entité** | Effets de statut avec visuels | Buffs, debuffs, indicateurs de statut | ## Démarrage Rapide ### Générer des Particules ```java import com.hypixel.hytale.server.core.universe.world.ParticleUtil; // Générer des particules à une position ParticleUtil.spawnParticleEffect( "explosion_small", // ID du système de particules position, // Position Vector3d componentAccessor ); ``` ### Ajouter une Lumière Dynamique ```java import com.hypixel.hytale.protocol.ColorLight; import com.hypixel.hytale.server.core.modules.entity.component.DynamicLight; // Créer une lumière colorée (rayon, R, V, B) ColorLight light = new ColorLight( (byte) 15, // Rayon (byte) 255, // Rouge (byte) 100, // Vert (byte) 50 // Bleu ); // Ajouter à l'entité DynamicLight dynamicLight = new DynamicLight(light); componentAccessor.putComponent(entityRef, DynamicLight.getComponentType(), dynamicLight); ``` ### Appliquer des Effets d'Entité ```java import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent; // Obtenir le contrôleur d'effets EffectControllerComponent controller = store.getComponent( entityRef, EffectControllerComponent.getComponentType() ); // Appliquer l'effet EntityEffect effect = EntityEffect.getAssetMap().getAsset("fire_resistance"); controller.addEffect(entityRef, effect, componentAccessor); ``` ## Classes Principales | Classe | Package | Objectif | |--------|---------|----------| | `ParticleUtil` | server.core.universe.world | Générer des particules | | `ParticleSystem` | asset.type.particle.config | Configuration du système | | `DynamicLight` | modules.entity.component | Effets de lueur d'entité | | `ColorLight` | protocol | Données couleur/rayon de lumière | | `EntityEffect` | asset.type.entityeffect.config | Définition d'effet de statut | ## Considérations Réseau {{< callout type="info" >}} **Détails Réseau :** - Les particules sont envoyées dans un rayon de 75 blocs par défaut (`DEFAULT_PARTICLE_DISTANCE`) - Les changements de DynamicLight se synchronisent automatiquement quand marqués obsolètes - Les effets d'entité se synchronisent via `EffectControllerComponent` {{< /callout >}}