Modding FR

nostre

Aventurier
13 Novembre 2010
424
5
0
30
subject_mods_32.png

Minecraft est un jeu en plein développement,aussi bien du coté de chez Mojang que de celui de la communauté, qui ne cesse de développer toujours plus de mods et de extures packs.

Cependant, pour toute personne voulant tenter le modding de Minecraft,il faudra passer par les tutoriaux du forum officiel,où le français n'est pas vraiment courant.
De plus,si la personne en question ne connait pas un minimum certaines bases de code,sa devient vite un enfer de se lancer dans le domaines...

C'est pourquoi,devant l'absence total de tutoriel français sur le sujet,et afin d'encourager de nouveaux modder français,j'ai décidé de créer le 1er Tutoriel de Modding Minecraft FR.

Le but n'est pas seulement de créer un tutoriel en français,j'esseye de faire en sorte qu'il sois le plus accessible possible pour toutes personnes, compréhensible même pour des non initiés a toutes formes de codes (ou presque).

tutorial.gif


changelog.png
ChangeLog:
changelog.png

*27-02-11: Mise a jour des tutos I et III pour MCP 29a et ModLoader Beta 1.3_01v4.
*27-02-11: Correction d'une erreur dans le tuto II,merci a Woreck de me l'avoir fait remarquer !
*11-04-11: Mise a jour complète pour Minecraft Beta 1.4_01,MCP211 et ModLoader B1.4_01 v1.
*27-04-2011: Mise a jour pour Minecraft B1.5_01,MCP v2.12 et ModLoader v3 B1.5_01.
*30-04-2011: Correction d'une erreur avec les recettes,et mise a disposition des fichiers mod_MyMod.java et BlockMyBloc.java.
exclamation.gif
*29-05-11: Mise a jour pour Minecraft B1.6.5,MCP v3.3 et ModLoader v1 B1.6.5.


! Les liens suivants sont morts !

tuto.png

green-download-arrow-grey-line.png
Tutorial Modding FR - Téléchargement:
green-download-arrow-grey-line.png

asus_download_arrow004.gif
Tuto I - Téléchargement et installation
asus_download_arrow004.gif
Tuto II - Création d'un mod simple,ajout de nouveaux blocs
asus_download_arrow004.gif
Tuto III - Compilation et tests
asus_download_arrow004.gif
Tuto IV - Quelques petits trucs a savoir avant de continuer
asus_download_arrow004.gif
Tuto - Création de nouveaux objets
asus_download_arrow004.gif
Tuto - Ajouter des blocs et objets pour le four
asus_download_arrow004.gif
Tuto - Blocs – Autres possibilités
asus_download_arrow004.gif
Tuto - Autres possibilités - objets
asus_download_arrow004.gif
Sources du mod du Tuto II

Nouveaux fichiers ajoutés suite aux liens morts à la fin du message.
Il manque juste les "Sources du mod du Tuto II".
Je précise que ce sont les fichiers d'origine, le code est parfois obsolète !
 

Fichiers joints

Ce n'est pas l'effet que tu souhaite ?

A chaque coup donner tu veut qu'un objet tombe ?

Tu peut certainement vérifier sa en fesant une vérification par hit sur un objet ... en disant qu'a chaque fois que l'objet perd de sa "vie" alors tu fais une action !

Enfin bref moi je n'est pas trop le niveau encore pour t'aider au mieux ...

Peut tu me montrer un exemple de comment créer ton propre bloc ? car moi sa ne passe pas :s et si tu as comment modifier son skin via un fichier externe.
 
ya tout dans les tuto du début

et je souhaite que comme les bloc de minerais de redstone sa fasse une sorte de poussière lorsqu'on tape dessus
 
Je viens de relire les tutos au complet ( bien que cela ne soit pas forcement nécessaire ... )

J'ai donc compris d'ou venait mon erreur, elle était lié à l'id que je donnais à mon block ... je voulais suivre le context générale avec des id en 90*.

Maintenant je cherche toujours comment donnée un nom à mon block et lui aplliquer une texture éxtérieur au terrain.png

Si quelqu'un pourrait m'éclairer dessus sa ?

@val166 tien en fouillant un peu j'ai trouver sa :

public void onBlockClicked(World world, int i, int j, int k, EntityPlayer entityplayer)
{
}

tu peut peut être en tirer quelque chose pour ton idée ?

Pour le nom j'ai trouver ! Mais les textures :s j'ai toujours du mal ... un petit coup de pouce me serait d'une grande aide, ne serait-ce que le nom du fichier contenant la méthode ...

Je recherche dans la class Block, là ou j'ai d'ailleurs trouver la méthode setBlockName, mais rien pour appliquer une texture ( unique comme pour un item en 16*16 pas de gestion de sprite, si c'est vraiment nécessaire je prend ... )
 
shadyre, tout est écrit dans le tuto...
Pour la texture, tu créer un nouveau petit dessin avec ton objet dessiné dessus et après tu regarde dans le tuto qui s'appel "Autres possibilités" et tu regarde le deuxième encadré.
Voila ^^
 
Hum ryffe, si je demande c'est que j'ai tout lu ... oui dans autre possibilité il y a sa :

.setIconIndex(ModLoader.addOverride("/gui/items.png", "/Nether/shovel.png"))

Je n'est aucun souci pour l'appliquer sur les ITEM mais je n'y arrive pas sur un BLOCK ... si je demande ce n'est pas pour rien, et comme tu pourra le constaté sur mes posts je ne suis pas du genre à attendre l'aide des gens j'éssai de me débrouiller seul, et la plupart de mes souci je les ai régler moi même, mais là je n'arrive pas à appliquer une texture pour mon block ...
 
T'inquiète pas ^^ J'avais pas compris que tu demandais pour un "Block" et pas pour un "Item"...
Moi aussi j'ai le même problème donc je UP pour "shadyre" ^^
 
J'ai aussi vue sa : dans la class ModLoader

public static void addOverride(String s, String s1, int i)
{
int j = -1;
int k = 0;
if(s.equals("/terrain.png"))
{
j = 0;
k = terrainSpritesLeft;
} else
if(s.equals("/gui/items.png"))
{
j = 1;
k = itemSpritesLeft;
} else
{
return;
}
System.out.println((new StringBuilder("Overriding ")).append(s).append(" with ").append(s1).append(" @ ").append(i).append(". ").append(k).append(" left.").toString());
logger.finer((new StringBuilder("addOverride(")).append(s).append(",").append(s1).append(",").append(i).append("). ").append(k).append(" left.").toString());
Object obj = (Map)overrides.get(Integer.valueOf(j));
if(obj == null)
{
obj = new HashMap();
overrides.put(Integer.valueOf(j), obj);
}
((Map) (obj)).put(s1, Integer.valueOf(i));
}

Le problème n'est toujours pas la, mais de là :

setIconIndex ... il me retourne une erreur lors de la compilation.

public static final Block netherBrick = (new Nether_NetherBrick(99, 224)).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundStoneFootstep).setBlockName("Nether Brick").setIconIndex(ModLoader.addOverride("/terrain.png", "/Nether/brick.png"));

Cannot find symbol method setIconIndex(int)
net.mincraft.src.Block

...



Il doit surrement y avoir une autre méthod tel que setIconIndex mais pour le block ... je n'en suis pas sur, mais il me semble avoir aperçu à un moment donnée une méthod qui gère les "sprites", sans doute lié aux block, problème je ne sais plus ou j'ai vue sa, et je ne trouve aucun mod sur lequel me référer :s

AHAHAHAHAHAHAH ENFIN !!!!

J'aurais tester sa plus tôt :)

voici la solution :

public static final Block netherBrick = (new Nether_NetherBrick(99,ModLoader.addOverride("/terrain.png", "/Nether/brick.png"))).setHardness(2.0F).setResistance(10F).setStepSound(Block.soundStoneFootstep).setBlockName("Nether Brick");

Il faut placer le override à l'emplacement de l'id pour l'icon du sprite terrain.png !!!
 
Bon bah la pour les outils je sèche complètement j'ai eu beau me débrouiller jusque là en fouinant un peu mais la j'ai vraiment du mal.

Comment la class ItemTool s'utilise ?

Comment définir qu'un item est une pioche par exemple ? ( doit ont forcement urilise ItemTool ou dans le cas de la pioche peut-ont utiliser directement la class ItemPickaxe ? si oui comment ... )

Et comment faire qu'une épée en soit une :s ?
 
Salut,

Pour ton problème avec la pioche je savais le faire en 1.3 je peux te donner cette solution je pense que sa doit s'approcher de la vérité...
Dans ton fichier Item de ta pioche tu commence par (exemple avec un fichier ItemNewPickaxe) :

Code:
public class ItemNewPickaxe extends ItemTool
et ensuite

Code:
protected ItemNewPickaxe(int i, EnumToolMaterial enumtoolmaterial)
    {
        super(i, 2, enumtoolmaterial, blocksEffectiveAgainst);
        maxDamage = 9000;
        maxStackSize = 5;
    }
 public boolean canHarvestBlock(Block block)
    {
        if(block == Block.obsidian)
        {
            return toolMaterial.getHarvestLevel() == 1;
        }
        if(block == Block.blockDiamond || block == Block.oreDiamond)
        {
            return toolMaterial.getHarvestLevel() >= 1;
        }
        if(block == Block.blockGold || block == Block.oreGold)
        {
            return toolMaterial.getHarvestLevel() >= 1;
        }
        if(block == Block.blockSteel || block == Block.oreIron)
        {
            return toolMaterial.getHarvestLevel() >= 1;
        }
        if(block == Block.blockLapis || block == Block.oreLapis)
        {
            return toolMaterial.getHarvestLevel() >= 0;
        }
        if(block == Block.oreRedstone || block == Block.oreRedstoneGlowing)
        {
            return toolMaterial.getHarvestLevel() >= 0;
        }
        if(block.blockMaterial == Material.rock)
        {
            return true;
        }
        return block.blockMaterial == Material.iron;
    }

    private static Block blocksEffectiveAgainst[];

    static
    {
        blocksEffectiveAgainst = (new Block[] {
            Block.cobblestone, Block.stairDouble, Block.stairSingle, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockSteel, Block.oreCoal, Block.blockGold,
            Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.bloodStone, Block.oreLapis, Block.blockLapis,
            Block.blockSnow, Block.blockClay, Block.planks, Block.bookShelf, Block.wood, Block.crate
        });
    }
}
la je te renvoi au code source de la pioche pour voir comment modifier se que tu veux

J’espère que sa répond a ta question