* Remove LocatedBlock overhead in LBL map
* Add new space-efficient block map, with thourough testing
* Drop ordering property, add full insertion test
* Add licenses
* Fix mocked platform conflicts
* Disable full block map testing for faster builds
* Re-implement BlockMap with fastutil maps
* Re-write chunk batching to be memory efficient
* Make MultiStageReorder use BlockMap
* Increase LBL load factor, fix long-pack limit detection
* Fix infinite loop in chunk batching
* Save memory in history by cleaning up MSR
* Re-implement LocatedBlockList in BlockMap
* Fix data race with BlockType lazy fields
* Make IDs ALWAYS present, only runtime-consistent. Use for memory efficiency in BlockMap
* Remap inner structure of BlockMap for smaller maps
* Remove containedBlocks fields, not very efficient
* Fix minor de-optimizing bug in stage reorder
* Make long packed y signed
* Add extended Y limit configuration option
* Add licenses
* Store 3 ints for unoptimized BV list
* Add final to BitMath
* Correct int-cast for long-packing
Add better control over expression timeouts.
* //timeout command can be used to change player's current timeout.
* Config now also has a max timeout, can be bypassed with permission
* Timeout of < 0 will let expressions run indefinitely.
* Said expressions won't run on a separate thread, slightly reducing the
overhead from context switching. For large //gen commands, for example,
this can actually increase speed.
This patch touches many files but changes absolutely no functionality.
The goal here is to make future merges with worldedit produce fewer
conflicts that have to be resolved.
This patch was made by painstakingly diff'ing files and copying changes
over from the last upstream merge commit (02c6f11b) into this codebase.
Signed-off-by: Byron Marohn <combustible@live.com>
- Move Vector, etc. into `.math` package
- Drop many methods that will be auto-promoted anyways, eg. with
`divide(int)` and `divide(double)` the first is now gone.
- Take Block vectors into their own class hierarchy
- Make it clear throughout the API what takes blockvectors
- many more improvements
This fixes a lot of issues with block rotations for various blocks.
Additionally, the //info tool will now report states (only works for
states that use data values) for easier lookups.
Note that some doors still have update issues, and //fast is needed
to paste them if they drop as items.
This converts the project into a multi-module Gradle build.
By default, Git does not show history past a rename, so use git log
--follow to see further history.