PolyhedralDev / Terra

Voxel world generation modding platform
MIT License
642 stars 85 forks source link

Refactor Noise3D palettes to optionally use dot product slants #386

Closed Astrashh closed 1 year ago

Astrashh commented 1 year ago

Pull Request

Brief description.

Adds the slant.calculation-method pack manifest key, which allows switching between either the Derivative or DotProduct method of calculating slants. This PR adds the functionality of #358 to version 6.2, while maintaining parity with existing packs by setting the default method to Derivative (the current method of calculating slant).

In addition, this also provides various code refactors for palette handling in the Noise3D generator.

What Issues Does This Fix?

Implements #358 in a backwards compatible way.

Licensing

Affects of the PR

This PR should maintain parity with existing packs.

Types of changes

Compatiblity

Contribution Guidelines.

Documentation

Testing

solonovamax commented 1 year ago

I haven't been following development, but isn't PalletInfo -> BiomePalletInfo a breaking change, which violates semver?

Astrashh commented 1 year ago

These changes would probably be better considered implementation details contained within the noise3d addon, rather than part of a public facing API as presented by the addon.

Perhaps we would need to formalize what addon semvers pertain to, and be more particular about visibility - as a lot of internal changes in addons could technically be considered violations if we're considering all public classes as part of an addon's public facing API.