MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Créer une TNT

    Planifier Épinglé Verrouillé Déplacé Résolu Anciennes versions
    1.6.4
    30 Messages 4 Publieurs 12.0k Vues 1 Watching
    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.
    • S Hors-ligne
      Sayac12
      dernière édition par

      Elle est en haut.

      Crée le mod TNT++ 1.6.4

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        Replace :

        this.blockRenderer.renderBlockAsItem(texture, 0, par1EntityTNTPrimed.getBrightness(par9));
        

        par

        this.blockRenderer.renderBlockAsItem(TaClassePrincipale.leBlocDeTNT, 0, par1EntityTNTPrimed.getBrightness(par9));
        

        Et tu peux supprimer la variable texture.

        1 réponse Dernière réponse Répondre Citer 0
        • S Hors-ligne
          Sayac12
          dernière édition par

          En fait c’était fait exprès pour que je puisse mettre le même render pour chaque type de mes futures TNT.
          Mais tu pense que c’est ça qui le fait crasher ?
          Sinon je sais pas si c’est à cause de ça mais j’ai pas encore mis la texture CompactTNT_down(flemme).

          Crée le mod TNT++ 1.6.4

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            Si, tu peux le faire, mais dans ce cas il faut initialisé la variable, car actuellement elle est null, d’où le NullPointerException.
            Donc dans ton proxy :
            RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedCustom.class, new RenderTNTPrimedCustom(TntMainClass.CompactTNT));
            Et dans ta classe RenderTNTPrimedCustom, ton constructeur devient :

            public RenderTNTPrimedCustom(Block block)
            {
            this.shadowSize = 0.5F;
            this.texture = block;
            }
            
            1 réponse Dernière réponse Répondre Citer 1
            • S Hors-ligne
              Sayac12
              dernière édition par

              Mais si je fais ça, comment je fais pour les textures des autres TNTs que je ferai ?


              Au cas-où, voilà les dernières versions des classes :
              Classe principale :

              package fr.kitek.tntplusplus;
              
              import net.minecraft.block.Block;
              import net.minecraft.creativetab.CreativeTabs;
              import fr.kitek.tntplusplus.proxy.TutoCommonProxy;
              import cpw.mods.fml.common.Mod;
              import cpw.mods.fml.common.Mod.EventHandler;
              import cpw.mods.fml.common.Mod.Instance;
              import cpw.mods.fml.common.SidedProxy;
              import cpw.mods.fml.common.event.FMLInitializationEvent;
              import cpw.mods.fml.common.event.FMLPostInitializationEvent;
              import cpw.mods.fml.common.event.FMLPreInitializationEvent;
              import cpw.mods.fml.common.network.NetworkMod;
              import cpw.mods.fml.common.registry.EntityRegistry;
              import cpw.mods.fml.common.registry.GameRegistry;
              
              @Mod(modid = "tntplusplus", name = "TNT++", version = "1.0.0", acceptedMinecraftVersions = "[1.6.4]")
              @NetworkMod(clientSideRequired = true, serverSideRequired = false)
              public class TntMainClass
              {
              @SidedProxy(clientSide = "fr.kitek.tntplusplus.proxy.TutoClientProxy", serverSide = "fr.kitek.tntplusplus.proxy.TutoCommonProxy")
              public static TutoCommonProxy proxy;
              
              @Instance("tntplusplus")
              public static TntMainClass instance;
              
              public static Block CompactTNT;
              public static CreativeTabs TNTab = new TNTab("TNTab");
              
              @EventHandler
              public void PreInit(FMLPreInitializationEvent event)
              {
              // Configuration
              
              // Blocks
              CompactTNT = new CompactTNT(1204).setHardness(1.0F).setResistance(5.0F).setStepSound(Block.soundStoneFootstep).setUnlocalizedName("compactTNT");
              
              // Items
              
              // Achievements
              }
              
              @EventHandler
              public void Init(FMLInitializationEvent event)
              {
              // Registry
              GameRegistry.registerBlock(CompactTNT, "CompactTNT");
              
              // Mobs
              EntityRegistry.registerModEntity(EntityTNTPrimedCustom.class, "tntprimedcustom", 201, this.instance, 256, 1, true);
              // Render
              proxy.registerRender();
              // NetWork
              
              // Recipe
              
              }
              
              @EventHandler
              public void PostInit(FMLPostInitializationEvent event)
              {
              // Intégration avec les autres mods
              
              }
              }
              

              Classe de la TNTBaseCustom :

              package fr.kitek.tntplusplus;
              
              import java.util.Random;
              
              import cpw.mods.fml.relauncher.Side;
              import cpw.mods.fml.relauncher.SideOnly;
              import net.minecraft.block.Block;
              import net.minecraft.block.BlockTNT;
              import net.minecraft.block.material.Material;
              import net.minecraft.client.renderer.texture.IconRegister;
              import net.minecraft.creativetab.CreativeTabs;
              import net.minecraft.entity.Entity;
              import net.minecraft.entity.EntityLivingBase;
              import net.minecraft.entity.player.EntityPlayer;
              import net.minecraft.entity.projectile.EntityArrow;
              import net.minecraft.item.Item;
              import net.minecraft.util.Icon;
              import net.minecraft.world.Explosion;
              import net.minecraft.world.World;
              
              public class TNTBaseCustom extends Block
              {
              protected Icon upside;
              protected Icon downside;
              protected float power;
              protected int delaytime;
              protected Block hy;
              
              public TNTBaseCustom(int id)
              {
              super(id, Material.tnt);
              // this.delaytime = 80;
              // this.power = 4.0F;
              }
              
              /* public TNTBaseCustom(int id, float p, int delay)
              {
              super(id, Material.tnt);
              this.delaytime = delay;
              this.power = p;
              }
              
              public TNTBaseCustom(int id, float p)
              {
              super(id, Material.tnt);
              this.power = p;
              this.delaytime = 80;
              }
              
              public TNTBaseCustom(int id, int delay)
              {
              super(id, Material.tnt);
              this.delaytime = delay;
              this.power = 4.0F;
              }
              */
              
              @SideOnly(Side.CLIENT)
              public Icon getIcon(int side, int metadata)
              {
              return side == 0 ? downside : side == 1 ? upside : blockIcon;
              }
              
              // Créer une entity extends enti…Tn.. et redéfinir la méthode explode ?
              public void onBlockAdded(World par1World, int par2, int par3, int par4)
              {
              super.onBlockAdded(par1World, par2, par3, par4);
              
              if(par1World.isBlockIndirectlyGettingPowered(par2, par3, par4))
              {
              this.onBlockDestroyedByPlayer(par1World, par2, par3, par4, 1);
              par1World.setBlockToAir(par2, par3, par4);
              }
              }
              
              /**
              * Lets the block know when one of its neighbor changes. Doesn't know which
              * neighbor changed (coordinates passed are their own) Args: x, y, z,
              * neighbour blockID
              */
              public void onNeighborBlockChange(World par1World, int par2, int par3, int par4, int par5)
              {
              if(par1World.isBlockIndirectlyGettingPowered(par2, par3, par4))
              {
              this.onBlockDestroyedByPlayer(par1World, par2, par3, par4, 1);
              par1World.setBlockToAir(par2, par3, par4);
              }
              }
              
              /**
              * Returns the quantity of items to drop on block destruction.
              */
              public int quantityDropped(Random par1Random)
              {
              return 1;
              }
              
              /**
              * Called upon the block being destroyed by an explosion
              */
              public void onBlockDestroyedByExplosion(World par1World, int par2, int par3, int par4, Explosion par5Explosion)
              {
              if(!par1World.isRemote)
              {
              EntityTNTPrimedCustom entitytntprimed = new EntityTNTPrimedCustom(par1World, (double)((float)par2 + 0.5F), (double)((float)par3 + 0.5F), (double)((float)par4 + 0.5F), par5Explosion.getExplosivePlacedBy(), power, delaytime, hy);
              entitytntprimed.fuse = par1World.rand.nextInt(entitytntprimed.fuse / 4) + entitytntprimed.fuse / 8;
              par1World.spawnEntityInWorld(entitytntprimed);
              }
              }
              
              /**
              * Called right before the block is destroyed by a player. Args: world, x,
              * y, z, metaData
              */
              public void onBlockDestroyedByPlayer(World par1World, int par2, int par3, int par4, int par5)
              {
              this.primeTnt(par1World, par2, par3, par4, par5, (EntityLivingBase)null);
              }
              
              /**
              * spawns the primed tnt and plays the fuse sound.
              */
              public void primeTnt(World par1World, int par2, int par3, int par4, int par5, EntityLivingBase par6EntityLivingBase)
              {
              if(!par1World.isRemote)
              {
              if((par5 & 1) == 1)
              {
              EntityTNTPrimedCustom entitytntprimed = new EntityTNTPrimedCustom(par1World, (double)((float)par2 + 0.5F), (double)((float)par3 + 0.5F), (double)((float)par4 + 0.5F), par6EntityLivingBase, power, delaytime, hy);
              par1World.spawnEntityInWorld(entitytntprimed);
              par1World.playSoundAtEntity(entitytntprimed, "random.fuse", 1.0F, 1.0F);
              }
              }
              }
              
              /**
              * Called upon block activation (right click on the block.)
              */
              public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9)
              {
              if(par5EntityPlayer.getCurrentEquippedItem() != null && par5EntityPlayer.getCurrentEquippedItem().itemID == Item.flintAndSteel.itemID)
              {
              this.primeTnt(par1World, par2, par3, par4, 1, par5EntityPlayer);
              par1World.setBlockToAir(par2, par3, par4);
              par5EntityPlayer.getCurrentEquippedItem().damageItem(1, par5EntityPlayer);
              return true;
              }
              else
              {
              return super.onBlockActivated(par1World, par2, par3, par4, par5EntityPlayer, par6, par7, par8, par9);
              }
              }
              
              /**
              * Triggered whenever an entity collides with this block (enters into the
              * block). Args: world, x, y, z, entity
              */
              public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
              {
              if(par5Entity instanceof EntityArrow && !par1World.isRemote)
              {
              EntityArrow entityarrow = (EntityArrow)par5Entity;
              
              if(entityarrow.isBurning())
              {
              this.primeTnt(par1World, par2, par3, par4, 1, entityarrow.shootingEntity instanceof EntityLivingBase ? (EntityLivingBase)entityarrow.shootingEntity : null);
              par1World.setBlockToAir(par2, par3, par4);
              }
              }
              }
              
              /**
              * Return whether this block can drop from an explosion.
              */
              public boolean canDropFromExplosion(Explosion par1Explosion)
              {
              return false;
              }
              }
              

              Classe de la CompactTNT :

              package fr.kitek.tntplusplus;
              
              import net.minecraft.block.Block;
              import net.minecraft.client.renderer.texture.IconRegister;
              import net.minecraft.creativetab.CreativeTabs;
              
              public class CompactTNT extends TNTBaseCustom
              {
              // float power = 8.0F;
              // Block hy = TntMainClass.CompactTNT;
              public CompactTNT(int id)
              {
              super(id);
              this.setCreativeTab(TntMainClass.TNTab);
              this.power = 8.0F;
              this.hy = TntMainClass.CompactTNT;
              this.delaytime = 80;
              }
              public void registerIcons(IconRegister iconRegister)
              {
              blockIcon = iconRegister.registerIcon("tntplusplus:CompactTNT");
              upside = iconRegister.registerIcon("tntplusplus:CompactTNT_up");
              downside = iconRegister.registerIcon("tntplusplus:CompactTNT_down");
              }
              }
              

              Classe de l’Entity :

              package fr.kitek.tntplusplus;
              
              import com.google.common.io.*;
              import cpw.mods.fml.common.registry.IEntityAdditionalSpawnData;
              import cpw.mods.fml.relauncher.Side;
              import cpw.mods.fml.relauncher.SideOnly;
              import net.minecraft.block.Block;
              import net.minecraft.entity.Entity;
              import net.minecraft.entity.EntityLivingBase;
              import net.minecraft.nbt.NBTTagCompound;
              import net.minecraft.world.World;
              
              public class EntityTNTPrimedCustom extends Entity implements IEntityAdditionalSpawnData
              {
              Block type;
              float p;
              private EntityLivingBase tntPlacedBy1;
              /** How long the fuse is */
              public int fuse;
              
              public EntityTNTPrimedCustom(World par1World)
              {
              super(par1World);
              this.preventEntitySpawning = true;
              this.setSize(0.98F, 0.98F);
              this.yOffset = this.height / 2.0F;
              }
              
              public EntityTNTPrimedCustom(World par1World, double par2, double par4, double par6, EntityLivingBase par8EntityLivingBase, float power, int delay, Block i)
              {
              this(par1World);
              this.setPosition(par2, par4, par6);
              float f = (float)(Math.random() * Math.PI * 2.0D);
              this.motionX = (double)(-((float)Math.sin((double)f)) * 0.02F);
              this.motionY = 0.20000000298023224D;
              this.motionZ = (double)(-((float)Math.cos((double)f)) * 0.02F);
              this.p = power;
              this.fuse = delay;
              this.type = i;
              this.prevPosX = par2;
              this.prevPosY = par4;
              this.prevPosZ = par6;
              this.tntPlacedBy1 = par8EntityLivingBase;
              }
              
              @Override
              public void writeSpawnData(ByteArrayDataOutput data)
              {
              data.writeInt(this.fuse);
              }
              
              @Override
              public void readSpawnData(ByteArrayDataInput data)
              {
              this.fuse = data.readInt();
              }
              
              protected void entityInit()
              {}
              
              /**
              * returns if this entity triggers Block.onEntityWalking on the blocks they
              * walk on. used for spiders and wolves to prevent them from trampling crops
              */
              protected boolean canTriggerWalking()
              {
              return false;
              }
              
              /**
              * Returns true if other Entities should be prevented from moving through
              * this Entity.
              */
              public boolean canBeCollidedWith()
              {
              return !this.isDead;
              }
              
              /**
              * Called to update the entity's position/logic.
              */
              public void onUpdate()
              {
              this.prevPosX = this.posX;
              this.prevPosY = this.posY;
              this.prevPosZ = this.posZ;
              this.motionY -= 0.03999999910593033D;
              this.moveEntity(this.motionX, this.motionY, this.motionZ);
              this.motionX *= 0.9800000190734863D;
              this.motionY *= 0.9800000190734863D;
              this.motionZ *= 0.9800000190734863D;
              
              if(this.onGround)
              {
              this.motionX *= 0.699999988079071D;
              this.motionZ *= 0.699999988079071D;
              this.motionY *= -0.5D;
              }
              
              if(this.fuse-- <= 0)
              {
              this.setDead();
              
              if(!this.worldObj.isRemote)
              {
              this.explode();
              }
              }
              else
              {
              this.worldObj.spawnParticle("smoke", this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D);
              }
              }
              
              /**
              * (abstract) Protected helper method to write subclass entity data to NBT.
              */
              protected void writeEntityToNBT(NBTTagCompound par1NBTTagCompound)
              {
              par1NBTTagCompound.setByte("Fuse", (byte)this.fuse);
              }
              
              /**
              * (abstract) Protected helper method to read subclass entity data from NBT.
              */
              protected void readEntityFromNBT(NBTTagCompound par1NBTTagCompound)
              {
              this.fuse = par1NBTTagCompound.getByte("Fuse");
              }
              
              @SideOnly(Side.CLIENT)
              public float getShadowSize()
              {
              return 0.0F;
              }
              
              /**
              * returns null or the entityliving it was placed or ignited by
              */
              public EntityLivingBase getTntPlacedBy()
              {
              return this.tntPlacedBy1;
              }
              
              private void explode()
              {
              this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, p, true);
              }
              }
              

              Classe du Render :

              package fr.kitek.tntplusplus;
              
              import cpw.mods.fml.relauncher.Side;
              import cpw.mods.fml.relauncher.SideOnly;
              import net.minecraft.block.Block;
              import net.minecraft.client.renderer.RenderBlocks;
              import net.minecraft.client.renderer.entity.Render;
              import net.minecraft.client.renderer.texture.TextureMap;
              import net.minecraft.entity.Entity;
              import net.minecraft.util.ResourceLocation;
              import org.lwjgl.opengl.GL11;
              
              @SideOnly(Side.CLIENT)
              public class RenderTNTPrimedCustom extends Render
              {
              private RenderBlocks blockRenderer = new RenderBlocks();
              private Block texture;
              
              public RenderTNTPrimedCustom()
              {
              this.shadowSize = 0.5F;
              }
              
              public void renderPrimedTNTCustom(EntityTNTPrimedCustom par1EntityTNTPrimed, double par2, double par4, double par6, float par8, float par9)
              {
              this.texture = par1EntityTNTPrimed.type;
              GL11.glPushMatrix();
              GL11.glTranslatef((float)par2, (float)par4, (float)par6);
              float f2;
              
              if((float)par1EntityTNTPrimed.fuse - par9 + 1.0F < 10.0F)
              {
              f2 = 1.0F - ((float)par1EntityTNTPrimed.fuse - par9 + 1.0F) / 10.0F;
              
              if(f2 < 0.0F)
              {
              f2 = 0.0F;
              }
              
              if(f2 > 1.0F)
              {
              f2 = 1.0F;
              }
              
              f2 *= f2;
              f2 *= f2;
              float f3 = 1.0F + f2 * 0.3F;
              GL11.glScalef(f3, f3, f3);
              }
              
              f2 = (1.0F - ((float)par1EntityTNTPrimed.fuse - par9 + 1.0F) / 100.0F) * 0.8F;
              this.bindEntityTexture(par1EntityTNTPrimed);
              this.blockRenderer.renderBlockAsItem(texture, 0, par1EntityTNTPrimed.getBrightness(par9));
              
              if(par1EntityTNTPrimed.fuse / 5 % 2 == 0)
              {
              GL11.glDisable(GL11.GL_TEXTURE_2D);
              GL11.glDisable(GL11.GL_LIGHTING);
              GL11.glEnable(GL11.GL_BLEND);
              GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_DST_ALPHA);
              GL11.glColor4f(1.0F, 1.0F, 1.0F, f2);
              this.blockRenderer.renderBlockAsItem(texture, 0, 1.0F);
              GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
              GL11.glDisable(GL11.GL_BLEND);
              GL11.glEnable(GL11.GL_LIGHTING);
              GL11.glEnable(GL11.GL_TEXTURE_2D);
              }
              
              GL11.glPopMatrix();
              }
              
              protected ResourceLocation getTNTPrimedCustomTextures(EntityTNTPrimedCustom par1EntityTNTPrimed)
              {
              return TextureMap.locationBlocksTexture;
              }
              
              /**
              * Returns the location of an entity's texture. Doesn't seem to be called
              * unless you call Render.bindEntityTexture.
              */
              @Override
              protected ResourceLocation getEntityTexture(Entity par1Entity)
              {
              return this.getTNTPrimedCustomTextures((EntityTNTPrimedCustom)par1Entity);
              }
              
              /**
              * Actually renders the given argument. This is a synthetic bridge method,
              * always casting down its argument and then handing it off to a worker
              * function which does the actual work. In all probabilty, the class Render
              * is generic (Render <t extends="" entity)="" and="" this="" method="" has="" signature="" public<br="">* void doRender(T entity, double d, double d1, double d2, float f, float
              * f1). But JAD is pre 1.5 so doesn't do that.
              */
              public void doRender(Entity par1Entity, double par2, double par4, double par6, float par8, float par9)
              {
              this.renderPrimedTNTCustom((EntityTNTPrimedCustom)par1Entity, par2, par4, par6, par8, par9);
              }
              }
              

              Classe du Proxy Client :

              package fr.kitek.tntplusplus.proxy;
              
              import cpw.mods.fml.client.registry.RenderingRegistry;
              import fr.kitek.tntplusplus.EntityTNTPrimedCustom;
              import fr.kitek.tntplusplus.RenderTNTPrimedCustom;
              
              public class TutoClientProxy extends TutoCommonProxy
              {
              
              public void registerRender()
              {
              // TODO Auto-generated method stub
              // ici mes futurs client registry
              RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedCustom.class, new RenderTNTPrimedCustom());
              }
              
              }
              ```</t>

              Crée le mod TNT++ 1.6.4

              1 réponse Dernière réponse Répondre Citer 0
              • T Hors-ligne
                totos51
                dernière édition par

                IL te suffira de remplacer par le bloc dans ton constructeur et il prendra sa texture automatiquement
                new RenderTNTPrimedCustom(TntMainClass.CompactTNT)

                deviendra

                new RenderTNTPrimedCustom(TntMainClass.Autrebloc)

                1 réponse Dernière réponse Répondre Citer 1
                • S Hors-ligne
                  Sayac12
                  dernière édition par

                  Et donc il faudra que je crée d’autres entity pour chaque TNT ?

                  Crée le mod TNT++ 1.6.4

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    Oui.

                    1 réponse Dernière réponse Répondre Citer 0
                    • S Hors-ligne
                      Sayac12
                      dernière édition par

                      Merci je crois que ce sujet est résolu. Merci beaucoup. Il ne reste plus qu’à tester.

                      Crée le mod TNT++ 1.6.4

                      1 réponse Dernière réponse Répondre Citer 0
                      • S Hors-ligne
                        Sayac12
                        dernière édition par

                        Il y a un problème je crois :
                        Dans le Render, j’ai écris ```java
                        public void renderPrimedTNTCustom(EntityTNTPrimedCustom par1EntityTNTPrimed, double par2, double par4, double par6, float par8, float par9)

                        Vu qu'il y a "EntityTNTPrimedCustom", ça fait le render de cette entity malgré la technique que tu m'a donné. Pour l'instant, je n'ai pas mis les textures de la nouvelle TNT mais je vois la texture de la première. Or, si je fais un extend, il me semble que ça va aussi prendre la texture de la 1ère TNT.
                        Help ?
                        ___
                        Par contre, la TNT fait ce que je voulait.
                        ___
                        Si je copie le render, ça devrais marcher mais je croyais que je pouvais faire comme tu m'a dis.
                        ___
                        J'ai remarqué autre chose : une fois, j'ai inventé un concept de canon à TNT surpuissant mais il était tellement puissant que la TNT explosait dans l'air, Je l'avais fait pour qu'il soit entièrement automatique avec des dispensers. Vu que j'ai réussi à créer une TNT, j'ai voulu réessayer avec la 2e TNT que j'ai créer à laquelle j'ai doublé le fuse SAUF QUE ma TNT se droppe au lieu de s'allumer.

                        Crée le mod TNT++ 1.6.4

                        1 réponse Dernière réponse Répondre Citer 0
                        • T Hors-ligne
                          totos51
                          dernière édition par

                          hum je ne suis pas sur mais tu devrais plutot mettre de type entity et adapté le code selon l’entity qui lui est donné? car la oui il utilisera quoi qu’il arrive la texture de la même entity.

                          1 réponse Dernière réponse Répondre Citer 0
                          • S Hors-ligne
                            Sayac12
                            dernière édition par

                            Désolé, c’est parce que je suis idiot : dans le code du TNTBaseCustom, il y a comme type EntityTNTPrimedCustom et j’ai oublié de le changer pour la deuxième TNT. Sinon merci totos, je pensais qu’il y aurait une erreur à ce niveau là aussi.
                            Petite Question : est-il possible de faire un truc pour que je définisse dans la classe de la TNT this.quelque chose = L_ENTITY_QUI_VA_AVEC au lieu de redéfinir les méthodes ?
                            Maintenant que j’y pense, je suis désolé mais il y a plein de questions que je pose qui peuvent être résolues d’une autre façon que celle que je demande ! Mais c’est censé faire que ça soit plus facile pour en rajouter.

                            Crée le mod TNT++ 1.6.4

                            1 réponse Dernière réponse Répondre Citer 0
                            • T Hors-ligne
                              totos51
                              dernière édition par

                              bah tu mets juste une entity en paramètre et tu commence par une condition: if (entity instanceof entityTntcustom)

                              1 réponse Dernière réponse Répondre Citer 0
                              • S Hors-ligne
                                Sayac12
                                dernière édition par

                                Je ne suis pas sur que c’est ce que je veux.
                                Donc je réexplique :
                                Je voudrais savoir si c’est possible d’écrire dans la classe de chaque TNT :

                                this.entityprimed = EntityTNTPrimedCustom;
                                

                                au lieu de redéfinir les 2 fonctions où j’utilise l’entity.
                                Sinon, pourrais-tu me dire où je dois mettre le code si c’est bien ce que je veux ?

                                Crée le mod TNT++ 1.6.4

                                1 réponse Dernière réponse Répondre Citer 0
                                • T Hors-ligne
                                  totos51
                                  dernière édition par

                                  oui en effet j’ai mal compris
                                  je pense que cela doit être possible, je regarde plus tard et j’édite mon post, je finis de monter un pc avant ^^

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • S Hors-ligne
                                    Sayac12
                                    dernière édition par

                                    J’ai un crash et une erreur : 1/Erreur dans le render à cause du .fuse car les type Entity n’ont pas de variable fuse. Je ne pense pas que c’est à cause de ça le crash.
                                    2/Crash
                                    Le plus important(d’après moi) :

                                    2014-03-25 20:11:05 [INFO] [STDOUT] –-- Minecraft Crash Report ----
                                    2014-03-25 20:11:05 [INFO] [STDOUT] // Don't do that.
                                    2014-03-25 20:11:05 [INFO] [STDOUT]
                                    2014-03-25 20:11:05 [INFO] [STDOUT] Time: 25/03/14 20:11
                                    2014-03-25 20:11:05 [INFO] [STDOUT] Description: Rendering entity in world
                                    2014-03-25 20:11:05 [INFO] [STDOUT]
                                    2014-03-25 20:11:05 [INFO] [STDOUT] java.lang.ClassCastException: fr.kitek.tntplusplus.EntityTNTPrimedDelay cannot be cast to fr.kitek.tntplusplus.EntityTNTPrimedCustom
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at fr.kitek.tntplusplus.RenderTNTPrimedCustom.doRender(RenderTNTPrimedCustom.java:97)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.renderer.entity.RenderManager.renderEntityWithPosYaw(RenderManager.java:312)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.renderer.entity.RenderManager.renderEntity(RenderManager.java:281)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:524)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1160)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1006)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:946)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.Minecraft.run(Minecraft.java:838)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.client.main.Main.main(Main.java:93)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at java.lang.reflect.Method.invoke(Unknown Source)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.launchwrapper.Launch.launch(Launch.java:131)
                                    2014-03-25 20:11:05 [INFO] [STDOUT] at net.minecraft.launchwrapper.Launch.main(Launch.java:27)
                                    

                                    @‘totos51’:

                                    oui en effet j’ai mal compris
                                    je pense que cela doit être possible, je regarde plus tard et j’édite mon post, je finis de monter un pc avant ^^

                                    OK


                                    Je crois que j’ai trouvé : je peux faire du polymorphisme, non ?


                                    @‘totos51’:

                                    bah tu mets juste une entity en paramètre et tu commence par une condition: if (entity instanceof entityTntcustom)

                                    En fait, j’en avais besoin : c’est ce qui causait le crash.

                                    Crée le mod TNT++ 1.6.4

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • T Hors-ligne
                                      totos51
                                      dernière édition par

                                      sujet résolu donc ou bien tu as encore besoin d’aide?

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • S Hors-ligne
                                        Sayac12
                                        dernière édition par

                                        C’est résolu !(Pour l’instant !)
                                        Mais j’ai des projets plus ambitieux dans pour ce mod(des sticky grenades) mais ce n’est pas pour tout de suite !

                                        Crée le mod TNT++ 1.6.4

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • T Hors-ligne
                                          totos51
                                          dernière édition par

                                          je pense qu’en s’inspirant des boules de neiges et en y ajoutant une explosion ça devrait pouvoir se faire ^^

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • S Hors-ligne
                                            Sayac12
                                            dernière édition par

                                            Par sticky grenade, je pensais plutot à une grenade qui colle et qui après un peu de temps, explose en plein dans la face de celui sur lequel elle est collée. Donc je pensais plutot me baser principalement sur les fléches.

                                            Crée le mod TNT++ 1.6.4

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB