[Support]Escalier en Stone

arkos59

Aventurier
14 Avril 2011
12
0
0
Bonjour à tous !

Avant tout, merci beaucoup pour ce tuto !

J'ai un petit soucis sur la création d'un bloc d'escalier en stone...
voici mon code :

Code:
package net.minecraft.src;

public class mod_barriere extends BaseMod
{
    public mod_barriere()
    {
        ModLoader.RegisterBlock(Cfence);
        ModLoader.RegisterBlock(SStairs);
        ModLoader.AddName(Cfence, "Cobblestone Fence");
        ModLoader.AddName(SStairs, "Stone Stairs");
        ModLoader.AddRecipe(new ItemStack(Cfence, 4), new Object[] 
        {"###", "###", Character.valueOf('#'), Block.cobblestone});
        ModLoader.AddRecipe(new ItemStack(SStairs, 4), new Object[] 
        {"#", "##", "###", Character.valueOf('#'), Block.stone});
    }
    
    public static final Block Cfence = (new BlockFence(185,16)).setHardness(2.0F).setResistance(10F).setBlockName("Cobblestone's Fence").setStepSound(Block.soundStoneFootstep);
    public static final Block SStairs = (new BlockStairs(186,Block.stone)).setHardness(2.0F).setResistance(10F).setBlockName("Stone Stairs").setStepSound(Block.soundStoneFootstep);
    public String Version()
    {
        return "1.0";
    }
}

J'ai don créé un bloc de barrière en cobblestone, celui ci marche sans soucis.

Mais lorsque je me suis attaqué à l'escalier en stone, j'ai rencontré un léger problème.

cette ligne ci :
Code:
public static final Block SStairs = (new BlockStairs(186,Block.stone)).setHardness(2.0F).setResistance(10F).setBlockName("Stone Stairs").setStepSound(Block.soundStoneFootstep);
me demande en 2éme paramètre une variable (objet?) de type Block.
j'ai donc testé de mettre Block.stone pour créer un escalier de stone.
Le compilateur ne renvoie pas d'erreur mais le jeu crash au lancement me donnant cette erreur :

Java: 1.6.0_26, Sun Microsystems Inc.
VM: Java HotSpot™ Client VM (mixed mode), Sun Microsystems Inc.
LWJGL: 2.4.2
OpenGL: GeForce 6600 GT/PCI/SSE2/3DNOW! version 2.1.2, NVIDIA Corporation

java.lang.StringIndexOutOfBoundsException: String index out of range: 6
at java.lang.String.charAt(String.java:686)
at net.minecraft.src.CraftingManager.addRecipe(CraftingManager.java:261)
at net.minecraft.src.ModLoader.AddRecipe(ModLoader.java:330)
at net.minecraft.src.mod_barriere.<init>(mod_barriere.java:13)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at net.minecraft.src.ModLoader.addMod(ModLoader.java:224)
at net.minecraft.src.ModLoader.readFromClassPath(ModLoader.java:1022)
at net.minecraft.src.ModLoader.init(ModLoader.java:687)
at net.minecraft.src.ModLoader.AddAllRenderers(ModLoader.java:121)
at net.minecraft.src.RenderManager.<init>(RenderManager.java:65)
at net.minecraft.src.RenderManager.<clinit>(RenderManager.java:158)
at net.minecraft.client.Minecraft.startGame(Minecraft.java:138)
at net.minecraft.client.Minecraft.run(Minecraft.java:435)
at java.lang.Thread.run(Thread.java:662)
--- END ERROR REPORT 3165e220 ----------


Je ne comprend pas d'ou viens l'erreur...

Merci d'avance !

Cordialement, Arkos59.
 

arkos59

Aventurier
14 Avril 2011
12
0
0
Bonsoir !

Merci pour ta réponse !
Le jeu ne crash plus au démarrage (un espace = emplacemet vide dans le craft c'est cela ?)

Tout marche parfaitement, à part un pb d'affichage.. "l'interieur" de l'escalier est noir...


Petit screenshot pour montrer le pb :


à droite les escaliers "de base", à gauche, les escaliers du mod.
 

arkos59

Aventurier
14 Avril 2011
12
0
0
Bonjour !

J'ai résolu mon petit pb en mettant
setLightOpacity(0);
à la place de
setLightOpacity(255);

Si ça peut dépanner quelqun au passage =)
 

arkos59

Aventurier
14 Avril 2011
12
0
0
je n'ai pas de lien de téléchargement a fournir. ces mods ne sont que de petits tests.
Mais je me pose une question.
Pour régler le bug d'affichage, j'ai du toucher au code source du jeu.
Le mod ne peut donc pas être compatible avec d'autres ou même ne fonctionnerais-il pas du tout ?
Je me suis dit que la solution serais de recréer une class "copie" des escaliers et de modifier juste ce dont j'ai besoin.
ainsi, je n'altérerais pas le code source de base...

Bonne ou mauvaise solution ?
 

TheBenshab

Aventurier
8 Juillet 2011
64
1
3
28
Salut ! J'ai vrément besoin urgement d'escalier en stone pour un construction ! Tu pourrait me donner ton mod stp ? (pour la version 1.7.3 biensur) Merci :)
 

jimeowan

Aventurier
5 Juillet 2011
37
0
1
arkos59 a dit:
je n'ai pas de lien de téléchargement a fournir. ces mods ne sont que de petits tests.
Mais je me pose une question.
Pour régler le bug d'affichage, j'ai du toucher au code source du jeu.
Le mod ne peut donc pas être compatible avec d'autres ou même ne fonctionnerais-il pas du tout ?
Je me suis dit que la solution serais de recréer une class "copie" des escaliers et de modifier juste ce dont j'ai besoin.
ainsi, je n'altérerais pas le code source de base...

Bonne ou mauvaise solution ?

Qu'est-ce que tu as modifié dans la classe d'origine ? D'après ce que j'ai lu t'en a pas eu besoin si ?

Si c'était pour le "setLightOpacity(255);", tu peux très bien caser cet appel dans la définition de SStairs :

Code:
public static final Block SStairs = (new BlockStairs(186,Block.stone)).setHardness(2.0F).setResistance(10F).setBlockName("Stone Stairs").setStepSound(Block.soundStoneFootstep).setLightOpacity(255);