Skip to content
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

Account for exterior block hardness in break speed #30

Open
wants to merge 1 commit into
base: 1.20.1
Choose a base branch
from

Conversation

clarkf
Copy link

@clarkf clarkf commented Oct 12, 2023

Fixes #14

Currently it's possible to mine hard blocks quickly by targeting softer blocks and letting the AoE harvest the harder blocks. For example, a player can mine up to 8 obsidian with a "vanilla hammer" at cobblestone speed by placing cobblestone in the center and targeting that.

The solution is a bit weird, but that's mostly due to how block breaking works in vanilla. The lowest in the call-chain where we have enough information to assess block hardness is at Block#calcBlockBreakingDelta. I tried averaging the hardnesses/deltas, but that still allowed you to 'dilute' harder blocks break-speed penalty by including more soft blocks in the AoE. I think taking the minimum delta (read: maximum hardness) is the best answer here.

Players were able to cheese hard block collection by surrounding hard
blocks with softer blocks. For example, it was possible to mine up to 8
obsidian at cobblestone break-speed by targeting cobblestone when
breaking. To solve this, a new `AbstractBlockState` mixin was
introduced. I tried to solve this at other levels (preferably without a
mixin), but wasn't able to get all the necessary information anywhere
other than at the BlockState level.

The minimal breaking delta (which is effectively the same as maximum
block hardness) is used instead of the targeted block hardness. Using
the average basically didn't solve the issue—it was possible to surround
a hard block with softer blocks to 'dilute' the hardness.

Fixes Draylar#14

Signed-off-by: Clark Fischer <clark.fischer@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Obsidian can be quickly mined by breaking stone next to it
1 participant