4.0 KiB
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:
- PaintOperation est creee
- La forme est calculee selon parametres outil
- Les blocs sont modifies selon pattern
- 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