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.
    • 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