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

93 lines
3.1 KiB
Markdown

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