Masks Reimplemented:
- Adjacent (~): Adjacent to a specific number of other blocks.
- Example: ~[oak_log][1][4]
- Extrema (#extrema): Restrict to near specific terrain extrema. The "-o" flag will only overlay existing terrain.
- Example: #extrema[0d][45d][-o]
- ROC Angle (#roc): Restrict to near specific terrain slope rate of change. The "-o" flag will only overlay existing terrain.
- Example: #roc[0d][45d][-o]
- Surface (#surface): Restrict to surfaces (any solid block touching air).
- Example: #surface
- Wall (#wall): Restrict to walls (any block n,e,s,w of air).
- Example: #wall
Other Changes:
- Minor logic change to angle mask's overlay.
- Fixed negating air mask.
- Added overlay flag to angle (/) mask.
Allows cancellation information to be fed back into the ascend/descend
algorithms.
(cherry picked from commit 71e104bcb187a5313e88dda5df79059c8ffbc1fe)
- Very basic implementation of the SideEffects system. Will definitely need fine tuning for it to be functional, but is not considered a priority in my opinion.
- Minor changes to the World interface and World implementations related to the SideEffects system. Shouldn't be the cause of any new bugs but be on the lookout.
- Included debug in BukkitImplLoader.java to assist contributors in understanding what needs to be implemented for the adapter to load properly.
Still very WIP but we're a few steps closer. So far, this is coming along better than I anticipated. Hopefully we can keep the momentum.
* Use a long to refer to the volume of a region, and rename the method to getVolume
* Fixed issues noted in review
* Forgot to floor
* Fixed review notes
* Can use a long here rather than BigDecimal
* Improve javadocs
* style
(cherry picked from commit 328030fd6281e58a4ea1d0cdd0a2e274da90afbe)
This fixes the issue where masks other than SimpleBlock masks (like Offset mask or negate mask) would not work.
The issue was caused by parseFromListInput() who would throw SuggestInputParseException if the input was not a valid block definition.
But as the parser was catching NoMatchException only, this was causing an error and the MaskFactory was broken.
Removed LoggingChangeSet since it wasn't functional and the majority of it was commented out.
Migrated a lot of RunnableVal implementations to Suppliers for improved readability and a very small speed improvement.