For collisions, need to check out the new applyEffectsFromBlocks
function and see if there are any improvements we can make.
For the chunk system, we need to implement async chunk saving.
The current async unload structure will not work, as it is designed
to only handle 1 pending save at any given time.
* Change min/max section optimisations
* Correctly init dimension type
We need to initialise the field as early as possible in the constructor
to avoid problems.
Also, do not cache min/max section in EntityLookup. Note that mods
that implement worlds with variable heights will not work still,
as the entity slices expect a fixed height.
* Cache calculated height values
---------
Co-authored-by: Spottedleaf <Spottedleaf@users.noreply.github.com>
* Configure mod-publish-plugin
* Configure actions to run mod-publish-plugin
To publish a release:
- Set the mod version to x.x.x(-beta.x) in gradle.properties and commit
- Create a git tag named vx.x.x(-beta.x) (note the v prefix)
- Push commit, push tag
- Manually create a (pre-)release for the tag on GitHub web ui. The release notes will be reused for modrinth and CF.
The release creation will trigger the workflow and publish to modrinth and CF.
The build script will check for when the version contains `-beta.` and mark it as a beta on modrinth and CF.
After publishing a release, it's good practice to bump the version and add -SNAPSHOT, i.e. after releasing 0.0.1, push a commit changing the version to 0.0.2-SNAPSHOT. This ensures people downloading action artifacts have correct version numbers.
This commit also updates gradle/actions/setup-gradle which removes the need for a separate wrapper validation action (it is included in setup-gradle v4)
* Set project IDs
SliceShape is not always the ideal shape, as sometimes the
face result is empty or full cube - but is represented as
SliceShape. Additionally, sometimes SliceShape should be
empty but isEmpty() is false.