Skip to content

Comments

Add in New Surface Rules & Conditions#70

Open
voidsong-dragonfly wants to merge 13 commits intoApollounknowndev:1.21from
voidsong-dragonfly:feature/npsurfacerules
Open

Add in New Surface Rules & Conditions#70
voidsong-dragonfly wants to merge 13 commits intoApollounknowndev:1.21from
voidsong-dragonfly:feature/npsurfacerules

Conversation

@voidsong-dragonfly
Copy link

@voidsong-dragonfly voidsong-dragonfly commented Aug 15, 2025

This PR adds in new surface rules from Natural Philosophy, intended for others to be able to use what I've developed.

It adds multiple conditions and multiple rules; documentation in human-readable format can be found here.

Examples using the new surface rules are available upon request or can be found in Natural Philosophy on the currently in-development branch.

Full Javadocs are included for complex code (conditions and rules), however condition & rule sources were left out due to the simplicity of their implementation compared to rules and conditions.

 - Moved SurfaceRulesMixin.java to ContextMixin.java & removed unnecessary outer class
 - Removed @nonnull & @nullable annotations that couldn't be processed for some files
 - TransientMergedRuleSource now uses the default implementation of `SequenceRule`
 - Code is deduplicated from Vanilla
 - Mods such as TerraBlenderFix should work more effectively as their mixins into `SequenceRule` will now run as intended, rather than only sometimes
 - The noise cache had no noticeable performance impact, nor did the noise analysis rules
 - Thus, we can reasonably remove the noise cache without affecting performance
 - Cave depth rule no longer scans for caves when the underground above it is entirely solid
 - Windswept terrain will no longer take an extra second to load into a 32-chunk render distance world just to run the cave depth rule
@voidsong-dragonfly voidsong-dragonfly marked this pull request as ready for review August 16, 2025 03:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant