Posted June 24, 20169 yr 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 *Hug*
June 24, 20169 yr First of all, do not use Minecrat.getMinecraft(), it will crash the dedicated server as it is a client-only class!
June 24, 20169 yr 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.
June 24, 20169 yr Author 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*
June 24, 20169 yr Author This is my class in which I test for key input But it isn't nessecary for my question: How to move my horse? *Hug*
June 24, 20169 yr 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?
June 24, 20169 yr Author 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*
June 24, 20169 yr 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.
June 24, 20169 yr Author 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*
June 24, 20169 yr 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.
June 24, 20169 yr Author But is there a way to move the horse for the client and for the server? *Hug*
June 24, 20169 yr Author And how to move it on the server? xP And is there an existing function? *Hug*
June 24, 20169 yr Author 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.