Aussieforks / australia

Updated fork of the original Australia mod for Minetest v5.7
Other
1 stars 3 forks source link

Rework trees and aquatic life to remove ABMs and LBMs #10

Open Montandalar opened 1 year ago

Montandalar commented 1 year ago

Addresses #8.

This pull request removes all ABMs from the mod and introduces only three new LBMs. Two for the shipwreck loot, and one which is necessary to make sure aquatic plantlife starts growing in the world as it is generated.

First is the work on trees. They now grow at different rates according to the volume, and they can decay properly without checking a full cuboid - there is now "NULDA", the Non-Uniform Leaf Decay for Australia library.

Second is the work on aquatic plantlife - coral, tall kelp, short kelp, sponges. I took the opportunity to improve aquatic plantlife deaths by creating a dead version of all nodes rather than just destroying them. I also refactored the code to make it quite easy to add new species. This part of the work is what took so long, since I was working out how the templating of nodes would work. It's not perfect, but good enough I think.

The intent of this PR is also that it will work seamlessly with old worlds that were made before. That has not yet been tested but I have high hopes.

Also refer to the more detailed notes that have been added to the README and commit messages for more information.

Montandalar commented 1 year ago

This version of the mod is now live on the Aussieforks server as well. We may not need a map reset at all if testing goes well and this proves backwards-compatible!

Montandalar commented 1 year ago

Test results in Aussieforks are good. Existing areas transitioned well.

Montandalar commented 1 year ago

Since making this PR I have heard about other projects moving from nodetimers to ABMs to improve performance. I'm also worried about the impact on load times. I will leave this here for now until/unless I can actually prove the benefits.

Montandalar commented 1 year ago

Minor issue spotted: Dried variants of the giant kelp top and middle are both visible in the creative inventory (well, Unified Inventory). However, the craft guide does clearly show that the middles, when dug, will yield the tops, so it all stacks.

Montandalar commented 1 year ago

I found another issue with noairblocks today. I think they only exist in an artificially-planted environment, hence why I never saw them:

-- @@@ Josselin2
--  water.alpha = 0
    water.use_texture_alpha = "opaque"

..the australia:water nodes are opaque now. Previously alpha = 0 was a hack to make it disappear without changing the texture. Not really ideal. The better fix is:

    water.drawtype = "airlike"

but this is still quite ugly as you get the inside faces of the water nodes that border it still. Anyway since noairblocks were removed this is kind of trivia, but it may tip the balance of the scales if I decide upon keeping the new branch despite poorer performance (note: the performance has yet to be tested).