Jump to content

Recommended Posts

Posted

Hey,

 

I've been making my mod for a while and a part of it is the moving of my horse and there's the problem:

I don't know how to move it correctly. I guess there many ways and I tested many ways but none of them worked.

 

			EntityLiving entity = ( EntityLiving ) Minecraft.getMinecraft().thePlayer.ridingEntity;
		double entitySpeed = ( ( EntityHorse ) entity ).getEntityAttribute( SharedMonsterAttributes.movementSpeed ).getAttributeValue() * 20; 

 

~Lyras

PS: It's a normal horse, not my own entity :blank:

*Hug*

Posted

First of all, do not use Minecrat.getMinecraft(), it will crash the dedicated server as it is a client-only class!

Posted

You are only giving me a tiny code snippet, I cannot know where this is located, if the method this is in has access to a player object or if the class this is in somehow gives you access to a player object. Post a bit more code (preferably the complete class this is in) and I may be able to help you a bit more.

Posted

	public static void moveNearest ( Entity horse ) {

	if ( InputHandler.riding ) {

		if ( Route.route == null || Route.routeConfig == null ) { Route.route = InputHandler.route; Route.routeConfig = new Configuration( Route.route ); }

		ArrayList < MarkerPoint > array = RouteReader.markersInRadius( Route.routeConfig );
		MarkerPoint marker = Maths.nearestMarker( array );

		EntityLiving entity = ( EntityLiving ) horse;
		double entitySpeed = ( ( EntityHorse ) entity ).getEntityAttribute( SharedMonsterAttributes.movementSpeed ).getAttributeValue() * 20;

	}

}

 

I changed the code a little bit.

*Hug*

Posted

What is InputHandler? Is it your class or is it a MC base class?

Posted

You cannot directly access any mouse or keyboard input as the server doesn't know anything about them, you need to create a KeyHandler and register it and then send packets to the server when the button is pressed.

For your actual question: It depends on what you want to do. Is the player sitting on the horse or is there a connection between the player and the horse (something like a leash) or is the horse automagically following the player?

Posted

1. With "test for key input", the InputEvent is meant.

2. In my code you can see a "MarkerPoint"-object. This includes values such as x , y and z coordinates.

What I want is to move the horse to the coordinates which are included in the object

*Hug*

Posted

I think the InputEvent is also a client-only event. For your use case you could calculate a vector from the horse's position and the marker's position, apply the motion based on this vector (multiply the entity speed you desire with the normalized vector (length 1, there is a method for that in the vector class)) and check in the update method if the coordinates of the horse and the marker are equal and if they are, you set the motion to 0 again.

Posted

Is there no easier way?

And will the horse also be moved on a server too?

 

EDIT: I have no idea how to do it. I tried but I cannot figure it out...

There must be a way to move the entity without calculating vectors etc.

I guess that I even have to check if the horse has to jump because a block is in front of it

*Hug*

Posted

Before doing all the calculations you need to check if the world is not remote. The motion updates are automatically sent to the clients as this is a vanilla entity. This is also why I am beating you with the client-only stuff.

Posted

And I just have to send a packet to the server with the "command" let the horse move there?

But then there is another problem: I don't know which existing way I should chose to let the horse move. Or is there any way?

 

*Hug*

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.