Init
This commit is contained in:
92
content/advanced/effects/_index.en.md
Normal file
92
content/advanced/effects/_index.en.md
Normal file
@@ -0,0 +1,92 @@
|
||||
---
|
||||
title: Effects
|
||||
type: docs
|
||||
weight: 10
|
||||
---
|
||||
|
||||
Visual effects in Hytale include particles, dynamic lights, and entity status effects.
|
||||
|
||||
{{< cards >}}
|
||||
{{< card link="particles" title="Particles" subtitle="Spawn and configure particle systems" >}}
|
||||
{{< card link="dynamic-lights" title="Dynamic Lights" subtitle="Glow effects on entities" >}}
|
||||
{{< card link="entity-effects" title="Entity Effects" subtitle="Status effects with visuals" >}}
|
||||
{{< /cards >}}
|
||||
|
||||
## Overview
|
||||
|
||||
Hytale provides three complementary visual effect systems:
|
||||
|
||||
| System | Purpose | Use Cases |
|
||||
|--------|---------|-----------|
|
||||
| **Particles** | Visual atmosphere and feedback | Explosions, trails, ambient effects |
|
||||
| **Dynamic Lights** | Glow effects on entities | Glowing items, magic auras |
|
||||
| **Entity Effects** | Status effects with visuals | Buffs, debuffs, status indicators |
|
||||
|
||||
## Quick Start
|
||||
|
||||
### Spawning Particles
|
||||
|
||||
```java
|
||||
import com.hypixel.hytale.server.core.universe.world.ParticleUtil;
|
||||
|
||||
// Spawn particles at a position
|
||||
ParticleUtil.spawnParticleEffect(
|
||||
"explosion_small", // Particle system ID
|
||||
position, // Vector3d position
|
||||
componentAccessor
|
||||
);
|
||||
```
|
||||
|
||||
### Adding Dynamic Light
|
||||
|
||||
```java
|
||||
import com.hypixel.hytale.protocol.ColorLight;
|
||||
import com.hypixel.hytale.server.core.modules.entity.component.DynamicLight;
|
||||
|
||||
// Create a colored light (radius, R, G, B)
|
||||
ColorLight light = new ColorLight(
|
||||
(byte) 15, // Radius
|
||||
(byte) 255, // Red
|
||||
(byte) 100, // Green
|
||||
(byte) 50 // Blue
|
||||
);
|
||||
|
||||
// Add to entity
|
||||
DynamicLight dynamicLight = new DynamicLight(light);
|
||||
componentAccessor.putComponent(entityRef, DynamicLight.getComponentType(), dynamicLight);
|
||||
```
|
||||
|
||||
### Applying Entity Effects
|
||||
|
||||
```java
|
||||
import com.hypixel.hytale.server.core.entity.effect.EffectControllerComponent;
|
||||
|
||||
// Get effect controller
|
||||
EffectControllerComponent controller = store.getComponent(
|
||||
entityRef,
|
||||
EffectControllerComponent.getComponentType()
|
||||
);
|
||||
|
||||
// Apply effect
|
||||
EntityEffect effect = EntityEffect.getAssetMap().getAsset("fire_resistance");
|
||||
controller.addEffect(entityRef, effect, componentAccessor);
|
||||
```
|
||||
|
||||
## Key Classes
|
||||
|
||||
| Class | Package | Purpose |
|
||||
|-------|---------|---------|
|
||||
| `ParticleUtil` | server.core.universe.world | Spawn particles |
|
||||
| `ParticleSystem` | asset.type.particle.config | System configuration |
|
||||
| `DynamicLight` | modules.entity.component | Entity glow effects |
|
||||
| `ColorLight` | protocol | Light color/radius data |
|
||||
| `EntityEffect` | asset.type.entityeffect.config | Status effect definition |
|
||||
|
||||
## Network Considerations
|
||||
|
||||
{{< callout type="info" >}}
|
||||
**Network Details:**
|
||||
- Particles are sent within 75 blocks by default (`DEFAULT_PARTICLE_DISTANCE`)
|
||||
- DynamicLight changes sync automatically when marked as outdated
|
||||
- Entity effects sync via `EffectControllerComponent`
|
||||
{{< /callout >}}
|
||||
Reference in New Issue
Block a user