Files
Documentation/content/core-concepts/assets.fr.md
2026-01-20 20:33:59 +01:00

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 >}}