Jump to content

Dynamic model for mob


jmeyer2k

Recommended Posts

When a mob dies, I want this mob to spawn as an exact replica of the mob but with my own AI. This means I want it to copy the rendering function of the mob that died. In EntityDeadMob.java, when the mob is spawned, the entityToDisplay variable is set as well as the position. When I run it with this code, I get an error.

 

EntityDeadMob.java

package com.julianscode.mobloot;

import net.minecraft.entity.Entity;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.world.World;

public class EntityDeadMob extends EntityMob {
public Entity entityToDisplay;
public EntityDeadMob(World p_i1738_1_) {
	super(p_i1738_1_);
	// TODO Auto-generated constructor stub
}

}

RenderDeadMob.java

package com.julianscode.mobloot;

import cpw.mods.fml.client.registry.RenderingRegistry;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.client.renderer.entity.RenderManager;

public class RenderDeadMob extends Render {

Render display;

@Override
public void doRender(Entity p_76986_1_, double p_76986_2_,
		double p_76986_4_, double p_76986_6_, float p_76986_8_,
		float p_76986_9_) {
	EntityDeadMob deadmob = (EntityDeadMob) p_76986_1_;
	this.display = RenderManager.instance.getEntityRenderObject(deadmob.entityToDisplay);
	this.display.doRender(deadmob.entityToDisplay, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
}

@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
	return null;
}

}

 

Error:

net.minecraft.util.ReportedException: Rendering entity in world
    at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:346) ~[RenderManager.class:?]
    at net.minecraft.client.renderer.entity.RenderManager.renderEntityStatic(RenderManager.java:278) ~[RenderManager.class:?]
    at net.minecraft.client.renderer.entity.RenderManager.renderEntitySimple(RenderManager.java:251) ~[RenderManager.class:?]
    at net.minecraft.client.renderer.RenderGlobal.renderEntities(RenderGlobal.java:533) ~[RenderGlobal.class:?]
    at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1308) ~[EntityRenderer.class:?]
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1095) ~[EntityRenderer.class:?]
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1066) ~[Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:961) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]
    at GradleStart.bounce(GradleStart.java:107) [start/:?]
    at GradleStart.startClient(GradleStart.java:100) [start/:?]
    at GradleStart.main(GradleStart.java:55) [start/:?]
Caused by: java.lang.NullPointerException
    at net.minecraft.client.renderer.entity.RenderManager.getEntityRenderObject(RenderManager.java:207) ~[RenderManager.class:?]
    at com.julianscode.mobloot.RenderDeadMob.doRender(RenderDeadMob.java:18) ~[RenderDeadMob.class:?]
    at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300) ~[RenderManager.class:?]
    ... 21 more

 

Event where entity is spawned:

@SubscribeEvent
    public void onLivingDeathEvent(LivingDeathEvent event) {
    	
    	if(event.entityLiving instanceof EntityMob && event.source.getEntity() instanceof EntityPlayer) {
    		log.info("Killed Hostile Mob ");
    		double x = event.entityLiving.posX;
    		double y = event.entityLiving.posY;
    		double z = event.entityLiving.posZ;
    		World w = event.entityLiving.worldObj;
    		this.spawnDeadZombie(x, y, z, w, (Entity) event.entityLiving);
    	}
    }

Link to comment
Share on other sites

Bump... Where's Lex when you need him? :l

 

Probably yelling at other people that haven't heard of OOP and trying to reinvent the water in minecraft.

 

Oh and by the way, can this error be any clearer? Try to read your logs, it generally helps.

 

Caused by: java.lang.NullPointerException
    at net.minecraft.client.renderer.entity.RenderManager.getEntityRenderObject(RenderManager.java:207) ~[RenderManager.class:?]
    at com.julianscode.mobloot.RenderDeadMob.doRender(RenderDeadMob.java:18) ~[RenderDeadMob.class:?]
    at net.minecraft.client.renderer.entity.RenderManager.func_147939_a(RenderManager.java:300) ~[RenderManager.class:?]
[/Code]

 

Basically your RenderObject or the mob you want to render is empty, most likely a case of the event not capturing the mob.

Try to see when you kill it if Event.EntityLiving.GetEntityid(); or something like that returns an id.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.