Jump to content

[1.11.2] Removing creative flying 'drift'?


Isabellav253

Recommended Posts

TL;DR - Where's the code for the 'flying drift' in creative mode?

 

I'm relatively new to modding and have been trying to make a simple mod which removes the 'drift' motion when flying in creative mode (like when you walk on ice). (makes the game unplayable for me due to motion sickness).

I'm using Eclipse & have been looking extensively but can't seem to find the code that controls this 'drift'.

Would love some help on this.

 

Link to comment
Share on other sites

That is hardcoded in the way entities move. Basically while the player holds a movement button their motion gets set to a specific amount. As the button is released the motion gradually decreases by something like motionX *= 0.9 in the onUpdate method.

You can however easily disable the 'drift' effect as you call it. Create an eventhandler that will handle client player's tick(or a client tick), check if the player is in creative and is flying, check that none of movement keys are pressed (you can get them in GameSettings which you can obtain from a Minecraft instance), and if all conditions are met simply set motionX and motionZ to 0.

Link to comment
Share on other sites

8 hours ago, V0idWa1k3r said:

That is hardcoded in the way entities move. Basically while the player holds a movement button their motion gets set to a specific amount. As the button is released the motion gradually decreases by something like motionX *= 0.9 in the onUpdate method.

You can however easily disable the 'drift' effect as you call it. Create an eventhandler that will handle client player's tick(or a client tick), check if the player is in creative and is flying, check that none of movement keys are pressed (you can get them in GameSettings which you can obtain from a Minecraft instance), and if all conditions are met simply set motionX and motionZ to 0.

That sounds like it would work.
I've been looking at tutorials for ~3 hours now and can't figure out where to put what code.
I've got a working mod that doesn't do anything yet - have attached what i think? is relevent?

Do you know of any good tutorials for creating events? Been using https://bedrockminer.jimdo.com/modding-tutorials/advanced-modding/event-handler/ but can't find what to put in my own code.

I'm totally lost haha.

 

Capture.JPG

Link to comment
Share on other sites

This is the progress I've got so far - on the right track?

 

Need to find how to ask it to check whether creative mode (isCreative) ? and check if flying and check if movement keys not pressed.

And to find out how to actually set movement to 0 - I've been looking for this in Entity.class - public double motionX and public double motionZ i think?

 

And I thought this would be simple xD

Mod Total.JPG

Mod Event.JPG

Link to comment
Share on other sites

Yes, you are on the right track. In fact, you have mostly described how to do it already ;)

You can check for creative mod in EntityPlayer.capabilities field. There are all kinds of fields in there - isFlying, isCreativeMode and others.

Just do not forget that ClientTickEvent is fired every client tick, including ticks where the player does not exist yes(ex. main menu screen) so you will need to check for that (player != null).

Link to comment
Share on other sites

Thanks!
I'm still trying to figure out how to set movement to 0 - I think I'm on the right track here using setVelocity - I half-copied this from Entity.class

It keeps telling me that "void is an invalid type for the variable setVelocity", although this is exactly how it's written in Entity.class.

I'm not sure how to fix this invalid type issue?

Mod Event setvelocity.JPG

Link to comment
Share on other sites

  • The motionX and motionZ fields you delcare in your event handler will have no effect on the player.
  • You can't declare a method inside another method.
  • Even if you moved that method out on its own, it's completely invalid - method parameters go in brackets.

These are pretty basic Java issues. I'd recommend you learn some Java fundamentals or you will struggle with modding.

Edited by Jay Avery
Link to comment
Share on other sites

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.