Dynamic Trees

Dynamic Trees

25M Downloads

Allow Rooty Soil to remember what block it was.

UnlimatedStone9 opened this issue ยท 9 comments

commented

Describe the bug
Not necessarily a bug, but a huge flaw with rooty soils. Any addon that allows planting trees on anything other than vanilla dirt, gets an annoying behavior where the rooty soil converts back into vanilla dirt, I propose allowing rooty soil to remember what block it was before it became rooty soil, so that when it dies it returns to being the correct block.
This affects countless addons, like DTNatura, DTBiomes O' Plenty, and worst of all, TFC Dynamic Trees. I would rather not have different "soils" convert to vanilla dirt when they should not.

To Reproduce
Plant a tree from any DT version/addon onto a non vanilla "soil", kill the tree and watch as it becomes dirt.

Screenshots
Non vanilla dirt.
image
Kill the tree.
image
Bad dirt.
image

Additional context
It's really just not that enjoyable to have blocks you shouldn't, or soils you can't plant on.
An alternative solution could be to allow disabling the use of rooty soils entirely, which means players could plant on the same block over and over, without it converting to dirt, nor rooty soil.

Tested on version: 1.12.2-0.9.7.

commented

In order to accomplish this I would have to make every single rooty dirt block a tile entity that holds a reference to it's original dirt. Or similarly make the bottom truck hold the data in the same way and redesign how the branch block works. It's not really something I'm willing to sacrifice in order for dirt to be perfect. I'm open to suggestions though.

commented

I'm unsure why you would have to redesign the branch block. (but then again I'm not even sure how DT works for the most part)
Would it be tough to allow planting on any "soil" type block (as a config) and not convert that block to rooty soil when the tree grows? This would eliminate the need to rewrite the block to prevent the soil changing to Vanilla dirt.
Alternatively a config to prevent rooty soil converting back to anything and staying as rooty soil could work, so as to prevent obtaining dirt when it shouldn't be. Just not ideal.

commented

The rooty dirt block is not just decoration. It has indispensable purpose. I'm not redesigning the entire mod just because some add-on DT mods aren't handling the soil exactly right.

commented

If I could please mention though. DynamicTrees rooty soil seems to be used to prevent easily knocking down the tree, yeah? If so, BetterWithMods manages to make normal dirt not break so easily without the addition of a new block for it's HCStumping feature.
Unless it has another purpose I'm unsure of. Please do let me know.

commented

It contains data for the amount of soil fertility. This data is used to keep the growth under control. Without this data the trees will keep growing and become distorted or simply waste cpu cycles growing a tree that is already fully grown. I added it because it was an integral part of how the system works. The fact that it prevents the player from easily breaking the dirt block and being decorated with a root texture are just added benefits.

commented

Agree with solution of removing rooty soil, if it is only for decorative purposes then maybe this can be done without converting block to rooty soil, just by adding rendering overlay on top of it (I'm not sure how this can be implemented but I think it is possible).

commented

Just to clarify thing

I would have to make every single rooty dirt block a tile entity that holds a reference to it's original dirt.

But isn't it a tile entity already? Or it has tile entity, but not all the time, and to implement this feature you have to make it to be tile entity all the time?

commented

Oh okay, I see. As you mentioned before though, couldn't it be stored within the tree "trunk" itself? If so, is it just too much of a technical issue to prioritize at this time? If so, if it can be gotten to eventually I don't mind waiting on it.
Sorry for keeping this issue "open" when it's been officially closed.

commented

That would require a massive rewrite and I'm not rewriting this, how it works now is fine. When the mod eventually is ported to later MC versions then it'll be rewritten anyway because of how blocks work in the new versions.