[aide ] pour codage d'un bloc transmetteur de courant svp :)

  • Auteur de la discussion Auteur de la discussion oma
  • Date de début Date de début

oma

La Lumière
22 Février 2011
231
28
134
Bonjour ami minecraftien(ne),

je me tourne vers vous a la recherche d'un peu d'aide ><
en effet je me suis mis il y a quelques semaines a apprendre le java, afin de pouvoir developper
certains petits mod / plugins qui me plairais !

donc mon mod s'appel mod_projet_lumiere ..
( je ne fais pas sa promo hein, je vous explique juste pour que vous ayez envie de m'aider ^^ )

son but sera simple,

- ajouter divers lampes, lampadaire, applique murale, applique plafonnier, neon , neon d'angle enfin tout ce qu'il faut pour bien éclairer !
- les objet peuvent bien sur tous se crafter .
- des items sont ajouté afin de rendre le craft interessant .. mais bref ce n'est pas le sujet .
juste en gros....
j'y suis presque !

il y a juste une fonction sur mon bloc neon que je n'arrive pas a regler ....
c'est la transmission de courant ...

je voudrais que les neon se passe le courrant , afin que quand on active un neon ( via redstone ) il transmette ce courant a son voisin du dessous et dessus ...

j'ai eu beau chercher dans les *class qui etaient suceptible de contenir ce code j'ai helas rien trouvé ..
ou alors ca dépasse mes maigres competences ....

voici le code de mon .class mod_projet_lumiere
Code:
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) braces deadcode fieldsfirst

package net.minecraft.src;
 
// Referenced classes of package net.minecraft.src:
//            BaseMod, ModLoader, ItemStack, Item,
//            Block, BlockTectonite, BlockNeonite

public class mod_projet_lumiere extends BaseMod
{

    private static final int textotext;
    public static final Block tectonite;
    private static final int neon;
    public static final Block neonite;
    private static final int neon2;
    public static final Block neoniteoff;

    public mod_projet_lumiere()
    {
        ModLoader.RegisterBlock(tectonite);
        ModLoader.AddName(tectonite, "tecto");
        ModLoader.AddRecipe(new ItemStack(tectonite, 1), new Object[] {
            "&&&", "& &", "&&&", Character.valueOf('&'), Item.redstone
        });
        ModLoader.RegisterBlock(neonite);
        ModLoader.AddName(neonite, "neon");
        ModLoader.AddRecipe(new ItemStack(neonite, 1), new Object[] {
            "&&&", "&I&", " & ", Character.valueOf('&'), Block.glass, Character.valueOf('I'), Block.torchWood
        });
        ModLoader.RegisterBlock(neoniteoff);
        ModLoader.AddName(neoniteoff, "neon2");
        ModLoader.AddRecipe(new ItemStack(neoniteoff, 1), new Object[] {
            "&&&", "&I&", " & ", Character.valueOf('&'), Block.glass, Character.valueOf('I'), Item.stick
        });
    }

    public String getVersion()
    {
        return "1.0.0";
    }

    public void load()
    {
    }

    static
    {
        textotext = ModLoader.addOverride("/terrain.png", "/modlumiere/textotext.png");
        tectonite = (new BlockTectonite(235, textotext)).setBlockName("tectonite").setResistance(10F).setHardness(2.3F).setStepSound(Block.soundMetalFootstep);
        neon = ModLoader.addOverride("/terrain.png", "/modlumiere/neon.png");
        neonite = (new BlockNeonite(236, neon)).setBlockName("tectonite").setResistance(10F).setHardness(2.3F).setStepSound(Block.soundMetalFootstep).setLightValue(1.0F);
        neon2 = ModLoader.addOverride("/terrain.png", "/modlumiere/neonoff.png");
        neoniteoff = (new BlockNeonite(237, neon2)).setBlockName("neoniteoff").setResistance(10F).setHardness(2.3F).setStepSound(Block.soundMetalFootstep);
    }
}
voici le code de mon bloc .class neon brut
Code:
package net.minecraft.src;

import java.util.Random;

// Referenced classes of package net.minecraft.src:
//            Block, Material, IBlockAccess, World,
//            mod_projet_lumiere

public class BlockNeonite extends Block
{
 
    public BlockNeonite(int i, int j)
    {
        super(i, j, Material.circuits);
    }

    public int idDopped(int i, Random random)
    {
        return blockID;
    }

    public int tickRate()
    {
        return 1;
    }

    public boolean isOpaqueCube()
    {
        return false;
    }

    public void onNeighborBlockChange(World world, int i, int j, int k, int l)
    {
        if(l > 0 && Block.blocksList[l].canProvidePower())
        {
            world.scheduleBlockUpdate(i, j, k, blockID, tickRate());
        }
    }

    public void updateTick(World world, int i, int j, int k, Random random)
    {
        if(world.isBlockIndirectlyGettingPowered(i, j, k) || world.isBlockIndirectlyGettingPowered(i, j, k))
        {
            world.setBlockWithNotify(i, j, k, mod_projet_lumiere.neonite.blockID);
        } else

        {
            world.setBlockWithNotify(i, j, k, mod_projet_lumiere.neoniteoff.blockID);
        }

    }
}
( ya juste un bloc qui s'active avec de la redstone et se change par un autre .. qui brille donc ... )

voici une tite video montrant le rendu ( meme si brut ... )

donc je rappel ce que je souhaite :)

- faire en sorte que une fois le bloc activé ils transmette le courant qu'il recoit a ses voisins directement collé ( haut, bas, gauche, droite, devant, derrière )

- faire en sorte que meme si le fil de restone lui passe a coté ca l'alimente quand même
( comme les pistons )
que le fil ne soit pas obligé d'aller droit dessus quoi :)

voila si l'ame d'un codeur experimenté passe par la je le remercie bien par avance si il eclaire ma lanterne !
( lanterne = projet lumiere ... ok je vais me coucher ! )

merci pour vos réponse si il y en as pp
 
Tu aurait du chercher dans la redstone!
Et, meme, tu prends le code de la redstone, et tu change la texture, la luminosité, et hop!