---
title: Systèmes de Gameplay
type: docs
weight: 3
---

Les Systèmes de Gameplay fournissent des mécaniques de quêtes, des systèmes de progression et des fonctionnalités de gameplay pour le mode aventure.

**Package:** `com.hypixel.hytale.builtin.adventure`

{{< cards >}}
  {{< card link="objectives" title="Objectifs" subtitle="Système de quêtes et buts" >}}
  {{< card link="farming" title="Agriculture" subtitle="Croissance des cultures et agriculture" >}}
  {{< card link="npc-objectives" title="Objectifs NPC" subtitle="Quêtes liées aux NPCs" >}}
  {{< card link="memories" title="Mémoires" subtitle="Suivi d'état persistant" >}}
  {{< card link="shop" title="Boutique" subtitle="Commerce et échanges" >}}
  {{< card link="camera-effects" title="Effets Caméra" subtitle="Contrôle caméra cinématique" >}}
  {{< card link="reputation" title="Réputation" subtitle="Système de standing de faction" >}}
{{< /cards >}}

## Vue d'Ensemble de l'Architecture

Le système Adventure est composé de plusieurs plugins :

```
Système Adventure
├── ObjectivePlugin (objectives/)
│   ├── Objective - Instance de quête avec TaskSets
│   ├── ObjectiveTask - Types de tâches individuelles
│   ├── ObjectiveCompletion - Gestionnaires de récompenses
│   └── ObjectiveHistoryComponent - Suivi de progression
├── FarmingPlugin (farming/)
│   ├── FarmingBlock/FarmingBlockState - État des cultures
│   ├── TilledSoilBlock - Mécaniques de terre labourée
│   ├── GrowthModifier - Engrais, eau, lumière
│   └── CoopBlock/CoopResidentComponent - Poulaillers
├── NPCObjectivesPlugin (npcobjectives/)
│   ├── KillTask/BountyTask - Objectifs de combat
│   ├── KillTrackerSystem - Compteur d'éliminations
│   └── Actions NPC (StartObjective, CompleteTask)
├── MemoriesPlugin (memories/)
│   ├── PlayerMemories - Composant mémoire joueur
│   ├── Memory/MemoryProvider - Types de mémoires
│   └── NPCMemory - Mémoires liées aux NPCs
├── ShopPlugin (shop/)
│   ├── ShopAsset - Définitions de boutiques
│   ├── BarterShopAsset - Boutiques de troc
│   └── ShopElement/GiveItemInteraction
├── CameraPlugin (camera/)
│   ├── CameraShake - Effets de tremblement
│   ├── ViewBobbing - Balancement de caméra
│   └── CameraEffectSystem
└── ReputationPlugin (reputation/)
    ├── ReputationGroup - Définitions de factions
    ├── ReputationRank - Niveaux de standing
    └── ReputationGroupComponent - Faction du NPC
```

## Sous-packages

| Package | Fichiers | Description |
|---------|----------|-------------|
| `objectives/` | 82 | Système de quêtes et objectifs |
| `farming/` | 24 | Mécaniques d'agriculture |
| `npcobjectives/` | 22 | Objectifs liés aux NPCs (tâches d'élimination) |
| `memories/` | 19 | Persistance d'état et collectibles |
| `shop/` | 16 | Système de commerce et troc |
| `camera/` | 13 | Effets caméra (tremblement, balancement) |
| `reputation/` | 12 | Système de réputation de faction |
| `objectivereputation/` | 4 | Récompenses de réputation pour objectifs |
| `npcreputation/` | 2 | Attitude NPC basée sur réputation |
| `shopreputation/` | 1 | Items de boutique conditionnés par réputation |

## Exemple Rapide

```java
// Démarrer un objectif pour un joueur
ObjectivePlugin objectives = ObjectivePlugin.get();
objectives.startObjective(player, "collect_wood");

// Changer la réputation avec une faction
ReputationPlugin rep = ReputationPlugin.get();
rep.changeReputation(player, "village_faction", 10, componentAccessor);

// Obtenir le rang de réputation
ReputationRank rank = rep.getReputationRank(store, playerRef, "village_faction");

// Vérifier si le joueur a une mémoire
MemoriesPlugin memories = MemoriesPlugin.get();
boolean hasMemory = memories.hasRecordedMemory(someMemory);
```

## Enregistrement des Plugins

Chaque sous-système adventure est un plugin séparé qui enregistre :
- **Composants** sur EntityStore ou ChunkStore
- **Interactions** pour les interactions bloc/entité
- **Assets** chargés depuis fichiers JSON/YAML
- **Systèmes** pour le traitement ECS
- **Commandes** pour l'administration
