Posted April 7, 20214 yr Hello, I am trying to create a mod which shows the angle of a sound. I mean, if a chicken cackles in your left, I want to be able to get exactly the angle of the chicken. Sorry for the drawing but I think it makes an idea of what I want. @SubscribeEvent public static void soundAngle(PlaySoundEvent e){ ISound sound = e.getResultSound(); } Edited April 7, 20214 yr by Tatuck
April 7, 20214 yr @SubscribeEvent public static void soundAngle(PlaySoundEvent e){ ClientPlayerEntity player = Minecraft.getInstance().player; if(player != null) { //the event also triggers in the main menu, so this avoids crash ISound sound = e.getResultSound(); double x = sound.getX() - player.getPosX(); //gets the position relative to the player double y = sound.getZ() - player.getPosZ(); double angle = Math.atan2(y, x); //converts two sides of a rectangle to an angle given in radians player.sendChatMessage(String.valueOf(angle)); } } Something like this should work. In this code you get the angle relative to the world and not the player. Edited April 7, 20214 yr by Thorius More instructions
April 7, 20214 yr I wrote this in 1.15.2. The angle is given in radians. In any case you should test this solution whether or not it creates some errors in some special cases.
April 7, 20214 yr that's basically it, though a short instruction would be better that working code. and be careful about sides or your mod will crash multiplayer games.
April 7, 20214 yr Well if you (Tatuck) want to know more about the subject, look into trigonometry. (in case you're not familiar with it) I think you can find many good explanations on the internet, maybe videos will be helpfull. I think you can learn the basics of trigonometry pretty fast and then you can do so much more with 3D coordinates.
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.