This commit is contained in:
2026-01-20 20:33:59 +01:00
commit b16a40e431
583 changed files with 87339 additions and 0 deletions

View File

@@ -0,0 +1,212 @@
---
title: Spawning Local
type: docs
weight: 3
---
Le spawning local gere le spawn de NPCs autour des joueurs, assurant que les zones de jeu actives ont une densite de creatures appropriee.
**Package:** `com.hypixel.hytale.server.spawning.local`
## Architecture
```
Spawning Local
├── Composants
│ ├── LocalSpawnController - Controleur spawn joueur
│ ├── LocalSpawnBeacon - Point de spawn local
│ └── LocalSpawnState - Suivi etat spawn
└── Systemes
├── LocalSpawnSetupSystem - Initialiser spawning local
├── LocalSpawnControllerSystem - Traiter controleurs
├── LocalSpawnBeaconSystem - Traiter beacons
└── LocalSpawnForceTriggerSystem - Declencheurs manuels
```
## LocalSpawnController
Controle le spawning local autour d'un joueur:
```java
public class LocalSpawnController implements Component<EntityStore> {
private double timeToNextRunSeconds;
public void setTimeToNextRunSeconds(double seconds);
public boolean tickTimeToNextRunSeconds(float dt);
}
```
### Acces au Composant
```java
// Obtenir type de composant
ComponentType<EntityStore, LocalSpawnController> type =
SpawningPlugin.get().getLocalSpawnControllerComponentType();
// Acceder sur entite joueur
LocalSpawnController controller = store.getComponent(playerRef, type);
```
### Timing de Spawn
Le controleur utilise un delai configurable avant spawning:
```java
// Delai initial configure dans SpawningPlugin
double joinDelay = SpawningPlugin.get().getLocalSpawnControllerJoinDelay();
```
Cela empeche le spawning immediat quand un joueur rejoint, laissant le temps au monde de charger.
## LocalSpawnBeacon
Definit les points de spawn locaux autour des joueurs:
```java
public class LocalSpawnBeacon {
// Position et configuration pour spawns locaux
// Cree dynamiquement base sur position joueur
}
```
### Utilisation des Beacons
Les beacons de spawn locaux sont geres automatiquement:
1. Crees autour des joueurs actifs
2. Mis a jour quand joueurs bougent
3. Supprimes quand joueurs quittent la zone
## LocalSpawnState
Suit l'etat de spawn local:
```java
public class LocalSpawnState {
// Etat de spawn actuel pour un controleur local
// Suit spawns actifs et cooldowns
}
```
## Systemes
### LocalSpawnSetupSystem
Initialise le spawning local pour les joueurs:
```java
getEntityStoreRegistry().registerSystem(new LocalSpawnSetupSystem());
```
Ce systeme:
- Attache `LocalSpawnController` aux nouveaux joueurs
- Configure parametres de spawn initiaux
- Configure les beacons de spawn
### LocalSpawnControllerSystem
Traite les controleurs de spawn a chaque tick:
```java
getEntityStoreRegistry().registerSystem(new LocalSpawnControllerSystem());
```
Ce systeme:
- Decremente les timers de spawn
- Verifie les conditions de spawn
- Declenche jobs de spawn quand pret
### LocalSpawnBeaconSystem
Gere les beacons de spawn locaux:
```java
getEntityStoreRegistry().registerSystem(new LocalSpawnBeaconSystem());
```
Ce systeme:
- Met a jour positions des beacons
- Traite logique spawn beacon
- Gere cycle de vie beacon
### LocalSpawnForceTriggerSystem
Gere les declencheurs de spawn forces:
```java
getEntityStoreRegistry().registerSystem(new LocalSpawnForceTriggerSystem());
```
Utilise pour:
- Commandes debug
- Spawning declenche par evenement
- Population manuelle
## Utilisation de l'API
### Obtenir Controleur Spawn Local
```java
ComponentType<EntityStore, LocalSpawnController> type =
LocalSpawnController.getComponentType();
LocalSpawnController controller = store.getComponent(playerRef, type);
if (controller != null) {
// Le joueur a le spawning local active
}
```
### Forcer Mise a Jour Spawn
```java
// Reset timer spawn pour declencher verification immediate
LocalSpawnController controller = store.getComponent(playerRef, type);
controller.setTimeToNextRunSeconds(0);
```
### Verifier Pret pour Spawn
```java
// Verifier si timer spawn ecoule
boolean ready = controller.tickTimeToNextRunSeconds(deltaTime);
if (ready) {
// Temps de tenter spawning
}
```
## Configuration
### Delai de Connexion
Configurer le delai avant que spawning local demarre pour nouveaux joueurs:
```java
double delay = SpawningPlugin.get().getLocalSpawnControllerJoinDelay();
```
Cela empeche:
- Embuscades immediates au spawn
- Submerger les nouveaux joueurs
- Spawning avant chargement monde
### Rayon de Spawn
Le spawning local utilise un rayon configure autour des joueurs:
```java
// Le rayon de spawn determine a quelle distance du joueur les NPCs peuvent spawn
// Configure par definition de spawn
```
## Integration avec Spawning Mondial
Le spawning local fonctionne avec le spawning mondial:
| Systeme | Portee | Declencheur |
|---------|--------|-------------|
| Spawning Mondial | Base chunk | Chargement chunk |
| Spawning Local | Centre joueur | Proximite joueur |
Les deux systemes:
- Respectent la suppression de spawn
- Utilisent le meme pool NPC
- Partagent les limites de spawn