Dynamic Trees

Dynamic Trees

25M Downloads

DT Trees do not work with Roots Ritual

Timeslice42 opened this issue ยท 11 comments

commented

Describe the bug
When using the Ritual of the Spreading Forest with Roots nothing happens. This is because the DT leaves are returning either "Air" or null as their dropped itemstack, instead of the proper sapling itemstack.

Mods List
Minecraft: 1.12.2
Forge: 14.23.5.2847
DynamicTrees-1.12.2-0.9.6.jar
dynamicTreesRoots-0.2.1.jar
mysticalworld-1.12.2-1.7.0.jar
mysticallib-1.12.2-1.5.0.jar
Roots-1.12.2-3.0.22.jar

commented

Does a thumbs up mean "working as intended" or "we'll add it to the list of things to do"?

commented

The BlockLeaves.getDrops() should return an instance of BlockSapling of the appropriate tree type OR a block in the oredict as a sapling.

commented

Dynamic Trees doesn't use saplings for propagation. It uses seeds. So we can't make the leaves getDrops() return any sapling blocks. As far as "a block in the oredict as a sapling" you may need to elaborate on that a bit.

commented

It's probably simplest to just list the relevant code.
SAPLING_OREDICT = OreDictionary.getOreID("treeSapling");
...
https://github.com/MysticMods/Roots/blob/3e1a6bdac7747bcdaa63228146497b9b0ef6ffd5/src/main/java/epicsquid/roots/entity/ritual/EntityRitualSpreadingForest.java#L95-L123

commented

At this point the relevant information would be returned, rather than the "Air" or null which is currently returned. Chances are that the ritual still wouldn't work (since the seeds can't be planted as a block), but a compatibility mod could at least be written to achieve this functionality.

commented

The more I look at this, the more I don't see a solution. Even at the first stage your trees are more than just a single block/blockstate, right? There isn't something that could be returned as a block that could be placed in the world to start a DT tree?

commented

Some time ago we moved to TileEntities for the sapling blocks to keep down the number of registered blocks. It's a solution that made the implementation nice and clean and extendable. However there are some drawbacks with other mod interactions that I didn't foresee. Such as the use of the IPlantable and things like this Roots Ritual issue. This would require rewriting a sizable part of DT to use a paging system with individual blockstates for each sapling. On the other side it is also possible to code in a "break out" in roots, but that's really too much to ask of the roots developer.

commented

@ferreusveritas -- post-flattening (>1.13), aren't large amounts registered blocks less of an issue than pre-flattening? It might be a thing to re-consider.

commented

So, are the seeds already being listed in the BlockLeaves.getDrops()? If not, can we at least get them added to that? It wouldn't fix the ritual, but at least that would give Roots something to work with.

commented

As a matter of fact they are. But the getDrops() function always returns a randomly generated list which is often times empty. This is true for vanilla leaves as well. The seeds returned are custom and would require a dependency on DT to implement in another mod.

commented

Not currently resolve-able.