Problème sur le rendu d'une Entity Boat.
-
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

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

-
@‘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. ^^
-
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 ?).
-
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>
-
Quelle est l’erreur ?
-
@‘robin4002’:
Quelle est l’erreur ?
Bah quand je fais click droit avec l’item, mon bateau ne spawn/apparait pas

-
Ajoutes des print à différent endroit de la fonction puis regardes la console pour comprendre où ça bloque.
-
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
-
Rien dans les logs ?
Étrange comme problème ça. -
Non rien

Ces boat vont me sortir par les yeux ^^
-
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.
