MFF

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

    Problème sur le rendu d'une Entity Boat.

    Planifier Épinglé Verrouillé Déplacé Résolu 1.9.x et 1.10.x
    1.10.x
    14 Messages 3 Publieurs 2.1k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Salut,
      La fonction entityRegister de ton proxy est-elle appelé dans la classe principale ?

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

        Oui bien sur :

        :::

        package fr.sunmod.neutronstars;
        import fr.sunmod.neutronstars.blocks.BlockList;
        import fr.sunmod.neutronstars.craft.RegisteryCraft;
        import fr.sunmod.neutronstars.entity.EntityList;
        import fr.sunmod.neutronstars.events.EventList;
        import fr.sunmod.neutronstars.infos.Infos;
        import fr.sunmod.neutronstars.infos.ServerProxy;
        import fr.sunmod.neutronstars.items.ItemList;
        import net.minecraftforge.fml.common.Mod;
        import net.minecraftforge.fml.common.Mod.EventHandler;
        import net.minecraftforge.fml.common.Mod.Instance;
        import net.minecraftforge.fml.common.SidedProxy;
        import net.minecraftforge.fml.common.event.FMLInitializationEvent;
        import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
        import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
        @Mod(modid = Infos.MOD, version = Infos.VERSION, name = Infos.NAME)
        public class SunMod {
         @SidedProxy(clientSide = Infos.CLIENT, serverSide = Infos.CLIENT)
         public static ServerProxy serverProxy;
        
         @Mod.Instance(Infos.MOD)
         public static SunMod sunMod;
        
         @EventHandler
            public void preInit(FMLPreInitializationEvent event){
          new BlockList();
          new ItemList();
          new EventList();
          new RegisteryCraft();
          new EntityList();
            }
        
         @EventHandler
            public void init(FMLInitializationEvent event){
          serverProxy.registerRenders();
          serverProxy.entityRegister();
            }
        
         @EventHandler
            public void postInit(FMLPostInitializationEvent event){
        
            }
        }
        

        :::

        EDIT :

        J’ai remarqué une erreur lors du la copie du code “@SidedProxy(clientSide = Infos.CLIENT, serverSide = Infos.CLIENT)”, j’ai remplacé serverSide = Infos.SERVER mais rien, le rendu n’est toujours pas fait 😕

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

          Bonsoir, le rendu des entités doit être enregistré depuis la méthode pré-init et non init comme tu l’as fait. 🙂

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

            @‘Reden’:

            Bonsoir, le rendu des entités doit être enregistré depuis la méthode pré-init et non init comme tu l’as fait. 🙂

            Bonsoir, sur le coup ta proposition ma paru farfelu mais j’ai tout de même essayé et franchement, un gros GG et merci à toi, tu m’as donné la solution qui à ruiné toute ma journée d’hier. xD

            J’aurais du penser à le faire avant mais je ne l’avais pas fait en pensant que ça ne changerais rien mais tu m’as prouvé le contraire. Merci à toi encore. ^^

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

              De rien, pour t’expliquer je pense que cela est dû aux RenderFactory qui sont chargés depuis le pre-init (pour la compatibilité et l’override par d’autres mods ?).

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

                La je ne pourrais pas te dire 🙂

                J’ai un autre problème sur le spawn du bateau.

                J’ai réutilisé la methode du bateau classique mais je suppose qu’il y a une erreur sur world.spawnEntityInWorld(entity) ;

                :::

                package fr.sunmod.neutronstars.items;
                import java.util.List;
                import fr.sunmod.neutronstars.CreativeTab.SunTabCreative;
                import fr.sunmod.neutronstars.entity.SunBoat;
                import fr.sunmod.neutronstars.infos.Infos;
                import fr.sunmod.neutronstars.renders.RenderSunBoat;
                import net.minecraft.block.Block;
                import net.minecraft.client.Minecraft;
                import net.minecraft.client.renderer.block.model.ModelResourceLocation;
                import net.minecraft.creativetab.CreativeTabs;
                import net.minecraft.entity.Entity;
                import net.minecraft.entity.EntityLiving;
                import net.minecraft.entity.IEntityLivingData;
                import net.minecraft.entity.effect.EntityLightningBolt;
                import net.minecraft.entity.item.EntityBoat;
                import net.minecraft.entity.player.EntityPlayer;
                import net.minecraft.init.Blocks;
                import net.minecraft.item.Item;
                import net.minecraft.item.ItemStack;
                import net.minecraft.nbt.NBTTagCompound;
                import net.minecraft.stats.StatList;
                import net.minecraft.util.ActionResult;
                import net.minecraft.util.EnumActionResult;
                import net.minecraft.util.EnumHand;
                import net.minecraft.util.math.AxisAlignedBB;
                import net.minecraft.util.math.BlockPos;
                import net.minecraft.util.math.MathHelper;
                import net.minecraft.util.math.RayTraceResult;
                import net.minecraft.util.math.Vec3d;
                import net.minecraft.world.World;
                import net.minecraft.world.chunk.storage.AnvilChunkLoader;
                import net.minecraftforge.fml.common.registry.GameRegistry;
                public class SunBoatItem extends Item{
                 public SunBoatItem(){
                  super.maxStackSize = 1;
                     super.setCreativeTab(SunTabCreative.creativeTabsItems);
                     super.setUnlocalizedName("sun_boat");
                     GameRegistry.registerItem(this, this.getUnlocalizedName().substring(5));
                 }
                
                 @Override
                 public ActionResult <itemstack>onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand)
                    {
                        float f = 1.0F;
                        float f1 = playerIn.prevRotationPitch + (playerIn.rotationPitch - playerIn.prevRotationPitch) * 1.0F;
                        float f2 = playerIn.prevRotationYaw + (playerIn.rotationYaw - playerIn.prevRotationYaw) * 1.0F;
                        double d0 = playerIn.prevPosX + (playerIn.posX - playerIn.prevPosX) * 1.0D;
                        double d1 = playerIn.prevPosY + (playerIn.posY - playerIn.prevPosY) * 1.0D + (double)playerIn.getEyeHeight();
                        double d2 = playerIn.prevPosZ + (playerIn.posZ - playerIn.prevPosZ) * 1.0D;
                        Vec3d vec3d = new Vec3d(d0, d1, d2);
                        float f3 = MathHelper.cos(-f2 * 0.017453292F - (float)Math.PI);
                        float f4 = MathHelper.sin(-f2 * 0.017453292F - (float)Math.PI);
                        float f5 = -MathHelper.cos(-f1 * 0.017453292F);
                        float f6 = MathHelper.sin(-f1 * 0.017453292F);
                        float f7 = f4 * f5;
                        float f8 = f3 * f5;
                        double d3 = 5.0D;
                        Vec3d vec3d1 = vec3d.addVector((double)f7 * 5.0D, (double)f6 * 5.0D, (double)f8 * 5.0D);
                        RayTraceResult raytraceresult = worldIn.rayTraceBlocks(vec3d, vec3d1, true);
                        if (raytraceresult == null)
                        {
                            return new ActionResult(EnumActionResult.PASS, itemStackIn);
                        }
                        else
                        {
                            Vec3d vec3d2 = playerIn.getLook(1.0F);
                            boolean flag = false;
                            List <entity>list = worldIn.getEntitiesWithinAABBExcludingEntity(playerIn, playerIn.getEntityBoundingBox().addCoord(vec3d2.xCoord * 5.0D, vec3d2.yCoord * 5.0D, vec3d2.zCoord * 5.0D).expandXyz(1.0D));
                            for (int i = 0; i < list.size(); ++i)
                            {
                                Entity entity = (Entity)list.get(i);
                                if (entity.canBeCollidedWith())
                                {
                                    AxisAlignedBB axisalignedbb = entity.getEntityBoundingBox().expandXyz((double)entity.getCollisionBorderSize());
                                    if (axisalignedbb.isVecInside(vec3d))
                                    {
                                        flag = true;
                                    }
                                }
                            }
                            if (flag)
                            {
                                return new ActionResult(EnumActionResult.PASS, itemStackIn);
                            }
                            else if (raytraceresult.typeOfHit != RayTraceResult.Type.BLOCK)
                            {
                                return new ActionResult(EnumActionResult.PASS, itemStackIn);
                            }
                            else
                            {
                                Block block = worldIn.getBlockState(raytraceresult.getBlockPos()).getBlock();
                                boolean flag1 = block == Blocks.WATER || block == Blocks.FLOWING_WATER;
                                SunBoat entityboat = new SunBoat(worldIn,raytraceresult.hitVec.xCoord, flag1 ? raytraceresult.hitVec.yCoord - 0.12D : raytraceresult.hitVec.yCoord, raytraceresult.hitVec.zCoord);
                                entityboat.rotationYaw = playerIn.rotationYaw;
                
                                if (!worldIn.getCollisionBoxes(entityboat, entityboat.getEntityBoundingBox().expandXyz(-0.1D)).isEmpty())
                                {
                                    return new ActionResult(EnumActionResult.FAIL, itemStackIn);
                                }
                                else
                                {
                                    if (!worldIn.isRemote)
                                    {
                                     worldIn.spawnEntityInWorld(entityboat);
                                    }
                                    if (!playerIn.capabilities.isCreativeMode)
                                    {
                                        –itemStackIn.stackSize;
                                    }
                
                                    return new ActionResult(EnumActionResult.SUCCESS, itemStackIn);
                                }
                            }
                        }
                    }
                
                 public void registerRender(){
                  Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(this, 0, new ModelResourceLocation(Infos.MOD+":"+this.getUnlocalizedName().substring(5), "inventory"));
                 }
                }
                

                :::

                Je te remercierai une fois de plus si tu as la solution :)</entity></itemstack>

                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

                  Quelle est l’erreur ?

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

                    @‘robin4002’:

                    Quelle est l’erreur ?

                    Bah quand je fais click droit avec l’item, mon bateau ne spawn/apparait pas 😕

                    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

                      Ajoutes des print à différent endroit de la fonction puis regardes la console pour comprendre où ça bloque.

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

                        worldIn.spawnEntityInWorld(entityboat);

                        ça “bloque ici”, je l’avais fait hier ^^

                        Il ne me fait pas crash mais ça considere comme spawn mais je n’ai rien, à croire que pour forge ceci n’est pas bon ;/

                        Par contre quand je fais /summon monmod:boat_sun ça fonctionne

                        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

                          Rien dans les logs ?
                          Étrange comme problème ça.

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

                            Non rien 😕

                            Ces boat vont me sortir par les yeux ^^

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

                              C’est bon j’ai résolu mon problème, vu que le /summon fonctionné sur mon bateau j’ai recuperer le code et remplacer la methode ^^

                              :::

                              
                              [size=small**NBTTagCompound**] **[size=smallnbttagcompound]** [size=small=] **[size=smallnew]** [size=smallNBTTagCompound][size=small()][size=small;]
                              
                              [size=smallnbttagcompound][size=small.][size=smallsetString][size=small(][size=small"id"][size=small,] **[size=smallInfos]**[size=small.]***[size=smallMOD]***[size=small+][size=small".boat_sun"][size=small)][size=small;]
                              
                              **[size=smallEntity]** **[size=smallentity]** [size=small=] **[size=smallAnvilChunkLoader]**[size=small.]*[size=smallreadWorldEntityPos]*[size=small(][size=smallnbttagcompound][size=small,] [size=smallworldIn][size=small,] [size=smallraytraceresult][size=small.][size=smallhitVec][size=small.][size=smallxCoord][size=small,] [size=smallflag1] [size=small?] [size=smallraytraceresult][size=small.][size=smallhitVec][size=small.][size=smallyCoord] [size=small-] [size=small0.12D] [size=small:] [size=smallraytraceresult][size=small.][size=smallhitVec][size=small.][size=smallyCoord][size=small,] [size=smallraytraceresult][size=small.][size=smallhitVec][size=small.][size=smallzCoord][size=small,] **[size=smalltrue]**[size=small)][size=small;]
                              

                              :::

                              Le sujet peut-être déplacer en résolu, merci pour votre aide. 😛

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

                              MINECRAFT FORGE FRANCE © 2024

                              Powered by NodeBB