93 lines
3.1 KiB
Markdown
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 >}}
|