-
-
Notifications
You must be signed in to change notification settings - Fork 709
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
Smooth Pistons #1542
Smooth Pistons #1542
Conversation
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.
There's a lot to go through here - I'll try to run it later and get an IDE analysis of it.
...in/java/org/geysermc/connector/network/translators/world/block/entity/PistonBlockEntity.java
Outdated
Show resolved
Hide resolved
...in/java/org/geysermc/connector/network/translators/world/block/entity/PistonBlockEntity.java
Outdated
Show resolved
Hide resolved
https://cdn.discordapp.com/attachments/613194762249437245/777637784063180840/pistons-2020-11-15_15.53.02.mp4 there appears to be some buggy behavior. |
Ah, totally forgot about normal pistons. |
Solved on my end. |
# Conflicts: # connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java # connector/src/main/java/org/geysermc/connector/network/translators/world/block/BlockTranslator.java # connector/src/main/resources/mappings
# Conflicts: # connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java # connector/src/main/java/org/geysermc/connector/network/translators/world/block/BlockTranslator.java # connector/src/main/resources/mappings
...in/java/org/geysermc/connector/network/translators/world/block/entity/PistonBlockEntity.java
Outdated
Show resolved
Hide resolved
Looks good so far! I love that the slime block works correctly. A couple of critiques:
|
It's great. It solved #1437 |
I've fixed movement with pistons without any blocks attached. I didn't see any SetEntityMotion packets while using ProxyPass and BDS, but I tried it anyway. It kinda works but tends to push players sideways. You can see the effect when being launched by a slime block. |
Hopefully fixes issues with slime trampolines
Add&fix comments Add method to get the starting position of the piston head Split out common code in computeCollisionOffset and checkCollision
# Conflicts: # connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java
TODO deduplicate code TODO fix empty retracting sticky pistons
2e0a120
to
aeec2e1
Compare
connector/src/main/java/org/geysermc/connector/network/session/cache/PistonCache.java
Outdated
Show resolved
Hide resolved
...ain/java/org/geysermc/connector/network/translators/java/world/JavaBlockValueTranslator.java
Outdated
Show resolved
Hide resolved
May want to reduce it to 64 blocks, since Bedrock does not render moving blocks outside this range.
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.
Awesome work! Few nitpicks but generally most everything looks great.
bootstrap/spigot/src/main/java/org/geysermc/platform/spigot/world/GeyserPistonEvents.java
Outdated
Show resolved
Hide resolved
connector/src/main/java/org/geysermc/connector/network/session/cache/PistonCache.java
Show resolved
Hide resolved
connector/src/main/java/org/geysermc/connector/network/session/cache/PistonCache.java
Outdated
Show resolved
Hide resolved
...tor/src/main/java/org/geysermc/connector/network/translators/collision/CollisionManager.java
Outdated
Show resolved
Hide resolved
...tor/src/main/java/org/geysermc/connector/network/translators/collision/CollisionManager.java
Outdated
Show resolved
Hide resolved
connector/src/main/java/org/geysermc/connector/utils/PistonBehavior.java
Outdated
Show resolved
Hide resolved
connector/src/main/java/org/geysermc/connector/utils/Direction.java
Outdated
Show resolved
Hide resolved
connector/src/main/java/org/geysermc/connector/utils/DimensionUtils.java
Outdated
Show resolved
Hide resolved
...tor/src/main/java/org/geysermc/connector/network/translators/collision/CollisionManager.java
Outdated
Show resolved
Hide resolved
...tor/src/main/java/org/geysermc/connector/network/translators/collision/CollisionManager.java
Outdated
Show resolved
Hide resolved
...in/java/org/geysermc/connector/network/translators/collision/translators/BlockCollision.java
Show resolved
Hide resolved
*/ | ||
private void removeBlocks() { | ||
for (Vector3i blockPos : attachedBlocks.keySet()) { | ||
ChunkUtils.updateBlock(session, BlockStateValues.JAVA_AIR_ID, blockPos); |
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.
If this method is only called for visuals, I would rather it just call the update block methods manually so we don't even touch the chunk cache, unless we need the chunk cache to match.
Fixes the flickering with pistons moving blocks. Needs GeyserMC/mappings#41
Fixes #2241