grand_mind1 Posted January 30, 2015 Share Posted January 30, 2015 Hey, title pretty much says it all. I want to boost the player in the direction he is facing. I think I can do the boost part with addVelocity(), however I'm not sure what values to pass it so the player is boosted in the correct direction. All help is appreciated. Thanks! Quote Link to comment Share on other sites More sharing options...
GodOfYeti Posted January 30, 2015 Share Posted January 30, 2015 Couldnt you get his current position and depending on what direction he is facing (ForgeDirection) you can set his x, y, or z depending on direction Quote Link to comment Share on other sites More sharing options...
grand_mind1 Posted January 30, 2015 Author Share Posted January 30, 2015 Well, I don't want to set the x, y, and z, I want to actually quickly move him there(which can be done with addVelocity()). Also, I don't think ForgeDirection will work because what if the player is supposed to be boosted south-east? Obviously, to the game, they are facing one or the other and will choose one. Quote Link to comment Share on other sites More sharing options...
GodOfYeti Posted January 30, 2015 Share Posted January 30, 2015 I guess that is true Quote Link to comment Share on other sites More sharing options...
Mitchellbrine Posted January 30, 2015 Share Posted January 30, 2015 I'd say look at the ender pearl entity code and see how it's thrown and do something similar. Quote -Mitchellbrine Minecraft can do ANYTHING, it's coded in Java and you got the full power of Java behind you when you code. So nothing is impossible. It may be freaking fucking hard though, but still possible If you create a topic on Modder Support, live by this motto: I don't want your charity, I want your information Link to comment Share on other sites More sharing options...
grand_mind1 Posted January 30, 2015 Author Share Posted January 30, 2015 Oh, that's a great idea! I looked into it and got it working! Thanks! If anyone wants to know how I did it, I took this code from EntityThrowable(the class ender pearl extends): this.motionX = (double)(-MathHelper.sin(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI) * f); this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI) * f); this.motionY = (double)(-MathHelper.sin((this.rotationPitch + this.func_70183_g()) / 180.0F * (float)Math.PI) * f); If I read it correctly, this is how the game sets the motion of any entity that is being thrown. Then, all I had to do was change it up to work with my own code: double motionX = (double)(-MathHelper.sin(entityPlayer.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(entityPlayer.rotationPitch / 180.0F * (float)Math.PI) * 1.5F); double motionZ = (double)(MathHelper.cos(entityPlayer.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(entityPlayer.rotationPitch / 180.0F * (float)Math.PI) * 1.5F); double motionY = (double)(-MathHelper.sin((entityPlayer.rotationPitch + 0F) / 180.0F * (float)Math.PI) * 1.5F); entityPlayer.addVelocity(motionX, motionY, motionZ); Using a multiplier of 0.4, like in the original ender pearl code, wasn't quite enough to get the boost I liked, so I chaned it to 1.5. Thanks! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.