-
Auke Kok authored
This changes how dirt blocks turn to dirt_with -grass, -dry_grass or -snow. Previously, dirt that was sunlit would turn to dirt_with_grass no matter what, but this happened without any context, so you could get green patches of dirt_with_grass in the middle of a savannah or even desert. Dirt no longer turns to covered dirt unless it's within 1 node from another dirt_with_grass or dirt_with_dry_grass or dirt_with_snow. This makes dirt_with_grass "growback" a lot slower, since it now only happens on the edges, but it retains the context nicely now. If there is any dirt with a grass or dry grass plant, or snow on top, and enough light, we'll convert it sporadically to dirt_with_grass or dirt_with_dry_grass or dirt_with_snow. This allows us to plant grass of our choice in a large dirt patch, or in a region where otherwise that type of grass is not present. This used to be done by 2 abms, but I've combined them in to a single ABM that is ordered to run with maximum efficiency, solving for the most common outcome first before attempting more complex checks.
Auke Kok authoredThis changes how dirt blocks turn to dirt_with -grass, -dry_grass or -snow. Previously, dirt that was sunlit would turn to dirt_with_grass no matter what, but this happened without any context, so you could get green patches of dirt_with_grass in the middle of a savannah or even desert. Dirt no longer turns to covered dirt unless it's within 1 node from another dirt_with_grass or dirt_with_dry_grass or dirt_with_snow. This makes dirt_with_grass "growback" a lot slower, since it now only happens on the edges, but it retains the context nicely now. If there is any dirt with a grass or dry grass plant, or snow on top, and enough light, we'll convert it sporadically to dirt_with_grass or dirt_with_dry_grass or dirt_with_snow. This allows us to plant grass of our choice in a large dirt patch, or in a region where otherwise that type of grass is not present. This used to be done by 2 abms, but I've combined them in to a single ABM that is ordered to run with maximum efficiency, solving for the most common outcome first before attempting more complex checks.
Loading