3.2 KiB
3.2 KiB
title, type, weight
| title | type | weight |
|---|---|---|
| Assets | docs | 2 |
Les assets dans Hytale représentent le contenu du jeu comme les items, blocs et autres ressources. Comprendre comment travailler avec les assets est essentiel pour créer des expériences de plugin riches.
Packages:
com.hypixel.hytale.server.core.asset.type.item.config(Item)com.hypixel.hytale.server.core.asset.type.blocktype.config(BlockType)com.hypixel.hytale.server.core.inventory(ItemStack)
Types d'Assets
Hytale fournit plusieurs types d'assets :
| Type d'Asset | Description |
|---|---|
Item |
Représente un item qui peut être tenu ou stocké |
BlockType |
Définit un type de bloc dans le monde |
EntityType |
Définit un type d'entité |
Travailler avec les Items
Obtenir un Item
import com.hypixel.hytale.server.core.asset.type.item.config.Item;
// Obtenir un item par identifiant
Item sword = Item.getAssetMap().getAsset("hytale:iron_sword");
// Vérifier si l'item existe
if (sword != null) {
// Utiliser l'item
}
Créer des ItemStacks
import com.hypixel.hytale.server.core.inventory.ItemStack;
// Créer un ItemStack avec une quantité
ItemStack stack = new ItemStack("hytale:iron_sword", 5);
// Ou juste avec l'ID de l'item (quantité par défaut à 1)
ItemStack singleItem = new ItemStack("hytale:iron_sword");
// Accéder aux propriétés
String itemId = stack.getItemId();
int quantity = stack.getQuantity();
Travailler avec les Blocs
Obtenir un BlockType
import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
BlockType stone = BlockType.getAssetMap().getAsset("hytale:stone");
Bloc dans le Monde
// Obtenir le bloc à une position
World world = player.getWorld();
BlockType blockType = world.getBlockType(x, y, z);
// Définir le bloc à une position
world.setBlock(x, y, z, "hytale:stone");
Registre d'Assets
Enregistrez des assets personnalisés via votre plugin :
@Override
public void start() {
// Enregistrer des assets personnalisés
getAssetRegistry().register(myCustomAsset);
}
Identifiants d'Assets
Les assets sont identifiés par des identifiants avec namespace :
namespace:chemin
Exemples:
- hytale:stone
- myplugin:custom_sword
- myplugin:blocks/special_block
Le namespace de votre plugin est généralement dérivé du groupe et du nom de votre manifest.
Packs d'Assets
Les plugins peuvent inclure des packs d'assets embarqués. Définissez includesAssetPack: true dans votre manifest :
{
"name": "MyPlugin",
"version": "1.0.0",
"group": "com.example",
"main": "com.example.myplugin.MyPlugin",
"includesAssetPack": true
}
Les fichiers du pack d'assets doivent être structurés dans votre JAR :
assets/
└── myplugin/
├── items/
│ └── custom_sword.json
└── blocks/
└── custom_block.json
Bonnes Pratiques
{{< callout type="tip" >}}
- Mettez en cache les références d'assets quand c'est possible pour éviter les recherches répétées
- Vérifiez toujours les null lors de la récupération d'assets par identifiant
- Utilisez des identifiants avec namespace significatifs pour vos assets personnalisés {{< /callout >}}