Résolu Problème de render de mob
-
Bonjour à tous.
Depuis pas mal de temps, j’ai un problème avec mes mobs (Chicken et Boat)
J’ai check mon render, et voila pourquoi mes mobs étaient invisibles.
J’ai refait le render de mon poulet grâce à ce tutoriel de robin : http://www.minecraftforgefrance.fr/showthread.php?tid=648
Et j’ai une erreurpackage eryah.usefulthings.client.render; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelChicken; import net.minecraft.client.renderer.entity.RenderChicken; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; import eryah.usefulthings.Reference; import eryah.usefulthings.entity.passive.GoldenEggChicken; public class RenderGoldenEggChicken extends RenderChicken { public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/gechicken.png"); public RenderGoldenEggChicken(ModelChicken model, float shadow) { super(****model, shadow****); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobGoldenEggChickenTexture((GoldenEggChicken)living); } private ResourceLocation getMobGoldenEggChickenTexture(GoldenEggChicken mobTutoriel) { return texture; } }
The constructor RenderChicken(ModelChicken, float) is undefined
Eclipse veut en renderManager en plus
Je dois mettre renderManger dans les paramètres ?
(Je suis entrain de test)
Il est toujours invisible, mais, contrairement à avant, il a une ombre
package eryah.usefulthings.client.render; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelChicken; import net.minecraft.client.renderer.entity.RenderChicken; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; import eryah.usefulthings.Reference; import eryah.usefulthings.entity.passive.GoldenEggChicken; public class RenderGoldenEggChicken extends RenderChicken { public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/gechicken.png"); public RenderGoldenEggChicken(RenderManager renderManager, ModelChicken model, float shadow) { super(renderManager, model, shadow); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobGoldenEggChickenTexture((GoldenEggChicken)living); } private ResourceLocation getMobGoldenEggChickenTexture(GoldenEggChicken mobTutoriel) { return texture; } }
((-J’ai édité le topic Problème GUI, mais j’ai l’impression qu’il est passé inaperçu -))
-
Essaie avec RenderManager.instance
-
Je me suis sûrement trompé, mais çela ne fonctionne pas
public RenderGoldenEggChicken(ModelChicken model, float shadow) { super(RenderManager.*instance*, model, shadow); }
instance cannot be resolved or is not a field
-
Effectivement, l’instance n’est plus utilisée en 1.8, il faut faire Minecraft.getMinecraft().getRenderManager()
-
Toujours invisible.
Je pense que l’erreur peut venir du ClientProxyClientProxy
EntityRegistry.registerGlobalEntityID(GoldenEggChicken.class, "goldenEggChicken", EntityRegistry.findGlobalUniqueEntityId(), new Color(192,192,192).getRGB(), new Color(255, 239, 0).getRGB()); RenderingRegistry.registerEntityRenderingHandler(GoldenEggChicken.class, new RenderGoldenEggChicken(Minecraft.getMinecraft().getRenderManager(), new ModelChicken(), 0.3F));
Render du mob
package eryah.usefulthings.client.render; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelChicken; import net.minecraft.client.renderer.entity.RenderChicken; import net.minecraft.client.renderer.entity.RenderManager; import net.minecraft.entity.EntityLiving; import net.minecraft.util.ResourceLocation; import eryah.usefulthings.Reference; import eryah.usefulthings.entity.passive.GoldenEggChicken; public class RenderGoldenEggChicken extends RenderChicken { public final ResourceLocation texture = new ResourceLocation(Reference.MOD_ID, "textures/entity/gechicken.png"); public RenderGoldenEggChicken(RenderManager renderManager, ModelChicken model, float shadow) { super(Minecraft.getMinecraft().getRenderManager(), model, shadow); } protected ResourceLocation getEntityTexture(EntityLiving living) { return this.getMobGoldenEggChickenTexture((GoldenEggChicken)living); } private ResourceLocation getMobGoldenEggChickenTexture(GoldenEggChicken mobTutoriel) { return texture; } }
-
EntityRegistry.registerGlobalEntityID(GoldenEggChicken.class, “goldenEggChicken”, EntityRegistry.findGlobalUniqueEntityId(), new Color(192,192,192).getRGB(), new Color(255, 239, 0).getRGB());
Tu as mit cette ligne dans le client proxy ? -
Pour avoir l’oeuf
-
Et tu pense que ton mob ne doit être que enregistré côté client ?
Faut lire le tutoriel, ça va dans la classe principale …
-
Ah j’ai du faire une connerie…
Un jour, on m’a dit que cette ligne était intutile. Donc je l’ai supprimé.
lorsque j’ai voulu la remettre, j’ai du me tromperJe lance mon client pour voir
Toujours invisible…
Mais je tiens un truc.
Dans les logs, il y a un texte qui cligniote SUPER rapidement, j’ai pas pu le copier coller, mais j’ai réussi a choper un screen
http://www.noelshack.com/2015-28-1436208251-capture.png -
Car à chaque tick l’erreur est reprint. Quitte le jeu et remonte dans les logs, tu pourra copier/coller tout le stacktrace sans problème.
-
L’erreur en entier
[20:44:35] [Client thread/ERROR]: Couldn’t render entity
java.lang.ClassCastException: eryah.usefulthings.entity.passive.GoldenEggChicken cannot be cast to net.minecraft.entity.passive.EntityChicken
at net.minecraft.client.renderer.entity.RenderChicken.handleRotationFloat(RenderChicken.java:40) ~[RenderChicken.class:?]
at net.minecraft.client.renderer.entity.RendererLivingEntity.doRender(RendererLivingEntity.java:141) [RendererLivingEntity.class:?]
at net.minecraft.client.renderer.entity.RenderLiving.doRender(RenderLiving.java:59) [RenderLiving.class:?]
at net.minecraft.client.renderer.entity.RenderLiving.doRender(RenderLiving.java:199) [RenderLiving.class:?]
at net.minecraft.client.renderer.entity.RenderManager.doRenderEntity(RenderManager.java:377) [RenderManager.class:?]
at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:334) [RenderManager.class:?]
at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:301) [RenderManager.class:?]
at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:657) [RenderGlobal.class:?]
at net.minecraft.client.renderer.EntityRenderer.renderWorldPass(EntityRenderer.java:1350) [EntityRenderer.class:?]
at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1263) [EntityRenderer.class:?]
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1088) [EntityRenderer.class:?]
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1114) [Minecraft.class:?]
at net.minecraft.client.Minecraft.run(Minecraft.java:376) [Minecraft.class:?]
at net.minecraft.client.main.Main.main(Main.java:117) [Main.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_45]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_45]
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?]
at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?]
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source) [start/:?]
at GradleStart.main(Unknown Source) [start/:?] -
C’est parce que tu essaies d’appliquer le rendu d’un chicken sur un mob qui n’est pas extends EntityChicken. Mets ton mob extends EntityChicken ou fait une classe de rendu non-extends RenderChicken ou ré-écris la méthode handleRotationFloat.
-
C’est bon c’était ça, mon mob n’était pas extends Chicken.