Jump to content

Arrow Rendering


yesod30

Recommended Posts

Hi all, i have a problem with rendering a custom arrow entity. If i shoot it 6 block or near the block i aim, the arrow is rendered in the wrong position. In the spoiler i put two image to explain myself better.

 

 

 

more than 6 block:

23shshg.png

 

less than 6 block:

14n0c9f.png

 

 

 

EntityArrow Class: http://pastebin.com/wNX8imZy

RenderEntityArrow Class: http://pastebin.com/Sp0yL7qF

 

i registered the entity with:

EntityRegistry.registerGlobalEntityID(EntityExplosiveArrow.class, "explosiveArrow", EntityRegistry.findGlobalUniqueEntityId());
EntityRegistry.registerModEntity(EntityExplosiveArrow.class, "explosiveArrow", 1, Yesodmod.instance, 100, 50, true);

Link to comment
Share on other sites

Try add these code at the begin of your onUpdate() method. That means, Do not move your arrow entity at the first tick it spawns.

	if(this.ticksExisted == 1) {
		if(!worldObj.isRemote) {
			this.throwerLastX = thrower.posX;
			this.throwerLastY = thrower.posY;
			this.throwerLastZ = thrower.posZ;
		}
		return;
	}

Author of Tao Land Mod.

width=200 height=69http://taoland.herbix.me/images/1/14/TaoLandLogo.png[/img]

Also, author of RenderTo

----

I'm not an English native speaker. I just try my best.

Link to comment
Share on other sites

Try add these code at the begin of your onUpdate() method. That means, Do not move your arrow entity at the first tick it spawns.

	if(this.ticksExisted == 1) {
		if(!worldObj.isRemote) {
			this.throwerLastX = thrower.posX;
			this.throwerLastY = thrower.posY;
			this.throwerLastZ = thrower.posZ;
		}
		return;
	}

 

This actually work, ty. Just a question: why without it the arrow was rendered in the wrong position?

Link to comment
Share on other sites

This actually work, ty. Just a question: why without it the arrow was rendered in the wrong position?

 

I don't know whether it's a bug or intentional. I used to meet this problem, and read the codes, trying to find out why this happens. Finally I found it. In a words, an entity except EntityArrow doesn't transfer its moving information to client in its first tick. So if it moves, entity in client is always behind that in server, which causes a wrong position.

Author of Tao Land Mod.

width=200 height=69http://taoland.herbix.me/images/1/14/TaoLandLogo.png[/img]

Also, author of RenderTo

----

I'm not an English native speaker. I just try my best.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



×
×
  • Create New...

Important Information

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