Files
Documentation/content/reference/buildertools/tool-operations.fr.md
2026-01-20 20:33:59 +01:00

4.0 KiB

title, type, weight
title type weight
Operations Outil docs 4

Les operations d'outil gerent les mecaniques d'edition de blocs reelles lors de l'utilisation des outils de construction.

Package: com.hypixel.hytale.builtin.buildertools.tooloperations

Architecture

Operations Outil
├── Base
│   └── ToolOperation - Classe de base operation
├── Operations
│   ├── PaintOperation - Peinture de blocs
│   └── EditOperation - Suivi d'edition
├── Materiaux
│   └── Material - Wrapper materiau bloc
└── Utilitaires
    └── CopyCutSettings - Configuration copier/couper

ToolOperation

Classe de base pour toutes les operations d'outil:

public class ToolOperation {
    // Operation de base qui modifie les blocs
    // Suivie pour annuler/refaire
}

PaintOperation

Gere la peinture de blocs avec outils brosse:

public class PaintOperation extends ToolOperation {
    // Applique blocs dans forme brosse
    // Supporte patterns et masques
}

Utilisation

Quand un joueur utilise un outil brosse:

  1. PaintOperation est creee
  2. La forme est calculee selon parametres outil
  3. Les blocs sont modifies selon pattern
  4. L'operation est ajoutee a l'historique

EditOperation

Suit les changements pour annuler/refaire:

public class EditOperation {
    // Enregistre changements de blocs
    // Permet l'inversion
}

Systeme de Materiaux

Material

Wrapper pour materiaux de blocs:

public class Material {
    // Reference type de bloc
    // Proprietes additionnelles (rotation, teinte)
}

Patterns de Blocs

Les patterns definissent comment les blocs sont selectionnes:

Pattern Description
[Stone] Type de bloc unique
[50%Stone, 50%Dirt] Aleatoire pondere
[Stone, Dirt, Grass] Poids egaux

Masques de Blocs

Les masques filtrent quels blocs sont affectes:

Masque Description
[Stone] Affecter uniquement pierre
[!Air] Affecter blocs non-air
[!^Fluid] Exclure blocs tagues fluide

Parametres Copier/Couper

CopyCutSettings

Configuration pour operations copier et couper:

public class CopyCutSettings {
    // Flag inclure entites
    // Flag inclure donnees biome
    // Niveau compression
}

Arguments Outil

Les outils de construction supportent des arguments configurables:

Types d'Arguments

Type Classe Description
Block BlockArg Selection type bloc
Bool BoolArg Flag booleen
Int IntArg Valeur entiere
Float FloatArg Valeur decimale
Mask MaskArg Masque de blocs
String StringArg Valeur texte
BrushShape BrushShapeArg Sphere, Cube, etc.
BrushOrigin BrushOriginArg Center, Surface, etc.

Paquets Arguments Outil

Les arguments se synchronisent via paquets reseau:

// Paquet BuilderToolArgUpdate
// Synchronise changements arguments vers serveur

Configuration Brosse

Forme Brosse

public enum BrushShape {
    Sphere,
    Cube,
    Cylinder,
    // ...
}

Origine Brosse

public enum BrushOrigin {
    Center,      // Brosse centree sur clic
    Surface,     // Brosse sur surface
    Offset       // Decalage personnalise
}

Axe Brosse

public enum BrushAxis {
    Y,           // Toujours vertical
    View,        // Suivre direction vue
    Surface      // Normal a la surface
}

Utilisation de l'API

Acceder aux Parametres Outil

BuilderToolsPlugin tools = BuilderToolsPlugin.get();
BuilderToolsUserData userData = tools.getUserData(player);

Obtenir Outil Actuel

BuilderTool currentTool = userData.getCurrentTool();
BuilderToolData toolData = currentTool.getData();

Etat Outil

BuilderToolState

Suit l'etat actuel de l'outil:

// Paquet BuilderToolState
// Synchronise etat outil vers client

Donnees Brosse

// Paquet BuilderToolBrushData
// Contient taille brosse, forme, pattern