Init
This commit is contained in:
205
content/reference/buildertools/tool-operations.fr.md
Normal file
205
content/reference/buildertools/tool-operations.fr.md
Normal file
@@ -0,0 +1,205 @@
|
||||
---
|
||||
title: Operations Outil
|
||||
type: docs
|
||||
weight: 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:
|
||||
|
||||
```java
|
||||
public class ToolOperation {
|
||||
// Operation de base qui modifie les blocs
|
||||
// Suivie pour annuler/refaire
|
||||
}
|
||||
```
|
||||
|
||||
## PaintOperation
|
||||
|
||||
Gere la peinture de blocs avec outils brosse:
|
||||
|
||||
```java
|
||||
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:
|
||||
|
||||
```java
|
||||
public class EditOperation {
|
||||
// Enregistre changements de blocs
|
||||
// Permet l'inversion
|
||||
}
|
||||
```
|
||||
|
||||
## Systeme de Materiaux
|
||||
|
||||
### Material
|
||||
|
||||
Wrapper pour materiaux de blocs:
|
||||
|
||||
```java
|
||||
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:
|
||||
|
||||
```java
|
||||
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:
|
||||
|
||||
```java
|
||||
// Paquet BuilderToolArgUpdate
|
||||
// Synchronise changements arguments vers serveur
|
||||
```
|
||||
|
||||
## Configuration Brosse
|
||||
|
||||
### Forme Brosse
|
||||
|
||||
```java
|
||||
public enum BrushShape {
|
||||
Sphere,
|
||||
Cube,
|
||||
Cylinder,
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
### Origine Brosse
|
||||
|
||||
```java
|
||||
public enum BrushOrigin {
|
||||
Center, // Brosse centree sur clic
|
||||
Surface, // Brosse sur surface
|
||||
Offset // Decalage personnalise
|
||||
}
|
||||
```
|
||||
|
||||
### Axe Brosse
|
||||
|
||||
```java
|
||||
public enum BrushAxis {
|
||||
Y, // Toujours vertical
|
||||
View, // Suivre direction vue
|
||||
Surface // Normal a la surface
|
||||
}
|
||||
```
|
||||
|
||||
## Utilisation de l'API
|
||||
|
||||
### Acceder aux Parametres Outil
|
||||
|
||||
```java
|
||||
BuilderToolsPlugin tools = BuilderToolsPlugin.get();
|
||||
BuilderToolsUserData userData = tools.getUserData(player);
|
||||
```
|
||||
|
||||
### Obtenir Outil Actuel
|
||||
|
||||
```java
|
||||
BuilderTool currentTool = userData.getCurrentTool();
|
||||
BuilderToolData toolData = currentTool.getData();
|
||||
```
|
||||
|
||||
## Etat Outil
|
||||
|
||||
### BuilderToolState
|
||||
|
||||
Suit l'etat actuel de l'outil:
|
||||
|
||||
```java
|
||||
// Paquet BuilderToolState
|
||||
// Synchronise etat outil vers client
|
||||
```
|
||||
|
||||
### Donnees Brosse
|
||||
|
||||
```java
|
||||
// Paquet BuilderToolBrushData
|
||||
// Contient taille brosse, forme, pattern
|
||||
```
|
||||
Reference in New Issue
Block a user