Init
This commit is contained in:
86
content/world/entities/npc/_index.fr.md
Normal file
86
content/world/entities/npc/_index.fr.md
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: Système NPC
|
||||
type: docs
|
||||
weight: 10
|
||||
---
|
||||
|
||||
Le système NPC (Non-Player Character) fournit un framework complet pour créer des personnages de jeu intelligents avec un comportement autonome, une prise de décision et des capacités de navigation.
|
||||
|
||||
**Package:** `com.hypixel.hytale.server.npc`
|
||||
|
||||
{{< cards >}}
|
||||
{{< card link="npc-basics" title="Bases NPC" subtitle="Création et configuration des NPCs" >}}
|
||||
{{< card link="npc-components" title="Composants NPC" subtitle="Composants de base et données" >}}
|
||||
{{< card link="npc-ai" title="IA NPC" subtitle="Blackboard, décisions et capteurs" >}}
|
||||
{{< card link="npc-movement" title="Mouvement NPC" subtitle="Navigation et pathfinding" >}}
|
||||
{{< card link="npc-commands" title="Commandes NPC" subtitle="Commandes admin et debug" >}}
|
||||
{{< /cards >}}
|
||||
|
||||
## Vue d'Ensemble de l'Architecture
|
||||
|
||||
Le système NPC est construit sur plusieurs sous-systèmes interconnectés :
|
||||
|
||||
```
|
||||
NPCEntity
|
||||
├── Blackboard (état/mémoire partagé)
|
||||
├── Role (template comportemental)
|
||||
│ ├── Instructions (objectifs haut niveau)
|
||||
│ ├── Sensors (perception)
|
||||
│ └── Actions (comportements)
|
||||
├── DecisionMaker (logique IA)
|
||||
│ ├── Evaluators (vérification conditions)
|
||||
│ └── Options (sélection actions)
|
||||
└── Movement
|
||||
├── MotionController (exécution mouvement)
|
||||
├── PathFollower (suivi de chemin)
|
||||
└── NavigationGraph (pathfinding A*)
|
||||
```
|
||||
|
||||
## Exemple Rapide
|
||||
|
||||
```java
|
||||
// Enregistrer un événement lié aux NPCs
|
||||
getEventRegistry().register(NPCSpawnEvent.class, event -> {
|
||||
NPCEntity npc = event.getNPC();
|
||||
|
||||
// Accéder au blackboard pour l'état
|
||||
Blackboard blackboard = npc.getBlackboard();
|
||||
|
||||
// Obtenir le rôle actuel
|
||||
Role role = npc.getRole();
|
||||
|
||||
// Vérifier si le NPC a une cible
|
||||
if (blackboard.hasTarget()) {
|
||||
Entity target = blackboard.getTarget();
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
## Classes Principales
|
||||
|
||||
| Classe | Description |
|
||||
|--------|-------------|
|
||||
| `NPCEntity` | Classe de base pour tous les NPCs |
|
||||
| `NPCPlugin` | Point d'entrée plugin pour le système NPC |
|
||||
| `Blackboard` | Conteneur d'état partagé pour les données NPC |
|
||||
| `Role` | Définit le template de comportement NPC |
|
||||
| `DecisionMaker` | Logique de décision IA |
|
||||
| `MotionController` | Exécution des mouvements |
|
||||
| `PathFollower` | Suivi et parcours de chemin |
|
||||
|
||||
## Sous-packages
|
||||
|
||||
| Package | Fichiers | Description |
|
||||
|---------|----------|-------------|
|
||||
| `corecomponents/` | 327 | Composants ECS de base pour NPCs |
|
||||
| `asset/` | 152 | Configuration des assets NPC |
|
||||
| `util/` | 50 | Classes utilitaires |
|
||||
| `blackboard/` | 30 | Gestion d'état |
|
||||
| `movement/` | 27 | Comportements de mouvement |
|
||||
| `systems/` | 25 | Systèmes ECS |
|
||||
| `commands/` | 23 | Commandes admin |
|
||||
| `decisionmaker/` | 22 | Logique de décision IA |
|
||||
| `sensorinfo/` | 20 | Système de perception |
|
||||
| `role/` | 17 | Définitions de rôles |
|
||||
| `instructions/` | 14 | Comportements haut niveau |
|
||||
| `navigation/` | 12 | Pathfinding |
|
||||
Reference in New Issue
Block a user