- 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 custom radix sort for ordering blocks
* Licenses :P
* Fix ordering, add test for it
* Grant Gradle more memory (thx Fabric)
* Increase (?) / Specify memory for core tests
* Many attempts at fixing OOM
(cherry picked from commit bb013aa89b8457c4649e2546eef0aa94b9fc4020)
* 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
Should remain backwards compatible with 1.13. Removed blocks/items will
be forwarded to the "replacement" block/item. (e.g. BlockTypes.SIGN will
find OAK_SIGN on 1.14.)
- 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.