Jump to content

Recommended Posts

Posted (edited)

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.

image.png.89569489dc9da7aa00166adedc65db9f.png

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 by Tatuck
Posted (edited)
	@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 by Thorius
More instructions
Posted

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.

Posted

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.

 

 

Posted

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.

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.