Add More Sapling Oak Varieties #3081
Labels
No Label
#P1 CRITICAL
#P2: HIGH
#P3: elevated
#P4 priority: medium
#P6: low
#Review
annoying
API
bug
code quality
combat
commands
compatibility
configurability
contribution inside
controls
core feature
creative mode
delayed for engine release
documentation
duplicate
enhancement
environment
feature request
gameplay
graphics
ground content conflict
GUI/HUD
help wanted
incomplete feature
invalid / won't fix
items
looking for contributor
mapgen
meta
mineclone2+
Minecraft >= 1.13
Minecraft >= 1.17
missing feature
mobile
mobs
mod support
model needed
multiplayer
Needs adoption
needs discussion
needs engine change
needs more information
needs research
nodes
non-mob entities
performance
player
possible close
redstone
release notes
schematics
Skyblock
sounds
Testing / Retest
tools
translation
unconfirmed
mcl5
mcla
Media missing
No Milestone
No project
No Assignees
5 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: VoxeLibre/VoxeLibre#3081
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
When you grow oak trees from a sapling, they have a chance to become a medium-large or large oak tree instead of just the default ones.
MineClone 2 should make it possible to grow such large trees from a sapling. There are probably many more different examples than just this one.
Add More Sapling Oaksto Add More Sapling Oak VarietiesWe have 4 large varieties of oak, but they're supposed to be more rare than the small ones. This is normal in Minecraft too.
Here are 2 variants shown below. But more would be nice, of course. Someone should try getting comfortable and creative with Schematic Editor. :)
P.S. Here are all 4 schematics:
You should be able to force a large oak tree 100% of the time by putting a tall wall around the sapling and then letting it grow.
True, that's a very convenient feature in Minecraft, useful for quick base designs. I'm not sure we have this. Have you tried and it didn't work?
I tried and the sapling just seems to grow normal oak trees that force their leaves through the wall.
Well, there is also the infamous, super-short variety too. They are a treetop that's one oaklog node high. quite... entertaining to see. (Use seed StarCore if you have never seen them.)
You can find all the currently defined tree schematics here:
https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/ITEMS/mcl_core/schematics
Oak tree generation registratered here:
https://git.minetest.land/MineClone2/MineClone2/src/branch/master/mods/MAPGEN/mcl_biomes/init.lua#L2975
If you're really ambitious about creating more tree variants, look into l-system trees:
https://minetest.gitlab.io/minetest/l-system-trees/
https://dev.minetest.net/Introduction_to_L-system_trees
I guess you'll find some examples of its use in minetest_game's source code.
From what I have gathered, that's because the leaves in the tree structure file aren't set to overwrite non-air nodes.
I belive that when you set down a sapling, is when it picks which one its going to be... so forcing it doesn't work because it's a random pick. (Again, from what I have observed.)
I mean, we could make the code pretty complex and go through and check for walls around it going up however high... but, it is optimized to be an general tree api so we'd have to undo that for oaks, and a couple others. (This aspect doesn't seem worth it, but who am I to judge?)
I feel if the tree's are done a particular way to work with the way minetest does this, then it is for good reason.
I cannot justify rewriting the whole lot to support controlling what grows. That sounds like a technique that was used to manipulate mc's engine and tree generation and it's a great idea for that context, but that doesn't neccessarily apply here. It feels computationally expensive and for very little gain.
I think adding more variants could be quite cool or interesting if someone wants to commit that time to it. Then they might have to bonemeal until they get what they want.
Well, I have only skimmed through the trees, looking for things that I needed for making the bamboo... so, I'm not super familiar with how the trees work. I mean, I could do creative mode, and build some trees by hand... but the last time I did something like that, I handed the entire demo world over to Prairie to make structures from.
We have to keep in mind that mineclone is implemented on the basis of the minetest engine and we are bound by its abilities and its limitations.
L-system trees are implemented in C++ so it should not be very computationally intensive to use. Obviously, trying to reimplement exact MC mechanics in lua would create severe performance issues.
To clarify on my previous post, I'm not opposed to L-system trees. I don't know enough about it, and if it's supported and can improve things, it's worth considering and looking into.
I was more hesitent on the restricting growth based on what blocks/fences are around (and the checking of all these to define the trees spawning). That bit felt expensive and engine specific.
I guessed your intent right then. We agree that it is not a good idea to drop the schematics in favor of a tentative lua-based tree generation. I just wanted to put the notion of l-system trees out there for the people to consider as an alternative to fixed schematics.
I'm not overly familiar with it either. I only looked into it some time ago when @cora said she wanted to use it for generating mushrooms in the nether. At the time I considered it impossible to do that because we have so many different mushroom blocks and AFAICS the l-system algorithm would not know how to place the right type of block.
Since then I had a new idea that would make this work: always place mushroom blocks with "flesh" texture only on the lower y face and "skin" on the other 5 faces. Then in the dig/destruct handler of mushroom blocks check if its neighbours are mushroom blocks and update their faces' textures accordingly.
General Minecraft gameplay look and feel are nice goals, but full glitch and tweak compatibility is clearly not in order.
This is what the wiki says:
Considering that checking for non-solid blocks only makes sense to be performed when a tree grows from a sapling (not generally when waiting), there's probably a way to avoid making this expensive.
It's only a "nice to have", but very useful when you start a new base and don't want to waste time chopping down a lot of trees until you get the ones you want for your design. Fluff, but very nice fluff. :)
I'm thrilled at the prospect of seeing an outline of a scheme that would make this work in actual practice.
ancientmarinerdev referenced this issue2023-03-15 14:26:39 +01:00