EngineHub / EngineHub/WorldEdit

Place axis-aware blocks: Optimize for density of block at the axis-pointing surface

Open
#2,380 2 comments 0 reactions 0 assignees View on GitHub
status:pending type:feature-request
Dominant language
Java
Stars
3.5k
Forks
960
Avg merge
6h 57m
Merged PRs (30d)
1

Description

### The Problem

I'm building grids of oak logs and chains in water or air. It's tedious to select lots of small regions in order to set the correct orientation.

### A Solution

My concept of block density is: void < air < non-air liquid < partial block < transparent full block < opaque full block.

I'd like to give my preference for whether the axis-aligned sides (oak log rings, chain ends) should prefer higher or lower density, and a priority list of fixed directions that decides in the case the density preference can be satisfied equally by multiple axes.
The measurement of neighboring blocks' density shall compare the block that would be the neighbor _after_ placement.
Example: When placing a straight line of chain floating in air, it would compare to the to-be-placed chains and thus a preference for higher density would connect all of them.

The syntax could be something like `//replace glass oak_log[axis=Dxz]` where `D` means high density (`d` = low density). If multiple axes will achieve it: If one of them is the X axis, use `[axis=x]`. Otherwise, if the Z axis is one of the equally-good axes, use `[axis=z]`. If there's still ambiguity, pick any of the good axes. (In this example, there should only be one remaining choice anyway.)

### Alternatives

_No response_

### Anything Else?

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.