• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Créer Un Multi Tool

Tutoriels des membres
1.11.x
1
1
1.5k
Charger plus de messages
  • Du plus ancien au plus récent
  • Du plus récent au plus ancien
  • Les plus votés
Répondre
  • Répondre à l'aide d'un nouveau sujet
Se connecter pour répondre
Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
  • Z
    ZomDev Moddeurs confirmés dernière édition par robin4002 29 nov. 2021, 01:55 29 mai 2017, 16:02

    Ce tutoriel est également disponible en vidéo.

    Sommaire

    • Introduction
    • Pré-requis
    • Code
      • Création de l’outil
      • Propriétés de l’outil
    • Bonus
    • Résultat
    • En vidéo
    • Crédits

    Introduction

    Bonjour à tous !
    Ce tutoriel va vous montrer comment créer un multi-tool
    En gros un outil qui fais à la fois pioche, épée et hache

    Pré-requis

    • Créer un kit d’outils

    Code

    Création de l’outil:

    Tout d’abord, créez une classe qui servira pour votre outil.

    public class MultiTool {
    }

    Vous ferez hériter votre classe de ItemTool et mettrez le constructeur

    public class MultiTool extends ItemTool {
    public MultiTool(ToolMaterial material, Set<Block> effectives){
    super(material, effectives);
    }
    }

    Le premier paramètre est un ToolMaterial qui servira comme pour un outil, puis vous aurez un Set a créer qui dira à Minecraft quels blocks l’outil peut casser.

    private static Set <block> effectives = Sets.newHashSet(blocs que vous souhaitez);
    

    Propriétés de l’outil

    Par exemple dans mon cas je veux que l’outil puisse casser à peu près tout les blocks.Nous allons déjà créer une fonction pour dire à Minecraft que l’outil est une pioche, une hache et une pelle.

    @Override
    public Set<String> getToolClasses(ItemStack stack) { return ImmutableSet.of("pickaxe", "spade", "axe");}]

    Nous allons ensuite définir les matériaux de bloc qui pourront être cassés.

    @Override
    public boolean canHarvestBlock(IBlockState state) {
    return (state.getMaterial() == Material.WOOD || state.getMaterial() == Material.IRON || state.getMaterial() == Material.ROCK || state.getMaterial() == Material.ANVIL) ? true : false;
    }

    Dans ce cas, tous les blocs avec le matériau WOOD, IRON, ROCK et ANVIL seront cassables.

    (Cette méthode sert si vous voulez vraiment “tous les blocks” de ces types, si c’est juste un outil pour certains blocs autant utiliser le Set<block>)

    Pour finir, vous devrez définir la force de “cassage” des blocs.

    @Override
    public float getStrVsBlock(ItemStack stack, IBlockState state) {
    if(this.canHarvestBlock(state)) {
    return this.efficiencyOnProperMaterial;
    }
    return 1F;
    }

    Ici j’ai fais en sorte que si la méthode canHarvestBlock vaut true alors on renvoie la valeur du ToolMaterial sinon la valeur vaut 1.

    Bonus

    Comme pour un outil normal vous pouvez rajouter la méthode getIsRepairable pour définir un Item pour réparer dans l’enclume ou pour que l’outil ne soit pas repairable.

    @Override
    public boolean getIsRepairable(ItemStack toRepair, ItemStack repair) {
    return repair.getItem() == Items.DIAMOND;
    }

    Résultat

    Voir la vidéo

    En vidéo

    https://www.youtube.com/watch?v=xUk2nEGV_8c

    Crédits

    Rédaction :

    • ZomDev

    Correction :


    Ce tutoriel de ZomDev publié sur Minecraft Forge France est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International

    Retour vers le sommaire des tutoriels

    Youtuber pendant mes heures libres sur le modding
    Aime les pâtes et le code en Java.

    1 réponse Dernière réponse Répondre Citer 0
    • 1 / 1
    1 sur 1
    • Premier message
      1/1
      Dernier message
    Design by Woryk
    Contact / Mentions Légales

    MINECRAFT FORGE FRANCE © 2018

    Powered by NodeBB