alRex-U / ParCool

A Minecraft Forge Mod for action of Cool Parkour
GNU General Public License v3.0
42 stars 30 forks source link

Hard to use in tight spaces, some slight configs that might make things work better #124

Open ghost opened 1 year ago

ghost commented 1 year ago

Sometimes, when used in survival mode, navigating in tight spaces can be somewhat unintuitive and difficult. Especially notable is that you can often sit there and walljump off small walls you are actually trying to jump against or similar. However, I think a slight change to the controls could help make things optionally easier to control.

A suggested method might be making it so that the wall slide has a bit of "hang time" before you start falling down the wall, letting you change where you are looking before you start falling, and change where your wall jumps are going.

Second, we would be making it so that wall jumps always push you forward, toward the wall you are jumping from, but we track the last wall's normal, disallowing us from jumping against objects with the same direction.

This allows us to have a small run up a wall more than would ordinarily be possible, while still allowing us to jump between walls as we can presently, at the cost of walljumps being less helpful between wallruns without some more tweaking.

This is just one suggestion, of course, and other ways of getting around this could be implemented. I may see about forking and seeing if I can implement this on my own time so it can be playtested.

ghost commented 1 year ago

To be clear, this is specifically in regards to the 1.18.2 version of the mod. If there are changes that make this easier on newer versions I'm not familiar enough with them to know.

alRex-U commented 1 year ago

Thanks for suggesting!

Now I am working on update of this mod. Of course also I will check what you said after I finished some tasks, but if you contribute about this it is so thankful.

Then, if you were willing to implement it and wanted to merge it, please merge it into 1.16.5 branch?I won't mind if you couldn't implement it, I am just letting you know.

ghost commented 1 year ago

I've actually got a working version for 1.18.2, but I'm still playtesting to make sure it feels right. I'll get that PR when I have time!

SaltSouls commented 7 months ago

I will suggest the same thing for the 1.20.1 version. Right now, when running around the world, some behaviors can be pretty strange, and I think I know how they can be fixed. I will also note, that these behaviors are based on me having the horizontal wall run tied to Ctrl instead of a mouse click, like the mod does by default. Personally I like this feel more as it allows me to just sprint at walls and run across them effortlessly. The issues come in the event that I'm sprinting in an enclosed space or nearby a short wall. Too often the mod will try and put me into the wall run animation when I'm just trying to climb up a hill, and this can make movement feel really janky. Same can also happen if I'm partially submerged in water(or any fluid I assume).

To fix this I suggest, what in my mind is a pretty simple tweak, to check to make sure there is at least one non-solid/non-damaging block beneath the player before they are able to wall run. To be even more strict, you can even check to make sure the wall they are running on is at least two high. You could even make it force them back into a sprint if it finds that there is a solid, non-lethal, block under them if they had started the wall run. This would prevent the player from being able to accidentally start wall running when they are just trying to jump up a hill. On the same topic of wall running, I don't think the player should be able to wall run on things like fences. I feel like the blocks they are allowed to run on should be restricted to full blocks, or trap doors that are opened/closed(this depend on how they were placed).

The other thing I would like to suggest is to make it so placement of blocks is restricted in certain circumstances. Either if you are fast sprinting(I think this is the more aggressive approach), or if you are a certain distance from a wall while fast sprinting. I like the second option more as it would allow the player to still sprint and place blocks, but it would stop them from accidentally placing blocks if they are close to a wall and trying to wall run or vault it. This issue is mainly a problem if you use things like better bridging or the quark reach around placement, but it would still be nice to have a built-in solution to prevent accidental block placement when traversing the world. Same can be said with block interactions. You can mantle trapdoors and the like, but the mod doesn't prevent you from opening them, so when you go to mantle them, your character will instead interact with them, thus causing you to rapidly open and close them.

All in all, I really like the mod and the movement it offers, and would love to see these things implemented as I feel it would go a long way to making the movement feel even more fluid and clean. If I can, I'll try and take a look into how some of this works to see if I can maybe help, but I wouldn't count on it too much as my Java, I feel, isn't nearly up to the skills it would take to implement something like this. Anyway, keep up the great work, and I can't wait to see what new things will come in future updates.

SaltSouls commented 7 months ago

P.S: I would recommend adding a config to allow people to enable/disable certain blocks from being able to be climbed, vaulted, hung from, or wall run on. This would probably save you some time later and would allow the mod to work with other mods according to how the pack maker wants them to work. I only bring this up as I feel that wall running on ice or being able to hang from and climb onto a lantern seems kinda strange. A config would just make it easier for me to decide what I wanted what things to work for.

alRex-U commented 7 months ago

About adding configs to register blocks which being able to be climbed is sometimes suggested since before but I have postponed because of some technical problems.

But thank you for your suggestion about behavior about wall run action, I will use as a reference