cabaletta / cabaletta/baritone

More inteligent backfill

Open
#3,121 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
9.2k
Forks
2.1k
Avg merge
4d 3h
Merged PRs (30d)
3

Description

## Describe your suggestion
Simulate or devise an algorithm that doesn't block off areas that will be filled in the future.

Each block placement - Multi layer checks, starting with simpler ones first?
"Will this placement separate the cavity I'm in into two cavities?" (a cavity is defined by spreading a 1x2x1 block out in every direction as long as it's on the ground and it's allowed to teleport to places it's already been (blue space), then a 1x1x1 but at most 4 blocks away from the blue space. ("ray traced" from the centers of blocks on the outside surface; pythagorean theorem shit) Or will this block placement remove from this space more than 1 block? maybe find a way to remove blocks in batches.

If this is true how do we handle that? Map what placements will and won't as we place blocks in another thread for anywhere we're not near then cache them. prefer to start with blocks on the edge of this but don't move if we have to to place on the outside unless there's no more non blue space blocks. This isn't perfect but it doesn't cause any issues and will decrease bad placement hits by a lot. There's no point in checking after each placement more then 7 blocks away right? We want to place a block in the cavity that we would have created by a theoretical bad placement, so pick the closest one in that cavity and try again?

## Settings
Use this setting for backfill? Does current backfill just replace blocks that we just mined that we also aren't standing in? This creates infinite loops in some cases.

## Context
This would make filling in areas of all types besides tunnels when traveling long distances actually possible in reasonable time frames.

Thank you, please tell me if I'm being stupid and why.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.