Dynamic Trees

 
header
 
 

Project Goal:

     To create more dynamic, aesthetic, fun and natural looking trees while respecting the Minecraft graphic stylization and enforcing a narrow project scope that keeps things simple.
 

Project Features:

     A growing tree is a multi-block structure of rooty soil, branches, and leaves blocks that has many advances over the Vanilla Minecraft tree structures. The formation of the tree starts with a seed. This seed is either planted by hand much like a Vanilla sapling or the seed has a chance of planting itself if left on the ground in a suitable location.  The tree then grows from a sapling, slowly increasing it's size over time, into a full sized tree.  The tree can then be chopped down at it's base and all of the wood claimed at once.
 

 
 

Trees:

  • Grow progressively from seeds to mature trees over time.
  • Grow in natural ways loosely modeled after real world trees and tend to grow in unique, believable ways.
  • Grow around obstacles in a natural way.
  • Are not just reskins but grow using different algorithms per species.
  • Have growth rate and mature sizes that are biome, temperature and rainfall dependent.
  • Drop seeds at random that can potentially plant themselves.
  • Won't grow in darkness. Leaves not connected to an outer tree branch or starved of light will die. Outer branches without leaves slowly rot away.
  • Will die and rot in a dark place (some species produce mushrooms when they rot).
  • Walking on leaves blocks is slow and sinking. Falling on to leaves prevents fall damage and destroys the leaves.
  • Vanilla Tree Fruits(apples, cocoa beans)

mature oak tree

 

 


Rooty Soil:

  • Provides nutrients to trees and can be depleted over time.
  • Applied with bone meal will increase soil fertility and allows the tree to grow past its mature state.
  • Applied with various brewed potions for different effects(see next section).
  • Special effect particles are created on the entire tree when an acting substance is applied to the soil or bottom-most trunk block.
  • Comparator can be used to sense soil fertility level.

 


Potion Interactions:

  • Biochar Base[]: Base tree potion for brewing
  • Potion of Depletion[]: Depletes soil completely so tree stops growing
  • Potion of Defoliance[]: Kills tree by destroying it's leaves and leaving it to rot
  • Potion of Burgeoning[]: Quickly grow a tree
  • Potion of Fertility[]: Fully fertilizes the soil
  • Potion of Persistance[]: Stops tree from changing(Dynamic leaves are changed to Vanilla leaves). Completely depletes the soil.  The tree will no longer grow, die in the dark, or drop seeds.
  • Potion of Transformation[]: Changes an existing Dynamic tree into another tree species

 


Seeds:

  • Take the place of vanilla saplings.
  • Are randomly dropped from trees(rate is adjustable in config file).
  • Have a chance of self planting if setting on a dirt/grass/podzol block and has a clear view of the sky above it.
  • Crafted from a vanilla sapling and a dirt bucket.
  • Can be used to create vanilla saplings by crafting with a dirt bucket.

Saplings(Oak, Spruce, Birch, Jungle, Acacia, and Dark Oak) and their respective seeds. 

 


Compatibility:

  • Worldgen can be disabled to allow Vanilla trees to still spawn and function normally.
  • All drops from growing trees are vanilla leaves, sticks, and logs. Growing tree parts are not obtainable in survival. Shears only obtain vanilla leaves.
  • Rooty soil drops plain dirt when harvested or left without a tree it will return to plain dirt.
  • Vanilla textures are used for wood and leaves making it compatible with resource packs that change wood or leaves textures.
  • Seeds can be crafted from vanilla saplings and vice-versa.
  • Fire spreads and burns at the same rate as vanilla tree fires.
  • Works in multiplayer.

 


 Forests:

  • As trees drop seeds the forest line spreads.
  • Trees compete for sunlight when placed near each other and grow taller and skinnier than trees in the open. This produces a forest canopy effect.
  • Canopies block skylight producing dark forests where mobs can spawn during the day and saplings fail to thrive.
  • Podzol forms from dirt or grass under the dark forest canopies of some tree species. Podzol is meant to emulate forest leaf litter appearance.

at the edge of an oak forest

 

oak forest by the plains

 

a savanna sparsely populated with acacias

 

spruce forest(worldgen needs work)

 

spindly birch trees in a dense forest

 

the canopy of the tall jungle trees produce a dimly lit forest floor

 


Harvesting:

  • Cutting the tree at it's base will fell the entire tree.
  • Thicker branches take longer to harvest.
  • Whole branches can be removed from the tree without disturbing the main body of the tree.
  • Harvesting results in vanilla logs and sticks the number of which is calculated as the total volume of wood in the tree or branch.
  • Fortune enchantments on axes are actually useful and work to increase log yield.
  • Leaves grow back when destroyed if outer branches are left undamaged.

 


The Woodland Staff:

The woodland staff is a multi-function tool intended for use in creative mode(can't be crafted).  In the most basic usage it can be used to copy a tree.  Right click on any dynamic tree with the staff to pull it's JoCode.  Next, right click on viable soil to recreate the same tree.  The tree is also rotated based on the player direction.  If the player right clicks a tree with the staff while sneaking then only the tree species will be copied, leaving the JoCode unchanged.  In this way you can for instance create an acacia tree that is shaped like a tall jungle tree.  Another feature for the Woodland Staff is that any JoCode pulled from a tree is also copied to the system clipboard as text.  This enables a player to share tree models with others easily.

  


Dendrocoil:

The DendroCoil is a ComputerCraft peripheral that lets you manipulate trees, accelerate their growth, pull JoCodes and create custom woodland staffs.  It has no recipe and thus can only be obtained in creative.  This block is only available when the ComputerCraft mod is installed.

 


Other fun:

  • Thin branches can be climbed like ladders. With a bit of gymnastics a forest canopy can be used as an archery ambush.
 

Under the hood:

  • Trees grow using a combination of a cellular automata algorithm for leaves and branch network logic for trunk and branches.
  • No tile entity rendering is used. Rendering is done with BakedModels for better performance with large numbers of tree nodes.
  • Leaves are only updated with updateTick() so chunks are re-rendered when dirty no more than with vanilla crops.
  • A DropCreator interface is used for creating seed drops and other items. New drop creators can be registered by other mods to expand existing or new tree behavior.
  • All block states are encoded in the 4 bit metadata.
  • Growing leaves blocks use 4 species sub-blocks to a Block using metadata encoding for conserving BlockIDs.
  • Worldgen uses a custom variation of Adaptive Incremental Stippling(AIS) using the PoissonDisk Distribution for high quality and non-overlapping tree placement.

 


Project Scope:

  • Trees and only trees.
  • To provide advanced growing versions of vanilla trees.
  • Zero to minimal configuration. Should work out of the box with sane settings or defaults.
  • Provide interfaces for other mod developers to expand the mod with add-ons, new trees, effects, mobs and other things. If you need a hook then lemme know :)
  • Response to seasonal changes is considered inside the scope of the project.
  • To achieve compatibility with other popular mods when appropriate.
  • Stylization should not deviate from the Minecraft aesthetic. All parts of a block model should be comprised of rectangular prisms with each face aligned to 1/16 meter(a standard minecraft texel)
 

Planned Features:

  • Tree trunks thicker than 1 block and up to 3 blocks thick. Should be possible using special "shell" blocks. I haven't worked out the details yet.
  • Seasons. In autumn the trees turn fall colors, in winter leaves fall off completely and regrow in spring. Maybe work with Minecraft seasons mod.
  • Falling leaf particles, especially in autumn.
  • Cacti and Giant Mushrooms could be considered treelike and therefor not outside the bounds of implementation.
  • Trees that fall over when harvested(special effect).
 

Examples of out of scope features:

  • Species of trees not implemented in vanilla Minecraft(such as those in Forestry, Pam's Harvestcraft, Natura, Biomes O' Plenty)
  • Creature entities, mobs, and/or particles(ents, squirrels, monkeys, fireflies, bees, etc)
  • Fruit(other than vanilla Minecraft tree fruit products: apples, cocoa beans)
  • Dungeon loot(pointless for this mod)
  • Tree villages, villagers and/or trading posts
  • Swings or other gadgets commonly attached to trees
  • Magic, energy systems, XP drops, enchantments
  • Tools and/or apparel(in survival, admin tools might be okay)
  • Grafting
  • Tree genetics and/or pollination , such as that in forestry
  • Automatic fertilizers, detectors, or any kind of machine for interacting with the tree

     Features like these will never be implemented.  I'm not suggesting that these are bad ideas or wouldn't be fun but they are indeed outside the scope of what this project is meant to accomplish.

Those wishing to implement out of scope features are welcome to do so in a separate expansion or compatibility mod.  Popular mods tend to experience scope creep and featuritis. Ultimately you end up with jet packs, metal ore trees, nyan cats, flaming super death cactus swords, and 15 kinds of creepers.  I won't have it.

  If you ignore this list and leave a comment asking for anything in the out of scope list you will be ignored.  Have fun talking to yourself.
 

FAQ:

Q: How come worldgen lags so badly?
A: Tree generation is a computationally intensive process.  You'll notice it at it's worst in MC1.7.10 because it's not as optimized as it's successors.  The lag happens when new chunks are being generated.  Once generated the lag is virtually non-existent.  Visiting previously unexplored areas can cause some lag especially on slower computers.  I'm always seeking improvements to optimize the gen algorithm so make sure you get the latest release as it likely has efficiency improvements.
 
Q: Will you create Dynamic versions of Biomes O'Plenty trees?
A: There is currently a project underway for Biomes O'Plenty tree compatibility. Github here.
 

Bugs and Issues:

See issue tracker on github.

 


Minecraft Version(aka, How I'm a jerk):

I don't care if you think that new mods shouldn't be made on older Minecraft versions.  It's not your business.

I don't care about your idealistic upgrade strategy and how this holds everyone back.  Life isn't perfect.

I don't care if you want it ported to another version. So don't bother asking.

If you ask for a port to another version you will be ignored.

I'll continue to mod and play on whatever version I'm playing on until I don't anymore.  I don't always have the time to chase the latest version of Minecraft.

If you have the bandwidth and skills to port to a later Minecraft version then grab the source code and have at it.  Otherwise just wait patiently and maybe it'll happen.  Pleasantries and/or name-calling will be ineffective at motivating me.

 


Compatible Mods:

  • Better Foliage:  Leaves blocks will be enhanced as expected (does not work with trunk rounding feature, this won't change)
  • Better Beginnings: Can't chop down a tree with your bare hands, tools work as intended.
  • Biomes O' Plenty: Dynamic Trees shouldn't interfere with BOP worldgen. Not even with Worldgen enabled in Dynamic Trees. A project to provide proper support is underway.
  • Quark: The grass color of the Rooty Dirt Block and the dynamic leaves foliage is now changed by Quark's greener grass option.
  • BirdsNests: This mod has recently been fixed and should now work fine.
  • Passable Leaves: Dynamic Tree leaves become passable when this mod is installed.
  • Pam's Harvestcraft: Harvestcraft trees are not enhanced but this mod does not interfere with harvestcraft's worldgen.

 


Incompatible Mods:

  • Fast Leaf Decay: Several users have reported that this mod can cause dynamic leaves to "flicker" or rapidly spawn and despawn.  I've put an issue in with the mod author for a possible solution.  If you're running exclusively with Dynamic Trees and have enabled worldgen then you need not run fast leaf decay since leaves groups are destroyed entirely on harvest anyway.
 

Latest Changes:

 

0.7.4(The Apple Tree Update)

New Features

  • Added German, Russian and Ukranian lang translations
  • Added Apple Trees
  • Proper support for passable leaves mod
  • Normalized seed drop rate for worlds that have modified randomTickSpeed(helps with too many seeds on ground)
  • Halved the drop of voluntary seeds but doubled the plant rate of seeds on ground(fewer seeds on ground, but forests spread rate not impacted)

API Features

  • Added TreeBuilder to API
  • Added drop creator registry system for adding and removing tree drops for individual trees or globally
  • Added addAcceptableSoil(...) function to Species class so mods can add dirt blocks to trees from other mods

Bugs Fixed

  • Workaround for Better Foliage bug. Thanks mangoose3039
  • Fixed bug where species growth functionality wasn't being respected.
  • Fix for issue #36(Compatibility with Better With Mods "Hardcore Lumber")
  • Fixed world generation bug when there's no ground
  • Fixed client crash with rooty dirt block color multiplier
  • Fix crash involving TNT
  • Fixed problem with trees not growing in multiplayer.

 

0.7.2(The Worldgen Update)

Mostly internal changes to improve speed. Some of the tree features and signals originate from the root block instead of from the leaves and branches. Corrected many biome generation problems.

 

  • WorldGen is enabled by default
  • Add dynamic seeds to Ore dictionary as "treeSapling"
  • Don't consume bonemeal in creative mode
  • Add 1/5 chance birch spawn in forest biomes
  • Allow Spruce and Oaks to gen in BiomeHills(fixes issue #20)
  • Mesa Forests now properly spawn oaks instead of nothing
  • MUTATED_REDWOOD_TAIGA and MUTATED_REDWOOD_TAIGA_HILLS now properly spawn Spruce instead of Oak.
  • Fast or Fancy graphics works as expected with Dynamic Leaves
  • Bonemeal can be used on saplings to cause them to grow.
  • Bonemeal causes a single growth update in a tree.
  • WorldGen trees are less scrawny.
  • WorldGen poisson disc generation algorithm fixed.
  • WorldGen poisson discs are tighter together now.(trees fit tighter together to produce a more complete forest canopy)
  • Trees and Species are now separate. (This will mean more in the future)
  • Swamp Oaks(A species) now generate in swamps even in shallow water and with vines.
  • Jungle trees generate with vines and cocoa already on them.
  • Undergrowth added to Jungle floor so it's more Jungly.
  • Fire doesn't burn out of control and it doesn't leave floating tree fragments.
  • Branch Blocks no longer randomly tick(improved efficiency).
  • Chance of seed drops when tree ticks instead of when leaves tick.
  • Now compatible with Quark Greener Grass and Foliage.
  • Huge amounts of API work.

 

0.6.5(The Potion Update)

  • Added tree specific brew-able potions (Dendro Potions) to replace the current confusing potion method.
  • The potion of burgeoning(fast growth) effect now lingers for 80 seconds on the tree for continuous growth.
  • Added new potion of transformation to change an already grown tree into another tree species.
  • Potions are brewed in a brewing stand in 1.10.2+
  • Potions are crafted from awkward potions in 1.7.10(No realistic way to add real brewing stand recipes in 1.7.10)
  • Seeds can be placed in flower pots to make little "bonsai" trees
  • Branches are now classed as wood(isWood() returns true)  for mods expecting proper tool interaction(like Better Beginnings)
  • Added Dirt bucket item for exchanging vanilla saplings to seeds and vice-versa.  No more wasting dirt blocks.  Empty Dirt Bucket out like a water bucket to get your dirt and bucket back.
  • Started API interface for adding modded trees.
  • Created backport functions for 1.7.10 to ease the addition of features universally.
  • Created substance interface for potions and other things.
  • Created IBiomeSuitabilityDecider interface and registry for mods wishing to override what determines the biome suitability of a tree.(TerraFirmaCraft)
  • Fixed DynamicSapling rendering bug in 1.7.10
 

License and Modpacks:

     Permission is hereby granted to use this mod in ANY mod pack or server.  Please don't ask for permission to use the mod in your mod pack after I've already told you that you can, it's annoying.   License is MIT so you can pretty much do whatever you want.  Attribution would be nice but I don't require it.  Did I mention that you have permission to use this mod in your mod packs?..  Good! You were paying attention!

Comments

  • To post a comment, please or register a new account.
Posts Quoted:
Reply
Clear All Quotes

About This Project

  • Project ID
    252818
  • Created
    Oct 26, 2016
  • Last Released File
    Feb 2, 2018
  • Total Downloads
    56,974
  • License

Categories

Members