Résolu Crach au rendu du mob
-
Bonjour !
Voila j’arrive pas faire spawner mon mob a cause du fait que le render de l’entity n’est pas lue pourtant je ne vois aucun problème dans la classe
INFO :
La classe de mon mob : PoClass
la classe de mon render : renderEmergia
la classe principale de mon mod : EmergiaMenu
Voici la classe proxy :package fr.emergia.EmergiaMod.proxy; import net.minecraft.client.model.ModelBiped; import cpw.mods.fml.client.registry.RenderingRegistry; import fr.emergia.EmergiaMod.client.renderEmergia; import fr.emergia.EmergiaMod.common.PoClass; public class ClientProxy extends CommonProxy { @Override public void RegisterRender () { System.out.println("méthode côté client"); RenderingRegistry.registerEntityRenderingHandler(PoClass.class, new renderEmergia(new ModelBiped(), 0.5F)); } }
La class du mob :
package fr.emergia.EmergiaMod.common; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; import net.minecraft.world.World; public class PoClass extends EntityMob { public PoClass(World world) { super(world); // TODO Auto-generated constructor stub } public void applyEntityAttributes() { super.applyEntityAttributes(); this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(10D); this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(10D); this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(0.8D); this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.9D); this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(1D); } }
la class de mon render :
package fr.emergia.EmergiaMod.client; import fr.emergia.EmergiaMod.common.EmergiaMenu; import fr.emergia.EmergiaMod.common.PoClass; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderBiped; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; public class renderEmergia extends RenderBiped { public final ResourceLocation texture = new ResourceLocation (EmergiaMenu.MODID, "textures/entity/PO.png"); public renderEmergia(ModelBiped model, float shadow) { super(model, shadow); } protected ResourceLocation getEntityTexture(PoClass living) { return this.getPoTexture((PoClass)living); } private ResourceLocation getPoTexture(PoClass Poclass ) { return texture; } }
et enfin mon rapport d’erreur :
(j’arrivais pas copier coller …)
-
Tu as coupé le log pile là où il fallait pas…
Il nous faut AUSSI la trace avec le “Caused by NullPointerException” -
protected ResourceLocation getEntityTexture(PoClass living) { return this.getPoTexture((PoClass)living); }
->
protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getPoTexture((PoClass)living); }
-
@‘jglrxavpok’:
Tu as coupé le log pile là où il fallait pas…
Il nous faut AUSSI la trace avec le “Caused by NullPointerException”C’est le même log j’ai regarder qui recommence.
EDIT oui voila le log :
-
Tu as testé ce que je t’ai donné ?
-
Oui Message d’au dessus j’ai oublier de mettre la phrase ^^ qui disait que j’avais testé avant le screeen.
-
Vu le message d’erreur, ta texture est null, et la seule explication que je vois c’est que tu n’as pas override getEntityTexture
Avec ce que je t’ai donné, ça devrait fonctionner.
Essaye de mettre @Override au dessus de getEntityTexture -
@Override protected ResourceLocation getEntityLiving(EntityLiving living) { return this.getPoTexture((PoClass)living); } private ResourceLocation getPoTexture(PoClass Poclass ) { return texture; } }
J’ai une erreur sur getEntityLiving, il me propose d’enlever le @Override…
EDIT : Je viens de m’appercevoir que getentitytexture était getentiyliving …
EDIT 2 : ça y est ça marche merci beaucoup -
Ok d’accord mais maintenant penses à passer le sujet en résolu Azatom