New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add disable_jump to liquids and ladders #7688
Conversation
I have tested this. Nice! Works fine for ladders. A ladder that you can only climb down, but not up? Funny. :-) This will be interesting for puzzle games, like @sofar's Inside The Box. :D Liquids behave a bit weird. Yes, you cannot rise in liquids, this part works fine. But if you are at the bottom of the water (in your test mod), you will rise a tiny bit. Not enough to climb a node, but it sure looks weird, I think it should be fixed. Otherwise fine. Please update Maybe instead of One idea (optional): You don't have to do this for me to approve, I just think that with a |
Post above:
The player uses the node at its feet to repel from the ground, the liquid viscosity then causes the player to slow down quickly. Intended behaviour. I agree that |
Thanks, awesome! The minijump on sea floor is not a big deal and I can accept it as-is. It's not really wrong anyway. |
What's the usecase of no ascent in climbable nodes? Why is that included here? Just wondering. |
One-way climbable blocks for puzzle games. But I didn't have any concrete use case in mind. It's really more about symmetry than anything else. |
A use case for this that I have in mind: I'd like to implement a heavier-than-air asphyxiant gas to add danger to certain caves. A liquid with no viscosity and no swimming seems like it'd be ideal for something like this, allowing the gas to "swirl" and "flow" with a faintly visible surface that looks nicer than just a bunch of translucent hard-edged cubes. |
Looking at the code, also disabling climbing just uses an already calculated bool, so does no harm. I'm uncomfortable with the changes to 'old_move' in this PR, they seem to possibly change behaviour. |
There are a few things here that seem wrong and seem changes to exisitng behaviour, i possibly misunderstand though :) |
I agree, legacy movement code should not be touched for this. Can you just implement this feature without touching old_move at all? As far I understand, old_move is legacy and does not need touching anyway. |
@Wuzzy2 Well sure, that's doable. But then I would also note in the Lua API that this group's full functionality is only available to new_move users. |
4996212
to
721c17b
Compare
I'm ok with the standing node stuff now, misunderstood. My only remaining concern is the changes to |
After all it was you who requested these changes indirectly. I'm just coding. If you want fewer changed lines, then please adopt this PR to show me that it's possible. I could also leave the old move code untouched if you tell me so. The feature will then be limited to the new move code only. |
I think there is a misunderstanding, by that i'm referring to the initial PR, i'm not complaining about coding you have done since to attend to my concerns, which i appreciate of course.
If you are referring to the initial PR, i have never requested this feature be coded, i was -1 at first and then neutral, see #4494 No other core dev supported the feature over 2 years, but i assume you support the feature now?
|
Maybe it's because i commented: "Any core dev support?", when i do that i'm not expressing my support for a request. |
@paramat Ah, I now see the reason for this situation! Of course, not everybody might like movement code changes, thus I tried to keep those changes as little as possible. According to your code comments I then corrected the issues, which apparently still touch the old movement code too much. For now I've only seen disapprovals on these lines, so I'd like to know whether @Wuzzy2 and @paramat are happier to leave the old movement code untouched. I was wrong in assuming you would find interest in this feature; but am glad that you're neutral about it right now. I'm open for suggestions to bring this PR along, and would be happy about feedbacks from other parties as well. |
Important feature +1
…On Sat, Oct 27, 2018, 9:53 AM SmallJoker ***@***.***> wrote:
@paramat <https://github.com/paramat> Ah, I now see the reason for this
situation!
PRs are usually a positive indicator since they bring the project along,
so I also expected neutral and hoped for some positive support (at least
from those who showed interest in the original issue). I think you can
safely assume that the creator of the PR actually wants the feature to be
in the game (otherwise, why the effort?).
Of course, not everybody might like movement code changes, thus I tried to
keep those changes as little as possible. According to your code comments I
then corrected the issues, which apparently still touch the old movement
code too much. For now I've only seen disapprovals on these lines, so I'd
like to know whether @Wuzzy2 <https://github.com/Wuzzy2> and @paramat
<https://github.com/paramat> are happier to leave the old movement code
untouched.
I was wrong in assuming you would find interest in this feature; but am
glad that you're neutral about it right now. I'm open for suggestions to
bring this PR along, and would be happy about feedbacks from other parties
as well.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#7688 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AWXKYgqo1uurE7Rd22eFpgoSYVR-IStaks5upGVigaJpZM4WWSNs>
.
|
I agree that To remove any doubt: I am in favor of the core feature itself as it will directly help MineClone 2. It can improve cobwebs which are implemented as fake liquids (to slow down movement), but the annoying thing is that you can climb them up, which should not be possible. With this feature I can fix this. But I believe it will also be useful for games that like to add quicksand and other fun stuff. Finally, @paramat: The “no core dev support” argument is a bit silly if there is actually working code, whether coded by a core dev or not. :P |
Yes i have now changed labels on the issue since a core dev supports.
|
So this feature won't work if someone is using old move? |
@Ezhh from how it looks right now, yes. From what I've seen here, the |
Well that's a pity. I wasn't aware using old move code would mean missing out on new (and desired) features. Also on servers that use both and permit switching of move code to their players, this will lead to inconsistent behaviour. Instead of the automatic "oh no we can't change old move at all ever"... in what ways would it be changed? Is new move code not also being changed by this? Can we please not add more movement related issues through inconsistent behaviour? |
If i was certain the change to old_move made no difference i wouldn't have a problem, but i'm not certain, as the standing node point has been altered, and am being cautious, understandably. However i do see the inconsistency problem with not having the feature in old_move, but that would be less damaging than a change to old_move. It's a dilemma because it seems a lose/lose situation. So, more testing needed. |
The fact is that if features and bugfixes are added to old_move it is highly likely it's behaviour will change. After all, it was a bugfix that caused the whole controversy in the first place. Anyway, i would like to avoid a feature inconsistency between old and new move. |
Untrue. It was the things accompanying the bugfix. You should not exclude old move from new features without being able to say in what way it would change old move. What about if it changes new move? There's some people who are probably pretty attached to exactly how that works as well by now. The answer in both cases is to test, and without a PR being tested, it shouldn't be merged anyway. |
I mean, the bugfix was only possible by changing some things that then changed sneak behaviour. So it was the bugfix that changed sneak behaviour. For your second point i've just realised you are correct. I've removed my -1 because it is quite possible that old-move behaviour hasn't been changed in a problematic way. After all i don't fully understand the changes here. However it does need very careful testing before being merged. |
To be clear, i'm no longer requesting old_move be left untouched. |
I have done the testing on my part for the “new move” code, as written above. |
e933af7
to
6bc4888
Compare
Any news? |
@Wuzzy2 Now that 5.0.0 is out, reviews might come soon here. The PR is ready. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All good apart from this
// Node below the feet, update each ClientEnvironment::step() | ||
m_standing_node = floatToInt(m_position, BS) - v3s16(0, 1, 0); | ||
// Node at feet position, update each ClientEnvironment::step() | ||
m_standing_node = floatToInt(m_position, BS); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why did this not cause problems before?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because
- It's overwritten after the first of many
move()
calls insidestep()
as soon there's a collision - It doesn't matter in fly mode
However, now it has to be this way to properly detect nodes when the player is floating.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rubenwardy ok for you?
I trust SmallJoker's testing so i have no objections and no testing requests. |
Implements feature requested in #4494
Jumping is now no longer possible when the group
disable_jump = 1
is set. Jumping at the bottom of liquids may look a bit weird, but is actually because the node below can be used to jump.Testing code